#! /bin/sh # Copyright (C) 2003-2021 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 . # Test AM_MISSING_PROG. . test-init.sh cat >> configure.ac <<'END' AM_MISSING_PROG([NO_SUCH_COMMAND], [am-none-none]) AM_MISSING_PROG([MISMATCHED_COMMAND], [am-exit-63]) AM_MISSING_PROG([OVERRIDDEN_COMMAND], [am-none-none]) AM_MISSING_PROG([COMMAND_FOUND], [my-command]) AC_OUTPUT END mkdir bin cat > bin/am-exit-63 <<'END' #!/bin/sh echo "Oops, I'm too old" exit 63 END cat > bin/am-overridden <<'END' #!/bin/sh echo "Hey, I'm OK!" exit 0 END cat > bin/my-command <<'END' #!/bin/sh echo SNAFU exit 0 END chmod a+x bin/* PATH=$(pwd)/bin$PATH_SEPARATOR$PATH; export PATH cat > Makefile.am <<'END' # Different for different targets, for the sake of parallel make. o = $@-stdout e = $@-stderr debug_info = grep . $@-stdout $@-stderr status_is = $(debug_info); echo $@: st=$$st; test $$st -eq w_mis = 'am-none-none' is needed, and is missing on your system w_old = 'am-exit-63' is needed, and is probably too old test1: st=0; $(NO_SUCH_COMMAND) >$o 2>$e || st=$$?; $(status_is) 127 grep "^WARNING: $(w_mis)" $e test ! -s $o test2: st=0; $(MISMATCHED_COMMAND) >$o 2>$e || st=$$?; $(status_is) 63 grep "^WARNING: $(w_old)" $e test "`cat $o`" = "Oops, I'm too old" test3: st=0; $(OVERRIDDEN_COMMAND) >$o 2>$e || st=$$?; $(status_is) 0 st=0; $(OVERRIDDEN_COMMAND) >$o 2>$e || st=$$?; \ test ! -s $e test "`cat $o`" = "Hey, I'm OK!" test4: st=0; $(COMMAND_FOUND) >$o 2>$e || st=$$?; $(status_is) 0 test ! -s $e test "`cat $o`" = SNAFU check-local: test1 test2 test2 test4 .PHONY: test1 test2 test2 test4 CLEANFILES = test[1234]-stdout test[1234]-stderr END $ACLOCAL $AUTOCONF $AUTOMAKE ./configure OVERRIDDEN_COMMAND=am-overridden $FGREP COMMAND Makefile.in Makefile # For debugging. grep "^NO_SUCH_COMMAND = \${SHELL} .*/missing.* .*am-none-none" Makefile grep "^MISMATCHED_COMMAND = \${SHELL} .*/missing.* .*am-exit-63" Makefile grep "^COMMAND_FOUND = \${SHELL} .*/missing.* .*my-command" Makefile grep '^OVERRIDDEN_COMMAND = am-overridden *$' Makefile $MAKE test1 test2 test3 test4 $MAKE distcheck DISTCHECK_CONFIGURE_FLAGS='OVERRIDDEN_COMMAND=am-overridden' :