mirror of
git://git.savannah.gnu.org/libtool.git
synced 2024-11-27 06:09:57 +08:00
8c1f97e1be
* ltconfig.in, ltmain.in: updated and fixed the patches below 1998-11-04 Thomas Tanner <tanner@gmx.de> * mdemo/*: added new demo to demonstrate building of dlopenend modules * tests/Makefile.am, tests/mdemo*: added some tests for mdemo 1998-11-04 Gary V. Vaughan <gvaughan@oranda.demon.co.uk> * demo/configure.in: added AC_EXEEXT macro so that the tests can work on cywin32/mingw32 hosts. This requires the current CVS autoconf 1998-11-04 Thomas Tanner <tanner@gmx.de> * ltmain.in: New flag -export-symbols; new dlpreopen system * demo/dlmain.c: removed dld_preloaded_symbol_count 1998-11-04 Ian Lance Taylor <ian@cygnus.com> * ltmain.in: On installation, don't get confused if the same name appears more than once in the list of library names. 1998-11-04 Ian Lance Taylor <ian@cygnus.com> * ltconfig.in: Add objext and libext variables. Check for object suffix. Check for mingw32* as well as cygwin32*. Use objext when testing compiler. Add support for Visual C++ on cygwin32 when not using gcc. Add objext, libext, and fix_srcfile_path to generated libtool script. * ltmain.in: Use .${objext} rather than .o. Use fix_srcfile_path if it is set. Check for .obj as well as for .o, and for .lib as well as for .a. Use .${libext} rather than .a when creating old libraries. * libtoolize.in: Change initial /bin/sh to @SHELL@. * libtool.m4 (AM_PROG_LIBTOOL): Add AC_REQUIRE for AC_CANONICAL_BUILD, so that autoconf doesn't get mixed up by the AC_REQUIRE in AC_CHECK_TOOL. 1998-11-04 Ian Lance Taylor <ian@cygnus.com> * ltconfig.in: Look in the right directory for libtool.c in archive_cmds for cygwin32. 1998-11-04 Ian Lance Taylor <ian@cygnus.com> * ltconfig.in: Fix cygwin32 support to avoid using a double extension, to delete the def file, to set version_type to windows, and to include versuffix in the DLL name. * ltmain.in: Add support for a version_type of windows. 1998-11-04 Ian Lance Taylor <ian@cygnus.com> * ltconfig.in: Add cygwin32 support. * libtool.m4 (AM_PROG_LIBTOOL): Call AM_SYS_LIBTOOL_CYGWIN32 on a cygwin32 host. Pass DLLTOOL and AS to ltconfig. (AM_SYS_LIBTOOL_CYGWIN32): New macro.
171 lines
6.5 KiB
Makefile
171 lines
6.5 KiB
Makefile
## Process Makefile.am with automake to create Makefile.in. -*-Makefile-*-
|
|
## Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
|
|
AUTOMAKE_OPTIONS = gnits
|
|
SUBDIRS = doc tests
|
|
|
|
# We need to export these variables when we run ltconfig.
|
|
CFLAGS = @CFLAGS@
|
|
CPPLAGS = @CPPFLAGS@
|
|
|
|
aclocal_macros = libtool.m4
|
|
|
|
EXTRA_DIST = $(aclocal_macros) libtoolize.in ltconfig.in ltmain.in \
|
|
libtool.spec libtool.prj
|
|
CLEANFILES = libtool libtoolize
|
|
MAINTAINERCLEANFILES = ltconfig ltmain.sh
|
|
|
|
# Files in the demo subdirectory that go in the distribution.
|
|
demo_distfiles = demo/Makefile.in demo/Makefile.am demo/README \
|
|
demo/acinclude.m4 demo/aclocal.m4 \
|
|
demo/configure demo/configure.in demo/foo.c demo/foo.h \
|
|
demo/dlmain.c demo/hello.c demo/main.c demo/run.test
|
|
|
|
# Files in the mdemo subdirectory that go in the distribution.
|
|
mdemo_distfiles = mdemo/Makefile.in mdemo/Makefile.am mdemo/README \
|
|
mdemo/acinclude.m4 mdemo/aclocal.m4 \
|
|
mdemo/configure mdemo/configure.in \
|
|
mdemo/foo.h mdemo/foo1.c mdemo/foo2.c \
|
|
mdemo/libfoo1.sym mdemo/libfoo2.sym \
|
|
mdemo/main.c mdemo/ltdl.h mdemo/ltdl.c mdemo/ltdls.c
|
|
|
|
# These are required by libtoolize.
|
|
pkgdata_SCRIPTS = config.guess config.sub ltconfig
|
|
pkgdata_DATA = ltmain.sh
|
|
|
|
# This macro file should be visible to Automake's aclocal.
|
|
aclocaldir = @aclocaldir@
|
|
aclocal_DATA = $(aclocal_macros)
|
|
|
|
# The standalone libtool script, and the libtool distributor.
|
|
bin_SCRIPTS = libtool libtoolize
|
|
|
|
libtool: ltmain.sh ltconfig
|
|
CC="$(CC)" CFLAGS="$(CFLAGS)" CPPFLAGS="$(CPPFLAGS)" \
|
|
LD="$(LD)" LN_S="$(LN_S)" NM="$(NM)" RANLIB="$(RANLIB)" \
|
|
$(SHELL) $(srcdir)/ltconfig --srcdir=$(srcdir) --output=$@ $<
|
|
|
|
# Experimental C version of libtool.
|
|
clibtool: ltmain.c ltconfig
|
|
CC="$(CC)" CFLAGS="$(CFLAGS)" CPPFLAGS="$(CPPFLAGS)" \
|
|
LD="$(LD)" LN_S="$(LN_S)" NM="$(NM)" RANLIB="$(RANLIB)" \
|
|
$(SHELL) $(srcdir)/ltconfig --srcdir=$(srcdir) --output=$@ $<
|
|
|
|
libtoolize: libtoolize.in $(top_builddir)/config.status
|
|
CONFIG_FILES=libtoolize CONFIG_HEADERS= $(top_builddir)/config.status
|
|
chmod +x libtoolize
|
|
|
|
# Do line number substitution, as well as PACKAGE and VERSION.
|
|
# Line numbering transliterated from a section in autoconf (Autoconf 2.12).
|
|
$(srcdir)/ltconfig: ltconfig.in $(top_srcdir)/configure.in
|
|
$(AWK) '/@LINENO@/ { printf "%d:", NR } { print }' $(srcdir)/ltconfig.in | \
|
|
sed -e 's/@''PACKAGE@/@PACKAGE@/' -e 's/@''VERSION@/@VERSION@/' \
|
|
-e '/@LINENO@/s/^\([0-9][0-9]*\):\(.*\)@LINENO@/\2\1/' > ltconfig.T
|
|
chmod +x ltconfig.T
|
|
mv -f ltconfig.T $@
|
|
|
|
$(srcdir)/ltmain.sh: ltmain.in $(top_srcdir)/configure.in
|
|
sed -e 's/@''PACKAGE@/@PACKAGE@/' -e 's/@''VERSION@/@VERSION@/' $(srcdir)/ltmain.in > ltmain.shT
|
|
mv -f ltmain.shT $@
|
|
|
|
# Distribute the demo and mdemo subdirectory.
|
|
dist-hook: $(demo_distfiles) $(mdemo_distfiles)
|
|
mkdir $(distdir)/demo
|
|
-chmod 755 $(distdir)/demo
|
|
here=`pwd`; distdir=`cd $(distdir) && pwd` \
|
|
&& cd $(srcdir)/demo \
|
|
&& $(AUTOMAKE) --include-deps --build-dir=$$here/demo --srcdir-name=$(srcdir)/demo --output-dir=$$distdir/demo
|
|
@for file in $(demo_distfiles); do \
|
|
d=$(srcdir); \
|
|
test -f $(distdir)/$$file \
|
|
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|
|
|| cp -p $$d/$$file $(distdir)/$$file; \
|
|
done
|
|
mkdir $(distdir)/mdemo
|
|
-chmod 755 $(distdir)/mdemo
|
|
here=`pwd`; distdir=`cd $(distdir) && pwd` \
|
|
&& cd $(srcdir)/mdemo \
|
|
&& $(AUTOMAKE) --include-deps --build-dir=$$here/mdemo --srcdir-name=$(srcdir)/mdemo --output-dir=$$distdir/mdemo
|
|
@for file in $(mdemo_distfiles); do \
|
|
d=$(srcdir); \
|
|
test -f $(distdir)/$$file \
|
|
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|
|
|| cp -p $$d/$$file $(distdir)/$$file; \
|
|
done
|
|
|
|
# All our rules should depend on these demo files.
|
|
all: demo/Makefile.in demo/configure mdemo/Makefile.in mdemo/configure
|
|
|
|
# We use our own libtool.m4.
|
|
$(srcdir)/acinclude.m4: libtool.m4
|
|
rm -f $(srcdir)/acinclude.m4
|
|
cd $(srcdir) && $(LN_S) libtool.m4 acinclude.m4
|
|
$(srcdir)/demo/acinclude.m4: libtool.m4
|
|
rm -f $(srcdir)/demo/acinclude.m4
|
|
cd $(srcdir)/demo && $(LN_S) ../libtool.m4 acinclude.m4
|
|
$(srcdir)/mdemo/acinclude.m4: libtool.m4
|
|
rm -f $(srcdir)/mdemo/acinclude.m4
|
|
cd $(srcdir)/mdemo && $(LN_S) ../libtool.m4 acinclude.m4
|
|
|
|
# Rules for rebuilding some of the demo source files.
|
|
$(srcdir)/demo/Makefile.in: demo/Makefile.am demo/configure.in demo/aclocal.m4
|
|
cd $(srcdir)/demo && $(AUTOMAKE)
|
|
|
|
$(srcdir)/demo/configure: demo/configure.in demo/aclocal.m4
|
|
cd $(srcdir)/demo && $(AUTOCONF)
|
|
|
|
$(srcdir)/demo/aclocal.m4: demo/configure.in demo/acinclude.m4
|
|
cd $(srcdir)/demo && $(ACLOCAL)
|
|
|
|
$(srcdir)/mdemo/Makefile.in: mdemo/Makefile.am mdemo/configure.in mdemo/aclocal.m4
|
|
cd $(srcdir)/mdemo && $(AUTOMAKE)
|
|
|
|
$(srcdir)/mdemo/configure: mdemo/configure.in mdemo/aclocal.m4
|
|
cd $(srcdir)/mdemo && $(AUTOCONF)
|
|
|
|
$(srcdir)/mdemo/aclocal.m4: mdemo/configure.in mdemo/acinclude.m4
|
|
cd $(srcdir)/mdemo && $(ACLOCAL)
|
|
|
|
######################################################################
|
|
# These commands really help my life as a maintainer who uses PRCS.
|
|
# Feel free to copy them to your own project. I just run a
|
|
# maintainer-checkin whenever I feel like it, then I run a maintainer-release
|
|
# after changing the project major version number in my project file.
|
|
#
|
|
# This works because of the special `$Format: ...$' string I have in my
|
|
# `configure.in'.
|
|
PRCS = prcs
|
|
released = $(top_srcdir)/.released
|
|
|
|
# At least configure.in should be rekeyed, but you can also add other files.
|
|
rekey_files = configure.in libtool.spec
|
|
|
|
.PHONY: maintainer-checkin maintainer-rekey maintainer-release
|
|
maintainer-checkin: maintainer-rekey
|
|
cd $(top_srcdir) && $(PRCS) checkin -f $(PACKAGE).prj
|
|
|
|
maintainer-rekey:
|
|
@newver=`grep '^(Project-Version[ ]' $(srcdir)/$(PACKAGE).prj | \
|
|
sed 's/^.*[ ]\+\([^ ]\+\)[ ]\+[0-9]\+).*$$/\1/'`; \
|
|
if test "X$$newver" = "X$(VERSION)"; then \
|
|
if test -f "$(released)"; then \
|
|
echo "New development cycle: change Project-Version in $(top_srcdir)/$(PACKAGE).prj."; \
|
|
exit 1; \
|
|
else \
|
|
echo "No need to rekey any files"; \
|
|
fi; \
|
|
else \
|
|
rm -f "$(released)"; \
|
|
echo "cd $(top_srcdir) && $(PRCS) rekey -f $(PACKAGE).prj $(rekey_files)"; \
|
|
cd $(top_srcdir) && $(PRCS) rekey -f $(PACKAGE).prj $(rekey_files); \
|
|
fi
|
|
|
|
maintainer-release: maintainer-rekey distcheck
|
|
cd $(top_srcdir) && $(PRCS) checkin -f $(PACKAGE).prj
|
|
echo "$(VERSION)" > "$(release)"
|
|
@echo "============================="; \
|
|
echo "Congratulations! $(PACKAGE)-$(VERSION) is now complete."; \
|
|
echo; \
|
|
echo "Distribute \`$(PACKAGE)-$(VERSION).tar.gz' to the masses, and don't forget"; \
|
|
echo "any other details you need to complete this release."; \
|
|
echo "============================="
|