123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- #!/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
- :
|