summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>2017-08-17 14:12:20 +0200
committerMathieu Lirzin <mthl@gnu.org>2017-08-22 00:18:23 +0200
commit236cb06666a44f23157aa95adc26450fdec92126 (patch)
tree0e0f313feb3f9db4f4c6029e72615129696948be
parent9322f409a957f153b38ff37ba79ddf4c19cff6ca (diff)
downloadautomake-236cb06666a44f23157aa95adc26450fdec92126.tar.gz
automake: Ensure that LIBOBJ_DIR builddir is created
* t/libobj-no-dependency-tracking.sh: New test reproducing the issue described in automake bug#27781. * t/list-of-tests.mk (handwritten_TESTS, XFAIL_TESTS): Add it.
-rw-r--r--t/libobj-no-dependency-tracking.sh56
-rw-r--r--t/list-of-tests.mk2
2 files changed, 58 insertions, 0 deletions
diff --git a/t/libobj-no-dependency-tracking.sh b/t/libobj-no-dependency-tracking.sh
new file mode 100644
index 000000000..1f024057e
--- /dev/null
+++ b/t/libobj-no-dependency-tracking.sh
@@ -0,0 +1,56 @@
+#! /bin/sh
+# Copyright (C) 2017 Free Software Foundation, Inc.
+#
+# 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, 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. If not, see <http://www.gnu.org/licenses/>.
+
+# Ensure that LIBOBJS source files are properly built without dependency
+# tracking when using out of tree builds.
+#
+# This is a non regression test which is following an issue in flex-2.6.4 when
+# "malloc.o" was required, see <https://github.com/westes/flex/issues/244>.
+
+. test-init.sh
+
+# The LIBOBJS are in a separate LIBOBJ_DIR directory without anything else in
+# it to not trigger the creation of the build directory accidentally.
+cat >> configure.ac << 'END'
+AC_PROG_CC
+AC_CONFIG_LIBOBJ_DIR([foo])
+AC_LIBOBJ([foo])
+AC_OUTPUT
+END
+
+cat > Makefile.am << 'END'
+AUTOMAKE_OPTIONS = subdir-objects
+bin_PROGRAMS = helldl
+LDADD = $(LIBOBJS)
+.PHONY: dummy
+dummy: $(LIBOBJS)
+END
+
+mkdir foo
+cat > foo/foo.c << 'END'
+int foo() { return 0; }
+END
+
+mkdir build
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE
+
+cd build
+../configure --disable-dependency-tracking
+run_make dummy
+:
diff --git a/t/list-of-tests.mk b/t/list-of-tests.mk
index dacdc8dd8..dab4a7c20 100644
--- a/t/list-of-tests.mk
+++ b/t/list-of-tests.mk
@@ -38,6 +38,7 @@ t/override-conditional-pr13940.sh \
t/dist-pr109765.sh \
t/instdir-cond2.sh \
t/java-nobase.sh \
+t/libobj-no-dependency-tracking.sh \
t/objext-pr10128.sh \
t/remake-timing-bug-pr8365.sh \
t/lex-subobj-nodep.sh \
@@ -602,6 +603,7 @@ t/lflags.sh \
t/lflags-cxx.sh \
t/libexec.sh \
t/libobj-basic.sh \
+t/libobj-no-dependency-tracking.sh \
t/libobj2.sh \
t/libobj3.sh \
t/libobj4.sh \