+2006-08-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * 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 <eggert@cs.ucla.edu>
* lib/install-sh: Don't incorrectly claim that this implementation
{
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).
-@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
-@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
}
EOF
-cat >src/feep.c <<'EOF'
+cat >src/main.c <<'EOF'
#include <stdio.h>
extern char *feep ();
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
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
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
}
EOF
-cat >src/feep.c <<'EOF'
+cat >src/main.c <<'EOF'
#include <stdio.h>
extern char *feep ();
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
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
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
}
EOF
-cat >src/feep.c <<'EOF'
+cat >src/main.c <<'EOF'
#include <stdio.h>
extern char *feep ();
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
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
$AUTOMAKE --add-missing
./configure
$MAKE
+test ! -d src/lib
+test ! -d 'src/$(top_builddir)'
$MAKE check
$MAKE distclean
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