[Résolu][AUTOTOOLS]J'ai du mal...

J'ai du mal... [Résolu][AUTOTOOLS] - Linux et OS Alternatifs

Marsh Posté le 27-05-2005 à 14:38:25    

Mandrake 10.1
Linux kernel 2.6
 
Bonjour.
 
J'ai un mini projet de test dans un répertoire .../a06


[edelahaye@edtux a06]$ ls
configure.in  do.sh*  Makefile.am  src/
[edelahaye@edtux a06]$ ls src
fun.c  fun.h  main.c


avec Makefile.am :


## Makefile.am
## user file for automake
SUBDIRS = src
bin_PROGRAMS = hello
hello_SOURCES =  main.c fun.c fun.h


et configure.in :


                                               -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
 
AC_INIT(src/main.c)
AM_INIT_AUTOMAKE(hello, 0.1)
AC_PREREQ(2.59)
AM_CONFIG_HEADER(config.h)
 
# Checks for programs.
AC_PROG_CC
 
# Checks for libraries.
 
# Checks for header files.
 
# Checks for typedefs, structures, and compiler characteristics.
 
# Checks for library functions.
 
AC_OUTPUT(Makefile)


Quand le lance ./do.sh :


# do.sh
aclocal
autoheader
autoconf
touch AUTHORS ChangeLog NEWS README
automake --add-missing
./configure


j'obtiens


