libtool/tests/mdemo/Makefile.am

73 lines
2.8 KiB
Makefile
Raw Normal View History

2003-10-15 05:46:13 +08:00
## Makefile.am -- Process this file with automake to produce Makefile.in
##
Reorganise the libtool tree to create a bootstrapped libltdl for installation to the libtoolize master tree, so that libltdl is useable even in the extreme case of when automake and autoconf are not installed on the developers machine. Part of this change requires some duplication of rules between Makefile.am (which builds libltdl for this distribution) and libltdl/Makefile.am (which is used by projects that libltoolize --ltdl --copy), so libtool now really does use a single toplevel Makefile.am, and we generate libltdl/Makefile.am from that: * m4, config: Moved from here... * libltdl/m4, libltdl/config: ...to here, to reduce the amount of kludging needed in bootstrap for autoreconf to run. * tests/cdemo/Makefile.am, tests/demo/Makefile.am, tests/depdemo/Makefile.am, tests/f77demo/Makefile.am, tests/fcdemo/Makefile.am, tests/mdemo/Makefile.am, tests/mdemo2/Makefile.am, tests/pdemo/Makefile.am, tests/tagdemo/Makefile.am (ACLOCAL_AMFLAGS): Adjust to compensate. * tests/cdemo/configure.ac, tests/demo/configure.ac, tests/depdemo/configure.ac, tests/f77demo/configure.ac, tests/fcdemo/configure.ac, tests/mdemo/configure.ac, tests/mdemo2/configure.ac, tests/pdemo/configure.ac, tests/tagdemo/configure.ac (AC_CONFIG_AUX_DIR): Ditto. * libltdl/m4/ltdl.m4: Increment serial number. (LTDL_INIT): Accept an optional directory argument to prefix each of the LD_DLLOADERS locations. Default to empty for backwards compatibility. * Makefile.maint: Adjust to compensate. * configure.ac (AC_CONFIG_AUX_DIR, AC_CONFIG_MACRO_DIR): Adjust. (AC_CONFIG_LIBOBJ_DIR): Set here so that we can build LTLIBOBJS from in a subdirectory from the amalgamated Makefile.am. (AM_PROG_CC_C_O, AM_INIT_AUTOMAKE): Use subdir-objects. (AC_CONFIG_FILES): Remove libltdl/Makefile.am. * libltdl/Makefile.am: Removed from repository, and merged into Makefile.am as we now generate it... * Makefile.am (libltdl/Makefile.am): ...from here, by extracting the merged rules, and tweaking paths to accomodate the difference in directory from Makefile.am to libltdl/Makefile.am. (nobase_dist_pkgdata_DATA): Automake generated installation rules change timestamps of installed files, so renamed this... (configauxfiles): ...to this... (libtoolize): ...substitute it... (install-data-local): ...install manually, preserving timestamps... (install-data-hook): ...and set execute bit as appropriate. (uninstall-hook): Not forgetting to remove them at uninstall. (libltdl/Makefile.in): New rule. Called from... * bootstrap: ...here to avoid relying on config.status at bootstrap time. (auxdir, m4dir): Extract from configure.ac for ease of future maintenance. Adjust all references. (reconfdirs): Call autoreconf for libltdl too -- even though we don't use it for the build, libltdl/configure and friends are installed with `libtoolize --ltdl --copy'. * libtoolize.m4sh: Add files from the installed config master tree to libtoolize --ltdl project subdirectory. Diagnose duplicated files when --ltdl is used in an autotooled project. It's perfectly fine to run `libtoolize --ltdl --copy' in a tree that has no configure.ac or configure.in; we want libltdl to be useful even to projects that don't use autotools themselves. (libtoolize_flags): Removed. Changed all callers. (func_massage_pkgconfig_files): New function. * tests/standalone.at: New tests for using libltdl without supporting configury in the parent project. * tests/testsuite.at: Run them! * NEWS: Updated.
2005-08-23 09:49:37 +08:00
## Copyright (C) 2003, 2004, 2005 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
## 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
Reorganise the libtool tree to create a bootstrapped libltdl for installation to the libtoolize master tree, so that libltdl is useable even in the extreme case of when automake and autoconf are not installed on the developers machine. Part of this change requires some duplication of rules between Makefile.am (which builds libltdl for this distribution) and libltdl/Makefile.am (which is used by projects that libltoolize --ltdl --copy), so libtool now really does use a single toplevel Makefile.am, and we generate libltdl/Makefile.am from that: * m4, config: Moved from here... * libltdl/m4, libltdl/config: ...to here, to reduce the amount of kludging needed in bootstrap for autoreconf to run. * tests/cdemo/Makefile.am, tests/demo/Makefile.am, tests/depdemo/Makefile.am, tests/f77demo/Makefile.am, tests/fcdemo/Makefile.am, tests/mdemo/Makefile.am, tests/mdemo2/Makefile.am, tests/pdemo/Makefile.am, tests/tagdemo/Makefile.am (ACLOCAL_AMFLAGS): Adjust to compensate. * tests/cdemo/configure.ac, tests/demo/configure.ac, tests/depdemo/configure.ac, tests/f77demo/configure.ac, tests/fcdemo/configure.ac, tests/mdemo/configure.ac, tests/mdemo2/configure.ac, tests/pdemo/configure.ac, tests/tagdemo/configure.ac (AC_CONFIG_AUX_DIR): Ditto. * libltdl/m4/ltdl.m4: Increment serial number. (LTDL_INIT): Accept an optional directory argument to prefix each of the LD_DLLOADERS locations. Default to empty for backwards compatibility. * Makefile.maint: Adjust to compensate. * configure.ac (AC_CONFIG_AUX_DIR, AC_CONFIG_MACRO_DIR): Adjust. (AC_CONFIG_LIBOBJ_DIR): Set here so that we can build LTLIBOBJS from in a subdirectory from the amalgamated Makefile.am. (AM_PROG_CC_C_O, AM_INIT_AUTOMAKE): Use subdir-objects. (AC_CONFIG_FILES): Remove libltdl/Makefile.am. * libltdl/Makefile.am: Removed from repository, and merged into Makefile.am as we now generate it... * Makefile.am (libltdl/Makefile.am): ...from here, by extracting the merged rules, and tweaking paths to accomodate the difference in directory from Makefile.am to libltdl/Makefile.am. (nobase_dist_pkgdata_DATA): Automake generated installation rules change timestamps of installed files, so renamed this... (configauxfiles): ...to this... (libtoolize): ...substitute it... (install-data-local): ...install manually, preserving timestamps... (install-data-hook): ...and set execute bit as appropriate. (uninstall-hook): Not forgetting to remove them at uninstall. (libltdl/Makefile.in): New rule. Called from... * bootstrap: ...here to avoid relying on config.status at bootstrap time. (auxdir, m4dir): Extract from configure.ac for ease of future maintenance. Adjust all references. (reconfdirs): Call autoreconf for libltdl too -- even though we don't use it for the build, libltdl/configure and friends are installed with `libtoolize --ltdl --copy'. * libtoolize.m4sh: Add files from the installed config master tree to libtoolize --ltdl project subdirectory. Diagnose duplicated files when --ltdl is used in an autotooled project. It's perfectly fine to run `libtoolize --ltdl --copy' in a tree that has no configure.ac or configure.in; we want libltdl to be useful even to projects that don't use autotools themselves. (libtoolize_flags): Removed. Changed all callers. (func_massage_pkgconfig_files): New function. * tests/standalone.at: New tests for using libltdl without supporting configury in the parent project. * tests/testsuite.at: Run them! * NEWS: Updated.
2005-08-23 09:49:37 +08:00
ACLOCAL_AMFLAGS = -I ../../libltdl/m4
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}
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
Reorganise the libtool tree to create a bootstrapped libltdl for installation to the libtoolize master tree, so that libltdl is useable even in the extreme case of when automake and autoconf are not installed on the developers machine. Part of this change requires some duplication of rules between Makefile.am (which builds libltdl for this distribution) and libltdl/Makefile.am (which is used by projects that libltoolize --ltdl --copy), so libtool now really does use a single toplevel Makefile.am, and we generate libltdl/Makefile.am from that: * m4, config: Moved from here... * libltdl/m4, libltdl/config: ...to here, to reduce the amount of kludging needed in bootstrap for autoreconf to run. * tests/cdemo/Makefile.am, tests/demo/Makefile.am, tests/depdemo/Makefile.am, tests/f77demo/Makefile.am, tests/fcdemo/Makefile.am, tests/mdemo/Makefile.am, tests/mdemo2/Makefile.am, tests/pdemo/Makefile.am, tests/tagdemo/Makefile.am (ACLOCAL_AMFLAGS): Adjust to compensate. * tests/cdemo/configure.ac, tests/demo/configure.ac, tests/depdemo/configure.ac, tests/f77demo/configure.ac, tests/fcdemo/configure.ac, tests/mdemo/configure.ac, tests/mdemo2/configure.ac, tests/pdemo/configure.ac, tests/tagdemo/configure.ac (AC_CONFIG_AUX_DIR): Ditto. * libltdl/m4/ltdl.m4: Increment serial number. (LTDL_INIT): Accept an optional directory argument to prefix each of the LD_DLLOADERS locations. Default to empty for backwards compatibility. * Makefile.maint: Adjust to compensate. * configure.ac (AC_CONFIG_AUX_DIR, AC_CONFIG_MACRO_DIR): Adjust. (AC_CONFIG_LIBOBJ_DIR): Set here so that we can build LTLIBOBJS from in a subdirectory from the amalgamated Makefile.am. (AM_PROG_CC_C_O, AM_INIT_AUTOMAKE): Use subdir-objects. (AC_CONFIG_FILES): Remove libltdl/Makefile.am. * libltdl/Makefile.am: Removed from repository, and merged into Makefile.am as we now generate it... * Makefile.am (libltdl/Makefile.am): ...from here, by extracting the merged rules, and tweaking paths to accomodate the difference in directory from Makefile.am to libltdl/Makefile.am. (nobase_dist_pkgdata_DATA): Automake generated installation rules change timestamps of installed files, so renamed this... (configauxfiles): ...to this... (libtoolize): ...substitute it... (install-data-local): ...install manually, preserving timestamps... (install-data-hook): ...and set execute bit as appropriate. (uninstall-hook): Not forgetting to remove them at uninstall. (libltdl/Makefile.in): New rule. Called from... * bootstrap: ...here to avoid relying on config.status at bootstrap time. (auxdir, m4dir): Extract from configure.ac for ease of future maintenance. Adjust all references. (reconfdirs): Call autoreconf for libltdl too -- even though we don't use it for the build, libltdl/configure and friends are installed with `libtoolize --ltdl --copy'. * libtoolize.m4sh: Add files from the installed config master tree to libtoolize --ltdl project subdirectory. Diagnose duplicated files when --ltdl is used in an autotooled project. It's perfectly fine to run `libtoolize --ltdl --copy' in a tree that has no configure.ac or configure.in; we want libltdl to be useful even to projects that don't use autotools themselves. (libtoolize_flags): Removed. Changed all callers. (func_massage_pkgconfig_files): New function. * tests/standalone.at: New tests for using libltdl without supporting configury in the parent project. * tests/testsuite.at: Run them! * NEWS: Updated.
2005-08-23 09:49:37 +08:00
(cd $(top_distdir); $(MAKE) `echo $(LIBLTDL) | sed 's,.*\.\./libltdl/,libltdl/,g'`)
2003-10-15 05:46:13 +08:00
# 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)
libtool: $(LIBTOOL_DEPS)
$(SHELL) ./config.status --recheck