Forum Programmation.c fichier Makefile.in et make

Posté par  .
Étiquettes :
0
19
avr.
2006
Excusez cette question de débutant, mais je ne trouve aucune réponse sur le net...

Je suis sous Ubuntu et je teste le programme Glade pour générer des interface.

Partout, je vois qu'il faut utiliser le programme "make" qui est censé se servir du fichier "Makefile.in". Mais à l'execution, je vois quelque chose du genre "fichier makefile introuvable".

J'ai bien employé la commande ./configure et tout et tout, j'ai essayé de faire "make Makefile.in", mais dans ce cas, l'erreur est du genre "rien à faire".

Je sais que par défaut cette commande cherche un fichier de configuration nommé "makefile", j'ai déjà - il y a fort longtemps de cela - écrit des fichiers makefile pour des petits programme en C. J'ai comme l'impression d'avoir loupé un épisode dans la saga "make"... Quelqu'un peut-il m'éclaircir là dessus ?
  • # automake & co.

    Posté par  . Évalué à 5.

    En général make utilise un fichier Makefile et les fichiers Makefile.in sont générés par automake puis enfin un Makefile est obtenu par un configure (autoconf).

    Si tu as bien un Makefile.in il reste la dernière étape à savoir obtenir le Makefile instancié en fonction de tes choix par le script configure.

    En suite, dans le même répertoire que le fichier Makefile généré il suffit de taper :

    # make


    ou si tu souhaites absolument préciser le fichier :

    # make -f Makefile
    • [^] # Re: automake & co.

      Posté par  . Évalué à 3.

      Plus précisément: le développeur / mainteneur de l'application écrit un fichier Makefile.am qui décrit ce dont a besoin l'application; et ensuite il lance le bastringue des autotools, dont automake qui crée le fichier Makefile.in à partir du fichier Makefile.am. En passant les différentes étapes des autotools qui ne sont pas pertinentes ici, il arrive à fournir une archive contenant entre autres le Makefile.in et le script configure.

      C'est alors à l'utilisateur de lancer le script configure sur sa propre machine, qui va faire tous les tests qui vont bien et, si tous les tests passent, créer le fichier Makefile à partir des informations dont il dispose, dont le Makefile.in (il y a aussi d'autres fichiers, mais je résume).

      Et ensuite l'utilisateur peut compiler son application (make), l'installer (make install) ou faire un peu ce qu'il veut suivant ce que le Makefile contient (les Makefile générés par les autotools sont plutôt complets de ce côté, et extensibles). Mais note bien que le fichier n'est normalement pas créé si configure rencontre un problème. Vérifie ce qu'il raconte, et les logs (je crois que le fichier de log s'appelle configure.log, de tête...).

      C'est cette procédure qui se traduit assez souvent par la ligne de commande
      ./configure && make && make install

      dans des documentations un peu expéditives... (et, personnellement, je ne procède pas ainsi: le make install nécessite bien souvent des droits d'admin, sous lequel je n'ai pas forcément envie de tester le code que j'ai téléchargé... J'utilise plutôt un compte non privilégié pour compiler-tester, puis je passe en admin pour installer).

      Pour en revenir au problème, je pense qu'il faut regarder du côté des logs de configure. S'il n'indique rien de particulier, vérifie si le fichier Makefile a bien été généré; sinon il faut corriger ce qui pose problème (les logs de configure peuvent ne pas être très explicites parfois...).
  • # autogen

    Posté par  . Évalué à 2.

    Quand tu fais un projet avec glade, il faut générer le code source.
    Tu te déplaces dans le répertoire source puis tu trouveras un fichier nommé autogen.sh.

    Le fichier autogen.sh est un script que tu dois exécuter, celui-ci va créer le script configure que tu lanceras juste à l'étape d'après.

    Puis après, comme dans les posts évoqués sur cette même page, tu pourras faire ./configure && make
    • [^] # Re: autogen

      Posté par  . Évalué à 1.

      Merci beaucoup pour toutes ces réponses très précises ! Je vois que l'entraide entre linuxien n'est pas un vain mot ! ;)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.