automake: configure.in: installing `./install-sh'
automake: configure.in: installing `./mkinstalldirs'
automake: configure.in: installing `./missing'
automake: configure.in: installing `./config.guess'
automake: configure.in: installing `./config.sub'
automake: Makefile.am: installing `./INSTALL'
automake: Makefile.am: installing `./COPYING'
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking whether make sets $(MAKE)... yes
checking for working aclocal-1.4... found
checking for working autoconf... found
checking for working automake-1.4... found
checking for working autoheader... found
checking for working makeinfo... found
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
config.status: executing default-1 commands


ce qui me parait être correct. A ce moment là, le répertoire est le suivant :


[edelahaye@edtux a06]$ ls
aclocal.m4       config.h        configure*    install-sh@  mkinstalldirs@  stamp-h.in
AUTHORS          config.h.in     configure.in  Makefile     NEWS
autom4te.cache/  config.log      COPYING@      Makefile.am  README
ChangeLog        config.status*  do.sh*        Makefile.in  src/
config.guess@    config.sub@     INSTALL@      missing@     stamp-h


Je lance alors make, et j'obtiens ceci :


[edelahaye@edtux a06]$ make
make  all-recursive
make[1]: Entering directory `/home/edelahaye/c-dev/a06'
Making all in src
make[2]: Entering directory `/home/edelahaye/c-dev/a06/src'
make[2]: *** Pas de règle pour fabriquer la cible « all ». Arrêt.
make[2]: Leaving directory `/home/edelahaye/c-dev/a06/src'
make[1]: *** [all-recursive] Erreur 1
make[1]: Leaving directory `/home/edelahaye/c-dev/a06'
make: *** [all-recursive-am] Erreur 2


ce qui a le don de m'agacer, car je ne sais plus quoi faire...
 
J'ai l'impression qu'il manque quelque chose dans src/, mais quoi ?
 
Merci d'essayer de m'aider
 
Emmanuel


Message édité par Emmanuel Delahaye le 04-06-2005 à 11:15:46

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 27-05-2005 à 14:38:25   

Reply

Marsh Posté le 27-05-2005 à 14:41:20    

il te faut une règle 'all' pour chacun de tes Makefile il me semble :)


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 27-05-2005 à 15:00:03    

black_lord a écrit :

il te faut une règle 'all' pour chacun de tes Makefile il me semble :)


C'est pas moi qui écrit le Makefile, c'est automake...
 
C'est précisément le but de l'opération!
 
Ma question est "qu'est-ce que j'ai oublié dans Makefile.am et configure.in qui fait que le Makefile de a06/src n'est pas produit alors que celui de a06 est produit.


Message édité par Emmanuel Delahaye le 27-05-2005 à 15:04:15

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 27-05-2005 à 15:02:28    

tu écris le makefile.am, c'est là dedans qu'il faut voir il me semble :)
 
(j'ai jamais pratiqué autotools, j'avais juste commencé à lire la doc)


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 27-05-2005 à 15:05:20    

black_lord a écrit :

tu écris le makefile.am, c'est là dedans qu'il faut voir il me semble :)
 
(j'ai jamais pratiqué autotools, j'avais juste commencé à lire la doc)


Je l'ai publié dans mon premier post. Qu'est-ce qui manque ?


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 27-05-2005 à 15:08:40    

chaque dossier de SUBDIR doit avoir son propre Makefile.am :)


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 27-05-2005 à 15:09:09    

ma petite référence : http://seul.org/docs/autotut/


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 27-05-2005 à 15:40:32    

black_lord a écrit :

chaque dossier de SUBDIR doit avoir son propre Makefile.am :)


Avec quoi dedans ? La même chose que dans le repertoire d'origine ?
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 27-05-2005 à 15:42:42    

je sais pas [:spamafote] surement oui :)


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 27-05-2005 à 15:46:43    

Tout sur les autotools, tuto inclus :)
http://sources.redhat.com/autobook [...] C_Contents

Reply

Marsh Posté le 27-05-2005 à 15:46:43   

Reply

Marsh Posté le 27-05-2005 à 15:47:55    

bookmarked


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 27-05-2005 à 15:50:16    

wget [:spamafote][:rougit]


Message édité par l0ky le 27-05-2005 à 15:50:30
Reply

Marsh Posté le 27-05-2005 à 15:53:33    

Je sais que ça fait troll mais faudrait penser à abandonner le dinausore incompréhensible que sont les autotools pour passer à autre chose :whistle:

Reply

Marsh Posté le 27-05-2005 à 15:54:27    

Kristoph a écrit :

Je sais que ça fait troll mais faudrait penser à abandonner le dinausore incompréhensible que sont les autotools pour passer à autre chose :whistle:


 
Propose [:spamafote]

Reply

Marsh Posté le 27-05-2005 à 15:55:06    

ant ?


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 27-05-2005 à 15:56:08    

Je sens que je vais dire une grosse bétise, ca gère autre chose que java [:opus dei]

Reply

Marsh Posté le 27-05-2005 à 16:03:45    

je dis peut être une bêtise mais je pense que oui (il y en a un de nous qui dit une bêtise [:god])


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 27-05-2005 à 16:09:45    

Je vote pour moi [:dawa]


Message édité par l0ky le 27-05-2005 à 16:11:04
Reply

Marsh Posté le 27-05-2005 à 16:58:42    


j'ai ouï dire que cons (perl) et scons (python) étaient pas mal ; j'ai aussi entendu parler de unsermake.
 
http://www.dsmit.com/cons/
http://www.scons.org
http://wiki.kde.org/tiki-index.php?page=unsermake


Message édité par Mjules le 27-05-2005 à 16:58:59

---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
Reply

Marsh Posté le 04-06-2005 à 11:15:13    

black_lord a écrit :

je sais pas [:spamafote] surement oui :)


En fait non.
 
Il faut  
SUBDIRS = ...
 
tant qu'on a que des répertoires 'en-dessous'
 
et les commandes de cibles (bin_PROGRAMS=... etc.) tant qu'il y a des sources à compiler... (en gros)


Message édité par Emmanuel Delahaye le 04-06-2005 à 11:16:28

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 09-06-2005 à 09:43:44    

Il y a scons, scons + bksys ou alors utiliser des outils qui masquent en partie la chaine autotools comme le gestionnaire de projet de kdevelop.
 
Il y a aussi bjam je crois, le gestionnaire de projets de boost.org et qmake est parait-il pas mal en soit.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed