automake - rozdilne flagy pri kompilaci ...
Robert Vojta
robert na v0jta.net
Čtvrtek Srpen 1 13:18:39 CEST 2002
Zdravím,
neznáte někdo elegantnější cestu jak automake donutit aby mi určitý zdroják
překompiloval vícekrát s různými flagy, pokud je daný *.o součástí více
knihoven? Uvedu příklad ...
Mám knihovnu filter_g7231.so a filter_g7231b.so, která obsahuje věci ze
souborů slin_example.c, g7231_example.c a filter_g7231.c. Ta Bčková se liší
v tom, že je to ANNEX B a je potřeba překompilovat filter_g7231.c s -DANNEX_B.
Takže to mám teď udělané zatím takto ...
lib_LTLIBRARIES = libpals_filter_g7231.so libpals_filter_g7231b.so
g723.1b/libg723b.a:
make -C g723.1b libg723b.a
g723.1/libg723.a:
make -C g723.1 libg723.a
filter_g7231.o: filter_g7231.c
$(CC) ($CFLAGS) $(INCLUDES) filter_g7231.c -c -o filter_g7231.o
filter_g7231b.o: filter_g7231.c
$(CC) $(CFLAGS) $(INCLUDES) -DANNEX_B filter_g7231.c -c -o filter_g7231b.o
libpals_filter_g7231_la_SOURCES = slin_example.c g7231_example.c
libpals_filter_g7231_la_LIBADD = g723.1/libg723.a filter_g7231.o
libpals_filter_g7231_la_LDFLAGS = $(LIBPALSLIBS) $(LISTLIBS) $(LOCKLIBS) $(LOGGERLIBS)
libpals_filter_g7231b_la_SOURCES = g7231_example.c slin_example.c
libpals_filter_g7231b_la_LIBADD = g723.1b/libg723b.a filter_g7231b.o
libpals_filter_g7231b_la_LDFLAGS = $(LIBPALSLIBS) $(LISTLIBS) $(LOCKLIBS) $(LOGGERLIBS)
Takto to funguje, ale má to dva nedostatky ...
a) libtool hlásí, že to není portable, protože linkuju proti filter_g7231[b].o
nehlásí to pouze v případě, že dám do _SOURCES filter_g7231.c
b) nelíbí se mi to ...
Jak dosáhnout toho, abych mohl vyhodit pravidla pro filter_g7231[b].o, dát
filter_g7231.c do _SOURCES a mít tam něco jako
libpals_filter_g7231b_la_INCLUDES = -DANNEX_B? Další věc je, že pokud uvedu
v _SOURCES 2x to samé, on to zkompiluje jednou a pak pro A i B použije stejný
*.o. Chci aby to bylo portable, aby to bylo v _SOURCES a pro každou knihovnu se
filter_g7231.c překompiloval s různými flagy a nedaří se mi nic takového najít
a obávám se, že to takto přímo ani automake neumí...
--
Robert V0jta Pharocom, s.r.o.
Linux/UNIX specialist, programmer Interested in Linux based PBX development?
http://www.v0jta.net/ Watch http://www.pharocom.net/ for
robert na v0jta.net more informations/jobs ...
Looking for older Sparc/ARM machine ... If you have one, please contact me.
Další informace o konferenci Linux