Je suis un programmeur plutôt nouveau C++. J'ai fait un jeu très simple en utilisant des bibliothèques SDL. Mon jeu utilise naturellement des images, des sons et des polices. J'ai voulu faire une distribution du paquet, où l'utilisateur peut configurer & & make. Ce n'est pas comme si ce jeu simple valait la peine d'être distribué, mais je veux apprendre comment fonctionne autoconf et automake. J'ai cherché les exemples sur internet mais les tutoriels que j'ai pu trouver ne montrent que l'installation d'un simple programme helloworld. Ils ne parlent pas de l'installation des fichiers de données, ni comment vérifier si certaines bibliothèques existent pour que je puisse les lier à la compilation. Et aussi, mon programme devrait savoir où chaque fichier est installé afin qu'il puisse les charger. J'ai plongé dans les manuels d'automake et d'autoconf, mais ils ressemblent plus à des documents de référence qu'à une ressource pour les nouveaux venus. Quelqu'un pourrait-il expliquer brièvement ces concepts, ou me conduire à un endroit où je pourrais lire à leur sujet.Comment empaqueter des fichiers de données avec autoconf et automake de GNU
Répondre
J'ai fait des recherches à ce sujet, et j'ai voulu partager ce qui a fonctionné pour moi. J'ai créé une structure de répertoires comme ceci:
/
|->src/
| |-> Makefile.am
| |-> main.cpp
| |-> functions.cpp
|
|-> data/
| |-> Makefile.am
| |-> somethings.png
| |-> something.mp3
|-> configure.ac
|-> README
|-> NEWS, AUTHORS etc. etc.
J'ai mis toutes mes images, polices, sons, etc. dans le dossier de données. Makefile.am sur le dossier de données ressemble à ceci:
pkgdata_DATA = esound.wav \
another.wav \
apicture.png
Il énumère simplement tous les fichiers qui doivent être finissent dans le répertoire de données. Le Makefile.am dans le dossier src ressemble à ceci:
bin_PROGRAMS = mygame
mygame_SOURCES = main.cpp functions.cpp
AM_CPPFLAGS = -DDATADIR=\"$(pkgdatadir)\"
L'important ici est AM_CPPFLAGS, qui définit macro DATADIR, selon les options passées au script de configuration. Donc, nous pouvons utiliser cette macro dans nos fichiers source comme ceci:
background = load_image(DATADIR "/background.png");
Pour que votre programme compilé se savoir où le fichier de base doit résider dans le système de fichiers.
Devriez-vous utiliser dist_pkgdata_DATA si vous voulez le distribuer? –
- 1. Fichiers d'objets intermédiaires explicites dans GNU AutoMake
- 2. Autoconf/Automake conditionnels et règles de dist
- 3. choisir les versions autoconf et automake
- 4. GNU autoconf, options de document avec doxygen?
- 5. externe macro config bibliothèque autoconf/automake
- 6. fichiers de configuration et connecter l'installation des fichiers avec automake
- 7. Comment installer les fichiers d'en-tête dans Automake?
- 8. Comment créer des dépendances dans automake?
- 9. Autoconf/Automake "configure.ac:2: option" -Wall "non reconnue"
- 10. vérifier la version automake/autoconf dans le script configure
- 11. Problème avec automake et liaison
- 12. Comment installer une arborescence de données avec automake
- 13. Comment empaqueter des fichiers de ressources dans le projet
- 14. Comment empaqueter des fichiers javascript dans une application de portlet
- 15. Comment spécifier plusieurs fichiers source dans automake à la fois
- 16. détecter des prototypes de fonctions obsolètes et incorrectes avec autoconf
- 17. Comment inclure les fichiers .m4 dans Autoconf?
- 18. Comment empaqueter mon application android avec une base de données
- 19. Spécification des Makefiles à construire avec automake
- 20. Automake: Comment ajouter une étape de construction?
- 21. Comment empaqueter des fichiers .java dans un projet Eclipse
- 22. Comment faire pour empaqueter des fichiers en utilisant 7z avec Delphi et montrer le pourcentage fait?
- 23. Cross compilation avec automake
- 24. Comment composer des librairies avec Gnu make?
- 25. Comment faire pour empaqueter des fichiers PHP en exe?
- 26. autoconf & C++ et en-têtes obsolètes
- 27. Commande de groupe de fichiers Windows et GNU Sed
- 28. Écran GNU: fichiers vers des tampons numérotés?
- 29. autoconf avec -pthread
- 30. Impossible d'obtenir automake pour créer des fichiers .proto dans des fichiers .pb.cc avec des tampons de protocole google
J'ai trouvé que le meilleur moyen d'aller avec autoconf/automake est de trouver un projet similaire au vôtre, de voir ce qu'ils font, et de travailler à partir de là avec la documentation. –
Vous pouvez regarder le livre de John Calcote "Autotools: Guide d'un praticien à GNU Autoconf, Automake, et Libtool" –
Essayez le [livre de chèvre] (http://sourceware.org/autobook/) pour une introduction plus lisible à autotools. Ils ont quelques exemples de projets de complexité variable qui montrent comment faire les choses les plus courantes avec autotools. – ldav1s