110 lines
2.3 KiB
Bash
Executable File
110 lines
2.3 KiB
Bash
Executable File
#!/bin/sh
|
|
# Copyright (C) 2008 Free Software Foundation, Inc.
|
|
#
|
|
# This file is part of GNU Automake.
|
|
#
|
|
# GNU Automake 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.
|
|
#
|
|
# GNU Automake 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 Automake; see the file COPYING. If not, write to
|
|
# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
# Boston, MA 02110-1301, USA.
|
|
|
|
# Build either as CONFIG_FILE or as PROGRAM.
|
|
|
|
. ./defs
|
|
set -e
|
|
|
|
mkdir sub
|
|
|
|
cat >>configure.in <<'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
|
|
$MAKE 2>stderr
|
|
cat stderr
|
|
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
|
|
$MAKE 2>stderr
|
|
cat stderr
|
|
grep 'overriding commands' stderr && Exit 1
|
|
./prog1
|
|
./sub/prog2
|
|
$MAKE clean
|
|
$MAKE sure-not-exist
|
|
$MAKE
|
|
./prog1
|
|
./sub/prog2
|