source: trunk/essentials/sys-devel/automake-1.10/tests/mmodely.test

Last change on this file was 3147, checked in by bird, 18 years ago

automake 1.10

File size: 1.9 KB
Line 
1#! /bin/sh
2# Copyright (C) 2004, 2006 Free Software Foundation, Inc.
3#
4# This file is part of GNU Automake.
5#
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 2, or (at your option)
9# any later version.
10#
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.
15#
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.
20
21# Verify that intermediate files are only built from Yacc and Lex
22# sources in maintainer mode.
23# From Derek R. Price.
24
25required=gcc
26. ./defs || exit 1
27
28set -e
29
30cat >> configure.in << 'END'
31AM_MAINTAINER_MODE
32AC_PROG_CC
33AM_PROG_LEX
34AC_PROG_YACC
35AC_OUTPUT
36END
37
38cat > Makefile.am <<'END'
39YACC = false
40LEX = false
41bin_PROGRAMS = zardoz
42zardoz_SOURCES = zardoz.y joe.l
43LDADD = @LEXLIB@
44END
45
46# The point of this test is that it is not dependant on a working lex or yacc.
47cat > joe.c <<EOF
48int joe (int arg)
49{
50 return arg * 2;
51}
52EOF
53cat > zardoz.c <<EOF
54int joe (int arg);
55int main (int argc, char **argv)
56{
57 exit (joe (argc));
58}
59EOF
60
61# Ensure a later timestamp for our Lex & Yacc sources.
62$sleep
63: > joe.l
64: > zardoz.y
65
66$ACLOCAL
67$AUTOCONF
68$AUTOMAKE -a
69
70./configure
71$MAKE
72
73echo 'echo "$@" >y.tab.c' > myyacc.sh
74echo 'echo "$@" >lex.yy.c' > mylex.sh
75
76# make maintainer-clean; ./configure; make should always work,
77# per GNU Standard.
78$MAKE maintainer-clean
79./configure
80YACC="$SHELL `pwd`/myyacc.sh" LEX="$SHELL `pwd`/mylex.sh" \
81 LEX_OUTPUT_ROOT='lex.yy' $MAKE -e zardoz.c joe.c
82grep zardoz.y zardoz.c
83grep joe.l joe.c
Note: See TracBrowser for help on using the repository browser.