From: Alexandre Duret-Lutz Date: Fri, 4 Aug 2006 06:08:58 +0000 (+0000) Subject: * automake.in (handle_LIBOBJS_or_ALLOCA): With subdir-objects, X-Git-Tag: Release-1-9b~22 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6cbc61eb0d717dc9448c53d3eadcdb6247087c38;p=thirdparty%2Fautomake.git * automake.in (handle_LIBOBJS_or_ALLOCA): With subdir-objects, do not prefix `$(top_builddir)/' aka `./' to nonempty LIBOBJDIR, to help BSD Make find the files also in a VPATH build. Also return the same path, possibly prefixed, for correct depdir computation. * tests/pr401.test: Update to expose wrong depdir computation. Rewrite to not use the same file name for library object and main program. * tests/pr401b.test, tests/pr401c.test: Likewise. --- diff --git a/ChangeLog b/ChangeLog index 6259dab7e..5a73452ea 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2006-08-04 Ralf Wildenhues + + * automake.in (handle_LIBOBJS_or_ALLOCA): With subdir-objects, + do not prefix `$(top_builddir)/' aka `./' to nonempty LIBOBJDIR, + to help BSD Make find the files also in a VPATH build. + Also return the same path, possibly prefixed, for correct + depdir computation. + * tests/pr401.test: Update to expose wrong depdir computation. + Rewrite to not use the same file name for library object and + main program. + * tests/pr401b.test, tests/pr401c.test: Likewise. + 2006-07-09 Paul Eggert * lib/install-sh: Don't incorrectly claim that this implementation diff --git a/automake.in b/automake.in index fafc1449d..d011d9f91 100755 --- a/automake.in +++ b/automake.in @@ -2175,7 +2175,12 @@ sub handle_LIBOBJS_or_ALLOCA ($) { if (option 'subdir-objects') { - define_variable ('LIBOBJDIR', "\$(top_builddir)/$dir", INTERNAL); + # In the top-level Makefile we do not use $(top_builddir), because + # we are already there, and since the targets are built without + # a $(top_builddir), it helps BSD Make to match them with + # dependencies. + $dir = "$topsrcdir/$dir" if $relative_dir ne '.'; + define_variable ('LIBOBJDIR', "$dir", INTERNAL); $clean_files{"\$($var)"} = MOSTLY_CLEAN; # If LTLIBOBJS is used, we must also clear LIBOBJS (which might # be created by libtool as a side-effect of creating LTLIBOBJS). diff --git a/doc/stamp-vti b/doc/stamp-vti index 636745fc1..fbc1f742e 100644 --- a/doc/stamp-vti +++ b/doc/stamp-vti @@ -1,4 +1,4 @@ -@set UPDATED 26 May 2006 -@set UPDATED-MONTH May 2006 +@set UPDATED 6 June 2006 +@set UPDATED-MONTH June 2006 @set EDITION 1.9a @set VERSION 1.9a diff --git a/doc/version.texi b/doc/version.texi index 636745fc1..fbc1f742e 100644 --- a/doc/version.texi +++ b/doc/version.texi @@ -1,4 +1,4 @@ -@set UPDATED 26 May 2006 -@set UPDATED-MONTH May 2006 +@set UPDATED 6 June 2006 +@set UPDATED-MONTH June 2006 @set EDITION 1.9a @set VERSION 1.9a diff --git a/tests/pr401.test b/tests/pr401.test index 093790d31..5d55c6432 100755 --- a/tests/pr401.test +++ b/tests/pr401.test @@ -36,7 +36,7 @@ feep () } EOF -cat >src/feep.c <<'EOF' +cat >src/main.c <<'EOF' #include extern char *feep (); @@ -76,10 +76,10 @@ libfeep_a_LIBADD = $(LIBOBJS) EOF cat >src/Makefile.am <<'EOF' -check_PROGRAMS = feep -feep_LDADD = ../lib/libfeep.a +check_PROGRAMS = main +main_LDADD = ../lib/libfeep.a -TESTS = feep +TESTS = main EOF $ACLOCAL @@ -107,16 +107,18 @@ noinst_LIBRARIES = libfeep.a libfeep_a_SOURCES = libfeep_a_LIBADD = $(LIBOBJS) -check_PROGRAMS = feep -feep_LDADD = libfeep.a +check_PROGRAMS = main +main_LDADD = libfeep.a -TESTS = feep +TESTS = main EOF $ACLOCAL $AUTOCONF $AUTOMAKE --add-missing ./configure +test ! -d src/lib +test ! -d 'src/$(top_builddir)' $MAKE $MAKE check $MAKE distclean @@ -136,14 +138,16 @@ noinst_LIBRARIES = lib/libfeep.a lib_libfeep_a_SOURCES = lib_libfeep_a_LIBADD = $(LIBOBJS) -check_PROGRAMS = src/feep -src_feep_SOURCES = src/feep.c -src_feep_LDADD = lib/libfeep.a +check_PROGRAMS = src/main +src_main_SOURCES = src/main.c +src_main_LDADD = lib/libfeep.a -TESTS = src/feep +TESTS = src/main check-local: - test -f src/feep.$(OBJEXT) + test -f src/main.$(OBJEXT) + test -f lib/feep.$(OBJEXT) + test ! -f src/$(DEPDIR)/feep.Po EOF $ACLOCAL diff --git a/tests/pr401b.test b/tests/pr401b.test index ac4ec3668..66d8b1f42 100755 --- a/tests/pr401b.test +++ b/tests/pr401b.test @@ -36,7 +36,7 @@ feep () } EOF -cat >src/feep.c <<'EOF' +cat >src/main.c <<'EOF' #include extern char *feep (); @@ -76,10 +76,10 @@ libfeep_la_LIBADD = $(LTLIBOBJS) EOF cat >src/Makefile.am <<'EOF' -check_PROGRAMS = feep -feep_LDADD = ../lib/libfeep.la +check_PROGRAMS = main +main_LDADD = ../lib/libfeep.la -TESTS = feep +TESTS = main EOF libtoolize @@ -108,16 +108,18 @@ noinst_LTLIBRARIES = libfeep.la libfeep_la_SOURCES = libfeep_la_LIBADD = $(LTLIBOBJS) -check_PROGRAMS = feep -feep_LDADD = libfeep.la +check_PROGRAMS = main +main_LDADD = libfeep.la -TESTS = feep +TESTS = main EOF $ACLOCAL $AUTOCONF $AUTOMAKE --add-missing ./configure +test ! -d src/lib +test ! -d 'src/$(top_builddir)' $MAKE $MAKE check $MAKE distclean @@ -137,14 +139,16 @@ noinst_LTLIBRARIES = lib/libfeep.la lib_libfeep_la_SOURCES = lib_libfeep_la_LIBADD = $(LTLIBOBJS) -check_PROGRAMS = src/feep -src_feep_SOURCES = src/feep.c -src_feep_LDADD = lib/libfeep.la +check_PROGRAMS = src/main +src_main_SOURCES = src/main.c +src_main_LDADD = lib/libfeep.la -TESTS = src/feep +TESTS = src/main check-local: - test -f src/feep.$(OBJEXT) + test -f src/main.$(OBJEXT) + test -f lib/feep.lo + test ! -f src/$(DEPDIR)/feep.Po EOF $ACLOCAL diff --git a/tests/pr401c.test b/tests/pr401c.test index af6ad53a9..456b21bf5 100755 --- a/tests/pr401c.test +++ b/tests/pr401c.test @@ -39,7 +39,7 @@ feep () } EOF -cat >src/feep.c <<'EOF' +cat >src/main.c <<'EOF' #include extern char *feep (); @@ -78,10 +78,10 @@ libfeep_a_LIBADD = $(ALLOCA) EOF cat >src/Makefile.am <<'EOF' -check_PROGRAMS = feep -feep_LDADD = ../lib/libfeep.a +check_PROGRAMS = main +main_LDADD = ../lib/libfeep.a -TESTS = feep +TESTS = main EOF $ACLOCAL @@ -109,10 +109,10 @@ noinst_LIBRARIES = libfeep.a libfeep_a_SOURCES = libfeep_a_LIBADD = $(ALLOCA) $(LIBOBJS) # Add LIBOBJS for fun -check_PROGRAMS = feep -feep_LDADD = libfeep.a +check_PROGRAMS = main +main_LDADD = libfeep.a -TESTS = feep +TESTS = main EOF $ACLOCAL @@ -120,6 +120,8 @@ $AUTOCONF $AUTOMAKE --add-missing ./configure $MAKE +test ! -d src/lib +test ! -d 'src/$(top_builddir)' $MAKE check $MAKE distclean @@ -138,14 +140,16 @@ noinst_LIBRARIES = lib/libfeep.a lib_libfeep_a_SOURCES = lib_libfeep_a_LIBADD = $(ALLOCA) -check_PROGRAMS = src/feep -src_feep_SOURCES = src/feep.c -src_feep_LDADD = lib/libfeep.a +check_PROGRAMS = src/main +src_main_SOURCES = src/main.c +src_main_LDADD = lib/libfeep.a -TESTS = src/feep +TESTS = src/main check-local: - test -f src/feep.$(OBJEXT) + test -f src/main.$(OBJEXT) + test -f lib/alloca.$(OBJEXT) + test ! -f src/$(DEPDIR)/alloca.Po EOF $ACLOCAL