1#! /bin/sh
2# Copyright (C) 2010-2021 Free Software Foundation, Inc.
3#
4# This program is free software; you can redistribute it and/or modify
5# it under the terms of the GNU General Public License as published by
6# the Free Software Foundation; either version 2, or (at your option)
7# any later version.
8#
9# This program is distributed in the hope that it will be useful,
10# but WITHOUT ANY WARRANTY; without even the implied warranty of
11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12# GNU General Public License for more details.
13#
14# You should have received a copy of the GNU General Public License
15# along with this program.  If not, see <https://www.gnu.org/licenses/>.
16
17# Test EXTRA_*_DEPENDENCIES, libtool version; see 'extra-deps.sh' for
18# non-libtool variant.
19
20required='cc libtoolize'
21. test-init.sh
22
23cat >> configure.ac << 'END'
24AC_PROG_CC
25AM_PROG_AR
26AC_PROG_LIBTOOL
27AC_SUBST([deps], [bardep])
28AC_OUTPUT
29END
30
31cat > Makefile.am << 'END'
32noinst_LTLIBRARIES = libfoo.la
33EXTRA_libfoo_la_DEPENDENCIES = libfoodep
34libfoodep:
35	@echo making $@
36	@: > $@
37CLEANFILES = libfoodep
38
39bin_PROGRAMS = bar
40bar_LDADD = libfoo.la
41EXTRA_bar_DEPENDENCIES = $(deps)
42
43EXTRA_DIST = bardep
44
45.PHONY: bar-has-been-updated
46bar-has-been-updated:
47	is_newest bar$(EXEEXT) libfoo.la
48END
49
50cat >libfoo.c <<'END'
51int libfoo () { return 0; }
52END
53
54cat >bar.c <<'END'
55extern int libfoo ();
56int main () { return libfoo (); }
57END
58
59libtoolize
60$ACLOCAL
61$AUTOMAKE --add-missing
62$AUTOCONF
63
64./configure
65
66# Hypothesis: EXTRA_*_DEPENDENCIES are honored.
67
68: >foodep
69: >foodep2
70: >bardep
71run_make -O
72grep 'making libfoodep' stdout
73
74rm -f bardep
75$MAKE && exit 1
76: >bardep
77
78$MAKE
79$sleep
80touch libfoo.la
81$MAKE
82$MAKE bar-has-been-updated
83
84$MAKE distcheck
85
86:
87