libtool/libltdl/Makefile.am
Gary V. Vaughan 5451db06bd Split lt_dlloader management into a separate file, and factor
`loaders' list management into a new SList ADT.  In the process,
the API for writing loaders is a little cleaner, so all the
existing loaders were tweaked to take advantage of that:

* libltdl/slist.h, libltdl/slist.c: New files implementing a
generic singly linked list container ADT.  The ADT is purely
internal, and none of its API's are visible from an installed
libltdl.
* libltdl/lt_dlloader.h (lt_dlloader): Removed next field again
:-) Renamed to lt_dlvtable for API.  Changed all callers.
(lt_dlloader_get): New function to turn an lt_dlloader into its
associated lt_dlvtable.
(lt_dlloader_add): Removed unused data parameter.  The caller
data belongs to (and is set by) the loader itself, not the
loader's client.  Changed all callers.
(lt_dlloader_name, lt_dlloader_data): Removed.  Use
lt_dlloader_get instead!
* libltdl/lt__private.h: Include slist.h.
(lt__alloc_die_callback): Add missing LT_SCOPE to declaration.
(lt_dlhandle_struct): Use lt_dlvtable instead of opaque
lt_dlloader.
* libltdl/ltdl.c (lt_dlexit): Rewritten for the new loader API.
(loaders, lt_dlloader_add, lt_dlloader_remove, lt_dlloader_next,
lt_dlloader_find): Moved from here...
* libltdl/lt_dlloader.c ((loaders, lt_dlloader_add,
lt_dlloader_remove, lt_dlloader_next, lt_dlloader_find): ...to
here.  And rewritten in terms of new SList interface.
* libltdl/ltdl.c (lt_dlexit, tryall_dlopen): Rewritten in terms of
new lt_dlloader interface.
* libltdl/Makefile.am (libdlloader_la_SOURCES): Add slist.h and
slist.c.  Move lt_dlloader.h from here...
(pkginclude_HEADERS): ...to here.
(libltdl_la_SOURCES): Add lt_dlloader.c and lt_dlloader.h.
2004-07-15 12:33:20 +00:00

94 lines
3.0 KiB
Makefile

## Process this file with automake to produce Makefile.in
##
## Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004 Free Software Foundation
##
## 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; see the file COPYING. If not, write to
## the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
## Boston, MA 02111-1307, USA.
SUBDIRS = loaders .
BUILT_SOURCES =
MOSTLYCLEANFILES =
EXTRA_DIST =
AUTOMAKE_OPTIONS = foreign
ACLOCAL_AMFLAGS = -I m4
DEFS = -DHAVE_CONFIG_H="<$(CONFIG_H)>" -DLTDL
AM_CPPFLAGS = -I$(top_builddir)/.. -I$(top_srcdir)/..
AM_LDFLAGS = -no-undefined
VERSION_INFO = -version-info 6:0:0
pkgincludedir = $(includedir)/libltdl
lib_LTLIBRARIES = libdlloader.la
libdlloader_la_SOURCES = lt_error.h lt_error.c \
lt__private.h lt_system.h \
lt__alloc.h lt__alloc.c \
lt__glibc.h \
slist.h slist.c
libdlloader_la_LDFLAGS = $(VERSION_INFO)
libdlloader_la_LIBADD = $(LTLIBOBJS)
## Libltdl brings it all together:
if INSTALL_LTDL
include_HEADERS = ltdl.h
pkginclude_HEADERS = lt_system.h lt_error.h lt_dlloader.h
lib_LTLIBRARIES += libltdl.la
endif
if CONVENIENCE_LTDL
noinst_LTLIBRARIES = libltdlc.la
endif
libltdl_la_SOURCES = ltdl.h ltdl.c \
lt_dlloader.h lt_dlloader.c loaders/preopen.c
libltdl_la_CPPFLAGS = -DLTDLOPEN=libltdl $(AM_CPPFLAGS)
libltdl_la_LDFLAGS = $(VERSION_INFO) $(LT_DLPREOPEN)
libltdl_la_LIBADD = libdlloader.la
libltdlc_la_SOURCES = $(libltdl_la_SOURCES)
libltdlc_la_CPPFLAGS = -DLTDLOPEN=libltdlc $(AM_CPPFLAGS)
libltdlc_la_LDFLAGS = $(LT_DLPREOPEN)
libltdlc_la_LIBADD = $(libdlloader_la_OBJECTS) $(libdlloader_la_LIBADD)
## These are installed as a subdirectory of pkgdatadir so that
## libtoolize --ltdl can find them later:
ltdldatadir = $(pkgdatadir)/libltdl
nobase_ltdldata_DATA = COPYING.LIB Makefile.am README configure.ac \
$(libltdl_la_SOURCES) $(libdlloader_la_SOURCES) \
lt__dirent.c lt__dirent.h argz_.h argz.c
## Make sure these will be cleaned even when they're not built by default:
CLEANFILES = libltdl.la libltdlc.la libdlloader.la
## --------------------------- ##
## Gnulib Makefile.am snippets ##
## --------------------------- ##
## ((( gnulib module argz
BUILT_SOURCES += $(ARGZ_H)
EXTRA_DIST += argz_.h
# We need the following in order to create an <argz.h> when the system
# doesn't have one that works with the given compiler.
all-local $(lib_OBJECTS): $(ARGZ_H)
argz.h: argz_.h
cp $(srcdir)/argz_.h $@-t
mv $@-t $@
MOSTLYCLEANFILES += argz.h argz.h-t
## ))) gnulib module argz