Soy un programador de C++ bastante nuevo. He hecho un juego muy simple usando bibliotecas SDL. Mi juego, naturalmente, usa algunas imágenes, sonidos y fuentes. He querido hacer una distribución del paquete, donde el usuario puede configurar & & hacer. No es que valga la pena distribuir este simple juego, pero quiero aprender cómo funcionan autoconf y automake. Busqué ejemplos en Internet, pero los tutoriales que pude encontrar muestran solo la instalación de un sencillo programa helloworld. No hablan de la instalación de archivos de datos, ni de cómo verificar si existen ciertas librerías para poder enlazarlas en tiempo de compilación. Y también, mi programa debe saber dónde se instala cada archivo para que pueda cargarlos. He profundizado en los manuales de automake y autoconf, pero son más como un material de referencia que como un recurso para los recién llegados. ¿Alguien podría explicar brevemente estos conceptos o llevarme a algún lugar donde pueda leer sobre ellos?Cómo empaquetar archivos de datos con autoconf y automake de GNU
Respuesta
He hecho algunas investigaciones al respecto, y he querido compartir lo que funcionó para mí. He creado una estructura de directorios como esto:
/
|->src/
| |-> Makefile.am
| |-> main.cpp
| |-> functions.cpp
|
|-> data/
| |-> Makefile.am
| |-> somethings.png
| |-> something.mp3
|-> configure.ac
|-> README
|-> NEWS, AUTHORS etc. etc.
He puesto todas mis imágenes, fuentes, sonidos, etc., en la carpeta de datos. Makefile.am en la carpeta de datos es el siguiente:
pkgdata_DATA = esound.wav \
another.wav \
apicture.png
Simplemente muestra todos los archivos que necesitan estar terminan en el directorio de datos. El Makefile.am en la carpeta src aspecto:
bin_PROGRAMS = mygame
mygame_SOURCES = main.cpp functions.cpp
AM_CPPFLAGS = -DDATADIR=\"$(pkgdatadir)\"
La parte importante aquí es AM_CPPFLAGS, que define DATADIR macro, de acuerdo con las opciones pasadas al script de configuración. Así entonces podemos utilizar esta macro en nuestros archivos de origen de la siguiente manera:
background = load_image(DATADIR "/background.png");
por lo que su programa se compilan saber dónde archivo de fondo debe residir en el sistema de archivos.
¿Debería usar dist_pkgdata_DATA si desea distribuirlo? –
- 1. Automake y archivos con el mismo nombre
- 2. Cómo apuntar autoconf/automake a paquetes no estándar
- 3. Cómo instalar un árbol de directorios de datos con automake
- 4. ¿Existe una herramienta de terminal para generar automáticamente makefiles autoconf/automake para un proyecto de Vala?
- 5. Cómo empaquetar C++ con DLL y bibliotecas
- 6. archivos de configuración y el registro de instalación de archivos con automake
- 7. cómo instalar autotools en la máquina de Windows (autoconf, automake, aclocal, libtoolize pkgconfig)
- 8. ¿Cómo incluir archivos .m4 en Autoconf?
- 9. Alternativas a Autoconf y Autotools?
- 10. ¿Cómo usar las características de C++ 11 con Autoconf?
- 11. Instalar archivos de datos arbitrarios en una ubicación fija con Automake?
- 12. ¿Sub directorios de autoconf con subpaquetes que dependen entre sí?
- 13. ¿Cómo diferencio los archivos utf-16 con diff de GNU?
- 14. Boost y Autoconf
- 15. Configuración de indicadores por archivo con automake
- 16. autoconf con -pthread
- 17. Automake y bibliotecas compartidas estándar
- 18. Crear biblioteca estática y compartida con GNU libtool?
- 19. "buscar" y "ls" con GNU paralelo
- 20. Empaquetar y ejecutar una aplicación Java con dependencias de primavera
- 21. ¿Dónde AC-CHECK_HEADERS de autoconf verifica los archivos de encabezado?
- 22. Autoconf - ¿A dónde va config.h?
- 23. Cómo utilizar autoconf con C++ 0x cuenta
- 24. ¿Cómo descomprimir y empaquetar el archivo pkg?
- 25. Cómo empaquetar un demonio Python con setuptools
- 26. Eclipse, JAR Exportar es empaquetar archivos svn
- 27. ¿Por qué el enlace del proyecto autoconf/automake contra la biblioteca instalada en lugar de la biblioteca de desarrollo local?
- 28. error autoconf en ubuntu 11.04
- 29. ¿Puede GNU hacer manejar nombres de archivos con espacios?
- 30. Cómo empaquetar y consumir una biblioteca Java existente con OSGI
He encontrado que la mejor manera de usar autoconf/automake es encontrar un proyecto similar al suyo, ver lo que hacen y trabajar desde allí con la documentación. –
Es posible que desee consultar el libro de John Calcote "Autotools: Guía de un practicante para GNU Autoconf, Automake y Libtool" –
Pruebe el [Goat Book] (http://sourceware.org/autobook/) para obtener una introducción más legible a autotools. Tienen algunos proyectos de ejemplo de complejidad variable que muestran cómo hacer cosas más comunes con autotools. – ldav1s