[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