#! /bin/sh # Copyright (C) 1998-2012 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 . # Yet another sources-in-conditional test. Report from Tim Goodwin. . ./defs || Exit 1 cat >> configure.ac << 'END' AC_PROG_CC AM_CONDITIONAL([ONE], [true]) AM_CONDITIONAL([TWO], [false]) AC_OUTPUT END cat > Makefile.am << 'END' bin_PROGRAMS = targ if ONE OPT_SRC = one.c endif if TWO OPT_SRC = $(OPT_SRC) two.c endif targ_SOURCES = main.c $(OPT_SRC) END # The bug is that automake hangs. So we give it an appropriate grace # time, then kill it if necessary. $ACLOCAL $AUTOMAKE 2>stderr & pid=$! # MSYS bash seems to have a bug in kill, so don't try to kill too soon; # and avoid maintainer-check test. sleep '2' # Make at most 30 tries, one every 10 seconds (= 300 seconds = 5 min). try=1 while test $try -le 30; do if kill -0 $pid; then : process $pid is still alive, wait and retry sleep '10' try=`expr $try + 1` else cat stderr >&2 # Automake must fail with a proper error message. grep 'variable.*OPT_SRC.*recursively defined' stderr Exit 0 fi done # The automake process probably hung. Kill it, and exit with failure. echo "$me: Automake process $pid hung" kill $pid Exit 1