Hi, I have a project using together the both statements from above to configure. This project hase many different parts includig many shared libraries and executables.
Now the problem. 1. I have libraries which are only useful as "shared" libraries. this libraries are language extension used to dl-open by an programming language. these libraries should "not" build the "static" object files example: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>< pkglib_LTLIBRARIES = tclmsgque.la tclmsgque_la_SOURCES = context_tcl.c misc_tcl.c msgque_tcl.c read_tcl.c send_tcl.c \ config_tcl.c service_tcl.c msgque_tcl.h slave_tcl.c \ MqBufferS_tcl.c error_tcl.c # use this if you want to include the libmsgque files into the tclmsgque libraray tclmsgque_la_CFLAGS = -I$(srcdir)/../libmsgque $(TCL_INCLUDE_SPEC) $(TCL_CFLAGS) $(AM_CFLAGS) -DMQ_IGNORE_EXTERN tclmsgque_la_LIBADD = ../libmsgque/*.lo tclmsgque_la_LDFLAGS = -shared -module -avoid-version -no-undefined $(TCL_LIBADD) <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< the following object files are created >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -rw-rw-r-- 1 dev1usr users 1000 4. Dez 09:27 tclmsgque.la -rw-rw-r-- 1 dev1usr users 323 4. Dez 09:27 tclmsgque_la-config_tcl.lo -rw-rw-r-- 1 dev1usr users 154528 4. Dez 09:27 tclmsgque_la-config_tcl.o -rw-rw-r-- 1 dev1usr users 326 4. Dez 09:27 tclmsgque_la-context_tcl.lo -rw-rw-r-- 1 dev1usr users 120656 4. Dez 09:27 tclmsgque_la-context_tcl.o -rw-rw-r-- 1 dev1usr users 320 4. Dez 09:27 tclmsgque_la-error_tcl.lo -rw-rw-r-- 1 dev1usr users 96240 4. Dez 09:27 tclmsgque_la-error_tcl.o -rw-rw-r-- 1 dev1usr users 317 4. Dez 09:27 tclmsgque_la-misc_tcl.lo -rw-rw-r-- 1 dev1usr users 94800 4. Dez 09:27 tclmsgque_la-misc_tcl.o -rw-rw-r-- 1 dev1usr users 332 4. Dez 09:27 tclmsgque_la-MqBufferS_tcl.lo -rw-rw-r-- 1 dev1usr users 97688 4. Dez 09:27 tclmsgque_la-MqBufferS_tcl.o -rw-rw-r-- 1 dev1usr users 323 4. Dez 09:27 tclmsgque_la-msgque_tcl.lo -rw-rw-r-- 1 dev1usr users 103328 4. Dez 09:27 tclmsgque_la-msgque_tcl.o -rw-rw-r-- 1 dev1usr users 317 4. Dez 09:27 tclmsgque_la-read_tcl.lo -rw-rw-r-- 1 dev1usr users 113008 4. Dez 09:27 tclmsgque_la-read_tcl.o -rw-rw-r-- 1 dev1usr users 317 4. Dez 09:27 tclmsgque_la-send_tcl.lo -rw-rw-r-- 1 dev1usr users 122192 4. Dez 09:27 tclmsgque_la-send_tcl.o -rw-rw-r-- 1 dev1usr users 326 4. Dez 09:27 tclmsgque_la-service_tcl.lo -rw-rw-r-- 1 dev1usr users 88400 4. Dez 09:27 tclmsgque_la-service_tcl.o -rw-rw-r-- 1 dev1usr users 320 4. Dez 09:27 tclmsgque_la-slave_tcl.lo -rw-rw-r-- 1 dev1usr users 93392 4. Dez 09:27 tclmsgque_la-slave_tcl.o <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< as you see both *lo and *.o are created. the *.o are useless and just extend the compiling time I use "../libmsgque/*.lo" for in-project libraray dependency to avoid to link to my own shared libraray Q: what can I do to avoid build static libraries ... 2. executables should build without library dependency. This mean that if configured with "--enable-static" the static object files should be used and if configureed without the shared object files should be used. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> brain_SOURCES = brain.c brain_CFLAGS = -I../theLink/libmsgque -I$(BRAIN_HOME)/include - DMQ_LINK_WITH_LIBRARY_OBJECT_FILES if HAS_STATIC LIBMSQUE = ../theLink/libmsgque/*.o else LIBMSQUE = ../theLink/libmsgque/*.lo endif brain_LDADD = -lz -lbz2 -lrt -lm -lc $(LIBMSQUE) $(BRAIN_HOME)/lib/libtokyocabinet.a <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< I need a HELPER called HAS_STATIC defined in configure.in with >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> AM_CONDITIONAL([HAS_STATIC], [test "$enable_static" = "yes"]) <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Q: Is this OK or is something better is possible ? mfg Andreas Otto