Modify some tests for absolute trees containing whitespace.
[automake/plouj.git] / tests / mmodely.test
blob19877b629345caa52c49aac750121036661b2d55
1 #! /bin/sh
2 # Copyright (C) 2004, 2006, 2007 Free Software Foundation, Inc.
4 # This file is part of GNU Automake.
6 # GNU Automake is free software; you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation; either version 3, or (at your option)
9 # any later version.
11 # GNU Automake is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 # GNU General Public License for more details.
16 # You should have received a copy of the GNU General Public License
17 # along with Automake; see the file COPYING. If not, write to
18 # the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19 # Boston, MA 02110-1301, USA.
21 # Verify that intermediate files are only built from Yacc and Lex
22 # sources in maintainer mode.
23 # From Derek R. Price.
25 required=gcc
26 . ./defs || exit 1
28 set -e
30 cat >> configure.in << 'END'
31 AM_MAINTAINER_MODE
32 AC_PROG_CC
33 AM_PROG_LEX
34 AC_PROG_YACC
35 AC_OUTPUT
36 END
38 cat > Makefile.am <<'END'
39 YACC = false
40 LEX = false
41 bin_PROGRAMS = zardoz
42 zardoz_SOURCES = zardoz.y joe.l
43 LDADD = @LEXLIB@
44 END
46 # The point of this test is that it is not dependant on a working lex or yacc.
47 cat > joe.c <<EOF
48 int joe (int arg)
50 return arg * 2;
52 EOF
53 cat > zardoz.c <<EOF
54 int joe (int arg);
55 int main (int argc, char **argv)
57 exit (joe (argc));
59 EOF
61 # Ensure a later timestamp for our Lex & Yacc sources.
62 $sleep
63 : > joe.l
64 : > zardoz.y
66 $ACLOCAL
67 $AUTOCONF
68 $AUTOMAKE -a
70 ./configure
71 $MAKE
73 cat >myyacc.sh <<'END'
74 #! /bin/sh
75 echo "$@" >y.tab.c
76 END
77 cat >mylex.sh <<'END'
78 echo "$@" >lex.yy.c
79 END
80 chmod +x myyacc.sh mylex.sh
81 PATH="`pwd`:$PATH"
83 # make maintainer-clean; ./configure; make should always work,
84 # per GNU Standard.
85 $MAKE maintainer-clean
86 ./configure
87 YACC="myyacc.sh" LEX="mylex.sh" \
88 LEX_OUTPUT_ROOT='lex.yy' $MAKE -e zardoz.c joe.c
89 grep zardoz.y zardoz.c
90 grep joe.l joe.c