[gull] autotools : Mauvais ordre de link
Philippe Ney
philippe at overcool.ch
Thu Mar 15 19:45:33 CET 2007
Bonjour,
La commande de link générée par automake est fausse. Mais j'imagine que
c'est certainement parce que je ne donne pas les bons arguments dans mon
Makefile.am.
Y aurait-il des guru de l'automake/autoconf parmi vous ?
Mon problème est que la commande générée est la suivante :
arm-linux-uclibc-g++ -g -O2 \
-o prog \
-L/.../xenomai/include/lib \
-lvxworks \
-lpthread \
main.o obj.o \
lib01.a lib02.a lib03.a
Ce qui correspond à cette section du Makefile généré :
prog$(EXEEXT): $(prog_OBJECTS) $(prog_DEPENDENCIES)
@rm -f prog$(EXEEXT)
$(CXXLINK) $(prog_LDFLAGS) $(prog_OBJECTS) $(prog_LDADD) $(LIBS)
Ce qui produit des erreurs dues aux dépendances entre les objects et les
libs. La commande devrait normalement être la suivante :
arm-linux-uclibc-g++ -g -O2 \
-o prog \
main.o obj.o \
lib01.a lib02.a lib03.a \
-L/.../xenomai/include/lib \
-lvxworks \
-lpthread \
Sachant que mon Makefile.am est :
bin_PROGRAMS = prog
prog_SOURCES = \
main.cpp \
obj.cpp
INCLUDES = \
-I.
[....]
INCLUDES += -I at XENOMAI_INCLUDE@ -I at XENOMAI_INCLUDE@/@XENOMAI_SKIN@
LDADD = \
lib01.a \
lib02.a \
lib03.a
prog_LDFLAGS = \
-L at XENOMAI_INCLUDE@/../lib \
-lvxworks \
-lpthread
Je pourrais bien faire du sed après la configuration des sources, mais il
me semble qu'il devrait y avoir une manière plus propre. En particulier en
définissant les variables différemment dans le Makefile.am.
Est-ce que quelqu'un sait comment résoudre ce problème ?
Merci et bonne soirée,
Philippe
More information about the gull
mailing list