I'm working on converting a home-grown makefile mess to using the autotools (the GNU build system) for building and deploying our shared library. The shared library exists in two forms: a traditional C++ *.so and a python module which is also a *.so but is, obviously, consumable by python only. The directory structure looks like this:
Main (has a Makefile.am and configure.ac files) | |-Shared | | | |- HwMgmt (Makefile.am, makes libhwmgmt.a and libhwmgmt.so) | |- Misc (Makefile.am, likewise for libmisc) | |-sata (Makefile.am, produces libsatacpp.so and sata.so) | | | |-satacpp (sources for the C++ API for SATA lib) | | | |-sata (sources wrapping satacpp,hwmgmt,misc in boost.python) In our home-grown system, we build HwMgmt, Misc and satacpp into *.a files and then, when building sata.so for python these *.a files were wrapped between -Wl,--whole-archive ... -Wl,--no-whole-archive. I've got to replicate this into the GNU Build System. I've tried several attempts and nothing has yet worked. Using the GNU docs, I've placed these libraries using sata_la_LIBADD = /path/to/libsatacpp.la /path/to/libHwMgmt.la ... Which links with the dynamic libraries built earlier. This isn't what I'm after. I've tried something like this: sata_la_LDFLAGS = -Wl,--whole-archive /path/to/libsatacpp.a ... -Wl,--no-whole-archive This variable is preserved throughout Makefile.in and Makefile. However, when make is run, it seems that libtool yanks the libraries between --whole-archive and --no-whole-archive and places them elsewhere. That is, I always ended with "-Wl,--whole-archive -Wl,--no-whole-archive" with my *.a file unceremoniously moved to a different place in the command line. What is the proper way to tell libtool to wrap the entire batch of symbols into the final python library? I'm using CentOS 6 which, sadly, prefers to be older than the hills in its toolset. The versions are as follows: autoconf: 2.63 (I think I recently updated this for something unrelated) automake: 1.11.1 libtool: 2.2.6b (This one appears to be woefully old) Thanks, Andy _______________________________________________ https://lists.gnu.org/mailman/listinfo/libtool