[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Enabling/disabling shared or static libs from Makefile.am
From: |
Pierre Sarrazin |
Subject: |
Enabling/disabling shared or static libs from Makefile.am |
Date: |
Fri, 8 Jun 2001 10:49:20 -0400 |
User-agent: |
Mutt/1.2.5i |
I am autoconfiscating a large source tree with Autoconf (2.13),
Automake (1.4) and Libtool (1.3.5) on a GNU/Linux system.
In this tree, there are subtrees that constitute the sources for
shared libraries. Other subtrees should give static libraries
because they will never be needed in shared form. Yet other subtrees
define executable commands.
In the Makefile.am files that define the libraries, I specify that
I want to build libtool libraries, e.g., libfoo.la.
One problem is that libtool then compiles every source file twice:
once with position-independent code for a shared library, and once
with position-dependent code for a static library.
None of the libraries need to be created in both shared and static
form. Thus, compiling twice wastes time and disk space.
I know that I can specify AC_DISABLE_STATIC before AM_PROG_LIBTOOL
in the configure.in file. But then, all libraries are created in
shared form, which is inappropriate in my case. This solution is
too centralized.
Logically, it is in a Makefile.am file that I would like to ask
that a specific library should be static.
There is one Makefile.am file in which I build two libraries:
lib_LTLIBRARIES = libutils.la libmem.la
libutils should be static, while libmem should be shared.
I tried adding the -static flag to the *_LDFLAGS variable:
libutils_la_LDFLAGS = -version-info 0:0:0 -no-undefined -static
But the source files are still compiled twice.
Does automake support what I am trying to say?
I would not mind if all source files were compiled as
position-independent code, even for static libraries.
--
Pierre Sarrazin <sarrazip -at- sympatico -dot- ca>
- Enabling/disabling shared or static libs from Makefile.am,
Pierre Sarrazin <=