2003-10-15 05:46:13 +08:00
|
|
|
## Makefile.am -- Process this file with automake to produce Makefile.in
|
|
|
|
##
|
Factor out the individual loaders, in preparation for preloading
them as libtool modules. Currently loader-preopen.c is linked
unconditionally and other appropriate loaders discovered by
AC_LTDL_DLLIB are built and linked in:
* libltdl/Makefile.am (libltdl_la_SOURCES): Add loader-preopen
module.
* m4/ltdl.m4 (AC_LTDL_DLLIB): Use AC_LIBOBJ to add appropriate
loaders to libltdl.
* libltdl/lt_system.h (LT_SCOPE): Moved to here.
* libltdl/ltdl.h (lt_dlloader, lt_user_data, lt_module)
(lt_module_open, lt_module_close, lt_find_sym, lt_dlloader_exit)
(struct lt_user_dlloader, lt_dlloader_next, lt_dlloader_find)
(lt_dlloader_name, lt_dlloader_data, lt_dlloader_add)
(lt_dlloader_remove): Moved declarations...
* libltdl/lt_loader.h: ...to here.
* libltdl/ltdl.c: Include lt_loader.h. Move loader implementation
code from here...
* libltdl/loader-dld_link.c, libltdl/loader-dlopen.c,
libltdl/loader-dyld.c, libltdl/loader-load_add_on.c,
libltdl/loader-loadlibrary.c, libltdl/loader-preopen.c,
libltdl/loader-shl_load.c: ...to here.
* tests/cdemo/Makefile.am, tests/demo/Makefile.am,
tests/depdemo/Makefile.am, tests/f77demo/Makefile.am,
tests/mdemo/Makefile.am, tests/mdemo2/Makefile.am,
tests/pdemo/Makefile.am, tests/tagdemo/Makefile.am (AM_CPPFLAGS):
Add -I$(top_srcdir)/../.. so that libltdl include files can be
written as #include <libltdl/lt_dlloader.h> and found correctly.
2004-04-13 22:31:05 +08:00
|
|
|
## Copyright (C) 2003, 2004 Free Software Foundation
|
2003-10-15 05:46:13 +08:00
|
|
|
##
|
|
|
|
## 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
|
2005-04-22 18:10:31 +08:00
|
|
|
## the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
|
|
## Boston, MA 02110-1301, USA.
|
2003-10-15 05:46:13 +08:00
|
|
|
|
|
|
|
AUTOMAKE_OPTIONS = no-dependencies foreign
|
2003-10-15 16:09:07 +08:00
|
|
|
ACLOCAL_AMFLAGS = -I ../../m4
|
Factor out the individual loaders, in preparation for preloading
them as libtool modules. Currently loader-preopen.c is linked
unconditionally and other appropriate loaders discovered by
AC_LTDL_DLLIB are built and linked in:
* libltdl/Makefile.am (libltdl_la_SOURCES): Add loader-preopen
module.
* m4/ltdl.m4 (AC_LTDL_DLLIB): Use AC_LIBOBJ to add appropriate
loaders to libltdl.
* libltdl/lt_system.h (LT_SCOPE): Moved to here.
* libltdl/ltdl.h (lt_dlloader, lt_user_data, lt_module)
(lt_module_open, lt_module_close, lt_find_sym, lt_dlloader_exit)
(struct lt_user_dlloader, lt_dlloader_next, lt_dlloader_find)
(lt_dlloader_name, lt_dlloader_data, lt_dlloader_add)
(lt_dlloader_remove): Moved declarations...
* libltdl/lt_loader.h: ...to here.
* libltdl/ltdl.c: Include lt_loader.h. Move loader implementation
code from here...
* libltdl/loader-dld_link.c, libltdl/loader-dlopen.c,
libltdl/loader-dyld.c, libltdl/loader-load_add_on.c,
libltdl/loader-loadlibrary.c, libltdl/loader-preopen.c,
libltdl/loader-shl_load.c: ...to here.
* tests/cdemo/Makefile.am, tests/demo/Makefile.am,
tests/depdemo/Makefile.am, tests/f77demo/Makefile.am,
tests/mdemo/Makefile.am, tests/mdemo2/Makefile.am,
tests/pdemo/Makefile.am, tests/tagdemo/Makefile.am (AM_CPPFLAGS):
Add -I$(top_srcdir)/../.. so that libltdl include files can be
written as #include <libltdl/lt_dlloader.h> and found correctly.
2004-04-13 22:31:05 +08:00
|
|
|
AM_CPPFLAGS = -I$(top_srcdir)/../.. $(INCLTDL)
|
2003-10-15 05:46:13 +08:00
|
|
|
|
|
|
|
lib_LTLIBRARIES = libsub.la foo1.la libfoo2.la libmlib.la
|
|
|
|
|
|
|
|
foo1_la_SOURCES = foo1.c
|
|
|
|
foo1_la_LIBADD = $(LIBM) libsub.la
|
|
|
|
foo1_la_LDFLAGS = -no-undefined -module -avoid-version
|
|
|
|
|
|
|
|
libfoo2_la_SOURCES = foo2.c
|
|
|
|
libfoo2_la_LIBADD = $(LIBM) libsub.la
|
|
|
|
libfoo2_la_LDFLAGS = -no-undefined -module -export-symbols-regex "libfoo2.*"
|
|
|
|
|
|
|
|
libsub_la_SOURCES = sub.c
|
|
|
|
libsub_la_LDFLAGS = -no-undefined
|
|
|
|
|
|
|
|
libmlib_la_SOURCES = mlib.c
|
|
|
|
libmlib_la_LIBADD = @LIBLTDL@ "-dlopen" foo1.la "-dlopen" libfoo2.la
|
|
|
|
libmlib_la_LDFLAGS = -no-undefined
|
|
|
|
libmlib_la_DEPENDENCIES = @LIBLTDL@ libsub.la foo1.la libfoo2.la
|
|
|
|
|
|
|
|
noinst_HEADERS = foo.h
|
|
|
|
|
|
|
|
bin_PROGRAMS = mdemo mdemo_static
|
|
|
|
|
|
|
|
## use @LIBLTDL@ because some broken makes do not accept macros in targets
|
|
|
|
## we can only do this because our LIBLTDL does not contain ${top_builddir}
|
2003-10-15 16:09:07 +08:00
|
|
|
top_distdir = ../..
|
2003-10-15 05:46:13 +08:00
|
|
|
@LIBLTDL@: $(top_distdir)/libtool $(top_distdir)/libltdl/libtool \
|
|
|
|
$(top_distdir)/libltdl/config.h $(srcdir)/$(top_distdir)/libltdl/ltdl.c \
|
|
|
|
$(srcdir)/$(top_distdir)/libltdl/ltdl.h
|
|
|
|
(cd $(top_distdir)/libltdl; $(MAKE) `echo $(LIBLTDL) | sed 's,.*\.\./libltdl/,,g'`)
|
|
|
|
# Without the following line, the check may fail if libltdl/libtool is
|
|
|
|
# removed after libltdl is configured
|
|
|
|
$(top_distdir)/libltdl/libtool $(top_distdir)/libltdl/config.h:
|
|
|
|
|
|
|
|
# Create a version of mdemo that does dlopen.
|
|
|
|
mdemo_SOURCES = main.c
|
|
|
|
mdemo_LDFLAGS = -export-dynamic
|
|
|
|
## The quotes around -dlopen below fool automake into accepting it
|
|
|
|
mdemo_LDADD = @LIBLTDL@ libsub.la "-dlopen" self \
|
|
|
|
"-dlopen" foo1.la "-dlopen" libfoo2.la
|
|
|
|
mdemo_DEPENDENCIES = @LIBLTDL@ libsub.la foo1.la libfoo2.la
|
|
|
|
|
|
|
|
# Create a statically linked version of mdemo.
|
|
|
|
mdemo_static_SOURCES = $(mdemo_SOURCES)
|
|
|
|
mdemo_static_LDFLAGS = $(STATIC) $(mdemo_LDFLAGS)
|
|
|
|
mdemo_static_LDADD = $(mdemo_LDADD)
|
|
|
|
mdemo_static_DEPENDENCIES = $(mdemo_DEPENDENCIES)
|
|
|
|
|
|
|
|
$(OBJECTS): libtool
|
|
|
|
libtool: $(LIBTOOL_DEPS)
|
|
|
|
$(SHELL) ./config.status --recheck
|