[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: How to configure LIBOBJS
From: |
Ralf Wildenhues |
Subject: |
Re: How to configure LIBOBJS |
Date: |
Mon, 12 Jan 2004 09:40:42 +0100 |
User-agent: |
Mutt/1.4.1i |
* Juliano Ravasi Ferraz wrote on Sat, Jan 10, 2004 at 11:22:16PM CET:
>
> I've added AC_CONFIG_LIBOBJ_DIR([lib]) to configure.ac, and added the
> needed files to lib/. Automake found them and added all to distribution
> except for some needed header files that I had to list under noinst_HEADERS.
>
> The problem is that when I add @LIBOBJS@ to _LIBADD and _LDADD rules in
> the Makefile.am's of src/ and util/ directories, automake fails with
> missing files in those directories, the same files that are in the lib/
> directory (automake bug?).
A setup I know to work with current autotools is the following
(assuming existing files lib/getopt.c and src/foo.c):
$ cat configure.ac
AC_INIT([foo], [0.1], address@hidden)
AM_INIT_AUTOMAKE([foreign])
AC_CONFIG_LIBOBJ_DIR([lib])
AC_PROG_CC
AC_PROG_RANLIB
dnl Next line is just an example
AC_LIBOBJ([getopt])
AC_CONFIG_FILES([Makefile src/Makefile lib/Makefile])
AC_OUTPUT
$ cat Makefile.am
SUBDIRS = lib src
$ cat lib/Makefile.am
noinst_LIBRARIES = libreplace.a
libreplace_a_SOURCES =
libreplace_a_LIBADD = $(LIBOBJS)
$ cat src/Makefile.am
bin_PROGRAMS = foo
LDADD = ../lib/libreplace.a
$
A few remarks:
- You might get spurious errors because the src/Makefile does not know
how to rebuild ../lib/libreplace.a (esp. if you change the order in
SUBDIRS). The following line in src/Makefile.am should fix this (I'm
unsure if automake can be brought to cope with this on its own):
../lib/libreplace.a:
@cd ../lib && $(MAKE) libreplace.a
- Empty libraries cause an error with ar on some systems (unicosmk is
an example). Might have to add a dummy.c to libreplace_a_SOURCES.
More comments on this welcome. Would an example like this be accepted
for automake documentation (given it'd be in form of a complete patch)?
This question has come up several times, I think.
Regards,
Ralf