[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Howto Add a Library to the Build?
On Tue, 23 May 2006 10:17:24 +0200
Love Hörnquist Åstrand <lha@kth.se> wrote:
> Michael B Allen <mba2000@ioplex.com> writes:
> > What's the proper way to add a library to the build?
> >
> > For example, let's say I have a library "libplex" in
> > /home/miallen/{include,lib}. It does not use autowhatever
> > so I don't have a .la file. I would like to say ./configure
> > --with-libplex=/home/miallen. Can someone give me a rough overview of
> > what files to look at so I have an idea of what documentation to read.
>
> If its just a temporary/local-patch thing its easiest to pass them in using
>
> ./configure CPPFLAGS="-I/home/miallen/include" LIBS="-L/home/miallen/lib -lplex"
Mm, this is exactly what I needed. But then again I assume this
will be passed to every individual compile which is slightly ugly.
> If its a more permanent patch, you probably want to use the heimdal
> extention rk_TEST_PACKAGE. See how its used for openldap in configure.in.
> rk_TEST_PACKAGE will give you automake and autoconf symbols to do ifdef/if
> on (grep for OPENLDAP in the source tree for examples). rk_TEST_PACKAGE
> will also give you LIB_package and INCLUDE_package automake variables.
Just to be completely clear for the next autonewbie, rk_TEST_PACKAGE looks
like a Heimdal specific thing (albeit very handy). You also need to then
add $(INCLUDE_plex) and $(LIB_plex) to the appropriate Makefile.am(s)
and run autoreconf in the top dir (assuming lib. name 'plex' here).
Here are a few other tips for autonewbies:
1) Whenever you edit a Makefile.am you need to rerun autoreconf
(although I take it -f -i is only necessary if you want to update
all the otherwise static auto* scripts).
2) If a check is failing, config.log may have more information. For
example, when I added the rk_TEST_PACKAGE for libplex I initially
got 'checking for plex ... no'. Turns out the fleeting 'autotest'
wasn't linking because it was not finding two symbols. I just needed
to add -ldl -lutil as the extralibs parameter of the rk_TEST_PACKAGE
macro. Here's the whole macro I used:
rk_TEST_PACKAGE(plex,[#include <plex/hexdump.h>],-lplex,[-ldl -lutil],, PLEX)
3) Related to above, if you modify any of the checks (cf/*.m4 in heimdal)
you need to delete the autom4te.cache directory before rerunning
./configure --with-plex=/home/miallen. I haven't actually needed to
do this for Heimdal but I did for another project so I assume it's
universally true.
Thanks,
Mike