mirror of
git://git.savannah.gnu.org/libtool.git
synced 2024-12-21 06:59:11 +08:00
7c319e20f4
tests/demo, tests/f77demo, tests/mdemo, tests/tagdemo (distclean-local): Remove compiler file droppings left by Autoconf tests that prevent make dist from finishing on several machines including Mac OS 10.5.
171 lines
6.6 KiB
Makefile
171 lines
6.6 KiB
Makefile
## Makefile.am -- Process this file with automake to produce Makefile.in
|
|
##
|
|
## Copyright (C) 2003, 2004, 2005 Free Software Foundation
|
|
## Written by Gary V. Vaughan, 2003
|
|
##
|
|
## This file is part of GNU Libtool.
|
|
##
|
|
## GNU Libtool 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.
|
|
##
|
|
## GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy
|
|
## can be downloaded from http://www.gnu.org/licenses/gpl.html,
|
|
## or obtained by writing to the Free Software Foundation, Inc.,
|
|
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
#####
|
|
|
|
AUTOMAKE_OPTIONS = no-dependencies foreign
|
|
ACLOCAL_AMFLAGS = -I ../../libltdl/m4
|
|
AM_CPPFLAGS = -I$(top_srcdir)/../..
|
|
|
|
# Build a libtool library, libhello.la for installation in libdir.
|
|
lib_LTLIBRARIES = libhello.la
|
|
libhello_la_SOURCES = longer_file_name_hello.c longer_file_name_foo.c longer_file_name_foo2.c
|
|
libhello_la_LIBADD = $(LIBM)
|
|
libhello_la_LDFLAGS = -no-undefined -version-info 3:12:1
|
|
|
|
include_HEADERS = foo.h
|
|
|
|
if BINARY_HELLDL
|
|
BUILD_helldl = helldl
|
|
else
|
|
BUILD_helldl =
|
|
endif
|
|
|
|
bin_PROGRAMS = hell hell_static $(BUILD_helldl)
|
|
|
|
# Build hell from longer_file_name_main.c and libhello.la
|
|
hell_SOURCES = longer_file_name_main.c
|
|
hell_LDADD = libhello.la
|
|
|
|
# Create a statically linked version of hell.
|
|
hell_static_SOURCES = longer_file_name_main.c
|
|
hell_static_LDADD = libhello.la
|
|
hell_static_LDFLAGS = $(STATIC)
|
|
|
|
if BINARY_HELLDL
|
|
|
|
# Create a version of hell that does a preloaded dlopen.
|
|
helldl_SOURCES = longer_file_name_dlmain.c
|
|
helldl_LDFLAGS = -export-dynamic -dlpreopen libhello.la
|
|
helldl_DEPENDENCIES = libhello.la
|
|
|
|
else
|
|
|
|
bin_SCRIPTS = helldl
|
|
# create a script that says that -dlopen is not supported
|
|
helldl helldl$(EXEEXT):
|
|
rm -f $@
|
|
echo '#! /bin/sh' > $@
|
|
echo '-dlopen is unsupported' >> $@
|
|
chmod +x $@
|
|
endif
|
|
|
|
libtool: $(LIBTOOL_DEPS)
|
|
$(SHELL) ./config.status --recheck
|
|
|
|
#----------------------------------------------------------------------
|
|
# The following declarations are only used in the testsuite:
|
|
#----------------------------------------------------------------------
|
|
|
|
hardcode_tests = hc-direct hc-libflag hc-libpath hc-minusL
|
|
CLEANFILES = $(hardcode_tests)
|
|
|
|
# Unfortunately, in order to test libtool thoroughly, we need access
|
|
# to its private directory.
|
|
objdir = `$(LIBTOOL) --config | sed -n -e 's/^objdir=\(.*\)$$/\1/p'`
|
|
|
|
# Test programs to see what gets hardcoded.
|
|
.PHONY: hardcode
|
|
hardcode: $(hardcode_tests)
|
|
SET_HARDCODE_FLAGS = \
|
|
eval `$(LIBTOOL) --config | sed -n -e '/^hardcode_.*=/p; /^wl=/p'`
|
|
hc-direct: $(hell_OBJECTS) $(hell_DEPENDENCIES) $(libdir)/libhello.la
|
|
@rm -f hc-direct
|
|
@echo "You may ignore any linking errors from the following command:"
|
|
@shlib=./$(objdir)/libhello.a; \
|
|
eval "`grep '^library_names' libhello.la`"; \
|
|
for lib in $$library_names; do \
|
|
shlib="./$(objdir)/$$lib"; \
|
|
done; \
|
|
$(SET_HARDCODE_FLAGS); \
|
|
libdir=$(libdir); \
|
|
flag=`eval echo \"$$hardcode_libdir_flag_spec\"`; \
|
|
echo "$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(hell_OBJECTS) $$shlib $(LIBS) $(LIBM) $$flag || echo unsupported > $@"; \
|
|
eval "$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(hell_OBJECTS) $$shlib $(LIBS) $(LIBM) $$flag || echo unsupported > $@"
|
|
|
|
hc-libflag: $(hell_OBJECTS) $(hell_DEPENDENCIES) $(libdir)/libhello.la
|
|
@$(SET_HARDCODE_FLAGS); \
|
|
libdir=`pwd`/$(objdir); \
|
|
flag=`eval echo \"$$hardcode_libdir_flag_spec\"`; \
|
|
if test -z "$$flag"; then \
|
|
echo "echo unsupported > $@"; \
|
|
echo unsupported > $@ || status="$$?"; \
|
|
else \
|
|
echo "$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(hell_OBJECTS) $$flag -L$(libdir) -lhello $(LIBS) $(LIBM)"; \
|
|
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(hell_OBJECTS) $$flag -L$(libdir) -lhello $(LIBS) $(LIBM) || status="$$?"; \
|
|
fi; \
|
|
exit $$status
|
|
|
|
hc-libpath: $(hell_OBJECTS) $(hell_DEPENDENCIES) $(libdir)/libhello.la
|
|
@rm -f hc-libpath
|
|
@echo "You may ignore any linking errors from the following command:"
|
|
@$(SET_HARDCODE_FLAGS); \
|
|
eval `$(LIBTOOL) --config | grep '^shlibpath_var='`; \
|
|
libdir=$(libdir); \
|
|
flag=`eval echo \"$$hardcode_libdir_flag_spec\"`; \
|
|
echo "$$shlibpath_var=./$(objdir) $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(hell_OBJECTS) -lhello $(LIBS) $(LIBM) $$flag || echo unsupported > $@"; \
|
|
eval "$$shlibpath_var=./$(objdir) $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(hell_OBJECTS) -lhello $(LIBS) $(LIBM) $$flag || echo unsupported > $@"
|
|
|
|
hc-minusL: $(hell_OBJECTS) $(hell_DEPENDENCIES)
|
|
@rm -f hc-minusL
|
|
@$(SET_HARDCODE_FLAGS); \
|
|
libdir=$(libdir); \
|
|
flag=`eval echo \"$$hardcode_libdir_flag_spec\"`; \
|
|
echo "$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(hell_OBJECTS) -L./$(objdir) -lhello $(LIBS) $(LIBM) $$flag || echo unsupported > $@"; \
|
|
eval "$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(hell_OBJECTS) -L./$(objdir) -lhello $(LIBS) $(LIBM) $$flag || echo unsupported > $@"
|
|
|
|
# This is one of the essential tests for deplibs_check_method=pass_all.
|
|
# If this one passes with pass_all, it is likely that pass_all works
|
|
EXTRA_LIBRARIES = libhell0.a
|
|
libhell0_a_SOURCES =
|
|
libhell0_a_LIBADD = longer_file_name_hello.$(OBJEXT) longer_file_name_foo.$(OBJEXT)
|
|
EXTRA_LTLIBRARIES = libhell1.la libhell2.la
|
|
libhell1_la_SOURCES = longer_file_name_hell1.c
|
|
libhell1_la_LIBADD = -L. -lhell0
|
|
libhell1_la_LDFLAGS = -no-undefined -rpath $(libdir)
|
|
libhell1_la_DEPENDENCIES = libhell0.a
|
|
libhell2_la_SOURCES = longer_file_name_hell2.c
|
|
libhell2_la_LIBADD = -L. -lhell0
|
|
libhell2_la_LDFLAGS = -no-undefined -rpath $(libdir)
|
|
libhell2_la_DEPENDENCIES = libhell0.a
|
|
EXTRA_PROGRAMS = hell0
|
|
hell0_SOURCES = longer_file_name_main.c
|
|
hell0_LDADD = libhell1.la libhell2.la $(LIBM)
|
|
|
|
# 'hell0' in EXTRA_PROGRAMS gets translated to 'hell0.exe'; but we
|
|
# must explicitly list the wrapper script 'hell0'. (bin_PROGRAMS
|
|
# are handled seamlessly by automake rules; the extra step is only
|
|
# necessary for EXTRA_PROGRAMS)
|
|
CLEANFILES += $(EXTRA_LIBRARIES) $(EXTRA_LTLIBRARIES) $(EXTRA_PROGRAMS) hell0
|
|
|
|
deplibs-check: hell0
|
|
|
|
# Workaround a bug in Autoconf-2.61 and earlier that don't clean up
|
|
# file droppings left by many compilers:
|
|
distclean-local:
|
|
ac_files="a.out.* a.exe.* a_out.exe.* b.out.* conftest.*"; \
|
|
for ac_file in $$ac_files; do \
|
|
case $$ac_file in \
|
|
*.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) rm -rf $$ac_file ;; \
|
|
esac; \
|
|
done
|