From: Brad Date: Wed, 16 Jun 2004 17:17:40 +0000 (+0000) Subject: libltdl uses LIBOBJS, which leak out into a parent project if both X-Git-Tag: release-1-9b~69 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=aa6cd3e0749633eeb091539e71097af5d7682416;p=thirdparty%2Flibtool.git libltdl uses LIBOBJS, which leak out into a parent project if both share the same configure.ac. Libtool itself doesn't compile any code, so it is okay to do it during bootstrap, but other projects need to treat libltdl as a configurable subproject to keep their respective LIBOBJS separate: * libltdl/configure.ac: New file, based on configure.ac. * libltdl/Makefile.am (AC_LOCAL_AMFLAGS): Use our own m4 directory. (ltdldata_DATA): List *all* the files that libtoolize --ltdl will install. --- diff --git a/ChangeLog b/ChangeLog index 2002ebf6a..430c6fefa 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,20 @@ * m4/libtool.m4: More improvements to OpenBSD support. * NEWS: Updated. +2004-06-16 Gary V. Vaughan + + libltdl uses LIBOBJS, which leak out into a parent project if both + share the same configure.ac. Libtool itself doesn't compile any + code, so it is okay to do it during bootstrap, but other projects + need to treat libltdl as a configurable subproject to keep their + respective LIBOBJS separate: + + * libltdl/configure.ac: New file, based on configure.ac. + * libltdl/Makefile.am (AC_LOCAL_AMFLAGS): Use our own m4 + directory. + (ltdldata_DATA): List *all* the files that libtoolize --ltdl will + install. + 2004-06-16 Gary V. Vaughan Automake 1.9 won't have the AC_PROG_EGREP bug (aclocal used to diff --git a/libltdl/Makefile.am b/libltdl/Makefile.am index 2b20d7039..cd39d0920 100644 --- a/libltdl/Makefile.am +++ b/libltdl/Makefile.am @@ -22,7 +22,7 @@ MOSTLYCLEANFILES = EXTRA_DIST = AUTOMAKE_OPTIONS = foreign -ACLOCAL_AMFLAGS = -I ../m4 +ACLOCAL_AMFLAGS = -I m4 AM_CPPFLAGS = -I$(top_builddir) -I$(top_srcdir) DEFS = -DHAVE_CONFIG_H="<$(CONFIG_H)>" -DLTDL @@ -42,12 +42,11 @@ endif ## default. CLEANFILES = libltdl.la libltdlc.la -libltdl_la_SOURCES = ltdl.h ltdl.c \ - loader-preopen.c \ - lt_error.h lt_error.c \ - lt__private.h lt__alloc.h lt__alloc.c \ - lt__glibc.h lt__dirent.h \ - lt_system.h +libltdl_la_SOURCES = loader-preopen.c \ + lt__alloc.c lt__alloc.h lt__dirent.h lt__glibc.h \ + lt__private.h lt_dlloader.h \ + lt_error.c lt_error.h lt_system.h \ + ltdl.c ltdl.h libltdl_la_LDFLAGS = -no-undefined -version-info 5:0:2 libltdl_la_LIBADD = $(LIBADD_DL) $(LTLIBOBJS) @@ -57,8 +56,11 @@ libltdlc_la_LIBADD = $(LIBADD_DL) $(LTLIBOBJS) ## These are installed as a subdirectory of pkgdatadir so that ## libtoolize --ltdl can find them later: ltdldatadir = $(pkgdatadir)/libltdl -ltdldata_DATA = COPYING.LIB Makefile.am README $(libltdl_la_SOURCES) \ - argz_.h argz.c +ltdldata_DATA = COPYING.LIB Makefile.am README configure.ac \ + argz_.h argz.c $(libltdl_la_SOURCES) \ + loader-dld_link.c loader-dlopen.c loader-dyld.c \ + loader-load_add_on.c loader-loadlibrary.c loader-shl_load.c \ + lt__dirent.c ## --------------------------- ## diff --git a/libltdl/configure.ac b/libltdl/configure.ac new file mode 100644 index 000000000..e19c09eba --- /dev/null +++ b/libltdl/configure.ac @@ -0,0 +1,92 @@ +## Process this file with autoconf to create configure. -*- autoconf -*- +# Copyright (C) 2004 Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +# 02111-1307 USA + +# This configure.ac is not used at all by the libtool bootstrap, but +# is copied to the ltdl subdirectory if you libtoolize --ltdl your own +# project. Adding AC_WITH_LTDL to your project configure.ac will then +# configure this directory if your user doesn't want to use the installed +# libltdl. + +AC_PREREQ(2.57) + + +## ------------------------ ## +## Autoconf initialisation. ## +## ------------------------ ## +AC_INIT([libltdl], [1.5a], [bug-libtool@gnu.org]) +AC_CONFIG_HEADERS([config.h:config-h.in]) +AC_CONFIG_SRCDIR([ltdl.c]) +AC_CONFIG_AUX_DIR([config]) +AC_CONFIG_MACRO_DIR([m4]) + + +## ---------------------------------------- ## +## Display a configure time version banner. ## +## ---------------------------------------- ## + +# This is a sanity check so we can see which version is used in bug reports. +# It is assumed that we only want to see the date extension for cvs libtool +# versions (i.e. "odd" letters) and not actual alpha releases. +TIMESTAMP= +case $lt_alpha in + [[acegikmoqsuwy]]) + TIMESTAMP=`${CONFIG_SHELL} ${ac_aux_dir}/mkstamp < ${srcdir}/ChangeLog` + AS_BOX([Configuring AC_PACKAGE_TARNAME (Build:$TIMESTAMP) AC_PACKAGE_VERSION]) + echo + ;; +esac +AC_SUBST([TIMESTAMP]) + + +## ------------------------ ## +## Automake Initialisation. ## +## ------------------------ ## + +AM_INIT_AUTOMAKE([gnits]) + +## ------------------------------- ## +## Libtool specific configuration. ## +## ------------------------------- ## +pkgdatadir='${datadir}'"/${PACKAGE}" + + +## ---------------- ## +## compiler checks. ## +## ---------------- ## + +# Use the specified CC and LD +AC_PROG_CC +AC_EXEEXT +AC_PROG_LD +AC_PROG_NM +AC_PROG_LN_S + + +## ----------------------- ## +## Libtool initialisation. ## +## ----------------------- ## +LT_INIT([dlopen win32-dll]) +AC_LIBLTDL_CONVENIENCE +AC_LIB_LTDL + + +## -------- ## +## Outputs. ## +## -------- ## +AC_CONFIG_FILES([Makefile]) +AC_OUTPUT