106 lines
2.1 KiB
Bash
106 lines
2.1 KiB
Bash
#!/bin/sh
|
|
# Copyright (C) 2008-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/>.
|
|
|
|
# Build either as CONFIG_FILE or as PROGRAM.
|
|
|
|
required=cc
|
|
. test-init.sh
|
|
|
|
mkdir sub
|
|
|
|
cat >>configure.ac <<'END'
|
|
AC_PROG_CC
|
|
AM_CONDITIONAL([COND], [test "$COND" = true])
|
|
AM_COND_IF([COND], [],
|
|
[AC_CONFIG_FILES([prog1], [chmod 755 prog1])
|
|
AC_CONFIG_FILES([sub/prog2], [chmod 755 sub/prog2])])
|
|
AC_CONFIG_FILES([sub/Makefile])
|
|
AC_OUTPUT
|
|
END
|
|
|
|
cat >Makefile.am <<'END'
|
|
SUBDIRS = sub
|
|
if COND
|
|
bin_PROGRAMS = prog1
|
|
prog1_SOURCES = prog.c
|
|
else
|
|
bin_SCRIPTS = prog1
|
|
CLEANFILES = prog1
|
|
endif
|
|
|
|
sure-exist:
|
|
test -f prog1 || test -f prog1$(EXEEXT)
|
|
test -f sub/prog2 || test -f sub/prog2$(EXEEXT)
|
|
|
|
sure-not-exist:
|
|
test ! -f prog1 && test ! -f prog1$(EXEEXT)
|
|
test ! -f sub/prog2 && test ! -f sub/prog2$(EXEEXT)
|
|
END
|
|
|
|
cat >sub/Makefile.am <<'END'
|
|
if COND
|
|
bin_PROGRAMS = prog2
|
|
prog2_SOURCES = prog.c
|
|
else
|
|
bin_SCRIPTS = prog2
|
|
CLEANFILES = prog2
|
|
endif
|
|
END
|
|
|
|
cat >prog.c <<'END'
|
|
int main () { return 42; }
|
|
END
|
|
|
|
cat >prog1.in <<'END'
|
|
#! /bin/sh
|
|
bindir='@bindir@'
|
|
echo "hi, this is $0, and bindir is $bindir"
|
|
END
|
|
|
|
cp prog.c sub
|
|
cp prog1.in sub/prog2.in
|
|
|
|
$ACLOCAL
|
|
$AUTOCONF
|
|
$AUTOMAKE --add-missing
|
|
|
|
./configure COND=true
|
|
run_make -E
|
|
grep 'overriding commands' stderr && exit 1
|
|
$MAKE sure-exist
|
|
./prog1 && exit 1
|
|
./sub/prog2 && exit 1
|
|
$MAKE clean
|
|
$MAKE sure-not-exist
|
|
$MAKE
|
|
$MAKE sure-exist
|
|
./prog1 && exit 1
|
|
./sub/prog2 && exit 1
|
|
$MAKE distclean
|
|
|
|
./configure COND=false
|
|
run_make -E
|
|
grep 'overriding commands' stderr && exit 1
|
|
./prog1
|
|
./sub/prog2
|
|
$MAKE clean
|
|
$MAKE sure-not-exist
|
|
$MAKE
|
|
./prog1
|
|
./sub/prog2
|
|
|
|
:
|