diff options
Diffstat (limited to 't/specflg-dummy.sh')
-rwxr-xr-x | t/specflg-dummy.sh | 247 |
1 files changed, 247 insertions, 0 deletions
diff --git a/t/specflg-dummy.sh b/t/specflg-dummy.sh new file mode 100755 index 000000000..1486f4c9c --- /dev/null +++ b/t/specflg-dummy.sh @@ -0,0 +1,247 @@ +#! /bin/sh +# Copyright (C) 2011-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 <http://www.gnu.org/licenses/>. + +# Check that even "dummy" per-target flags triggers the use of renamed +# objects. I.e., a definition like 'foo_CFLAGS = $(AM_CFLAGS)' should +# always cause Automake to trigger the semantics for per-target CFLAGS, +# even if AM_CFLAGS is undefined. Similarly for other *FLAGS variables +# (CXXFLAGS, YFLAGS, LDFLAGS, ...) + +. ./defs || Exit 1 + +# Disable shell globbing if possible. +(set +f) >/dev/null 2>&1 && set +f + +oIFS=$IFS +nl=' +' + +matches= +add_match () +{ + matches="$matches$nl$1" +} + +do_check () +{ + IFS=$nl + for string in $matches; do + IFS=$oIFS + $FGREP "$string" Makefile.in + done + IFS=$oIFS +} + +# Fake libtool presence, so that we won't have to require it. +cat > acinclude.m4 <<END +AC_DEFUN([AC_PROG_LIBTOOL], [AC_SUBST([LIBTOOL], [dummy])]) +END +: > ltmain.sh + +cat >> configure.ac << 'END' +AC_PROG_CC +AC_PROG_CXX +AC_PROG_YACC +AC_PROG_LEX +AC_PROG_F77 +AC_PROG_FC +AM_PROG_GCJ +AM_PROG_AR +AC_PROG_RANLIB +AC_PROG_LIBTOOL +AM_PROG_UPC +AC_PROG_OBJC +AM_PROG_CC_C_O +END + +cat > Makefile.am <<'END' +bin_PROGRAMS = +lib_LIBRARIES = +lib_LTLIBRARIES = +END + +$ACLOCAL + +cat >> Makefile.am <<'END' +bin_PROGRAMS += prog1 +prog1_SOURCES = source1.c +prog1_CFLAGS = $(AM_CFLAGS) +END + +add_match 'prog1-source1.$(OBJEXT)' + +cat >> Makefile.am <<'END' +bin_PROGRAMS += prog2 +prog2_SOURCES = source2.c +prog2_CPPFLAGS = $(AM_CPPFLAGS) +END + +add_match 'prog2-source2.$(OBJEXT)' + +cat >> Makefile.am <<'END' +bin_PROGRAMS += prog3 +prog3_SOURCES = source3.cxx +prog3_CXXFLAGS = $(AM_CXXFLAGS) +END + +add_match 'prog3-source3.$(OBJEXT)' + +cat >> Makefile.am <<'END' +bin_PROGRAMS += prog4 +prog4_SOURCES = source4.c++ +prog4_CPPFLAGS = $(AM_CPPFLAGS) +END + +add_match 'prog4-source4.$(OBJEXT)' + +cat >> Makefile.am <<'END' +bin_PROGRAMS += prog5 +prog5_SOURCES = source5.f +prog5_FFLAGS = $(AM_FFLAGS) +END + +add_match 'prog5-source5.$(OBJEXT)' + +cat >> Makefile.am <<'END' +bin_PROGRAMS += prog6 +prog6_SOURCES = source6.f90 +prog6_FCFLAGS = $(AM_FCFLAGS) +END + +add_match 'prog6-source6.$(OBJEXT)' + +cat >> Makefile.am <<'END' +bin_PROGRAMS += prog7 +prog7_SOURCES = source7.r +prog7_RFLAGS = $(AM_RFLAGS) +END + +add_match 'prog7-source7.$(OBJEXT)' + +cat >> Makefile.am <<'END' +bin_PROGRAMS += prog8 +prog8_SOURCES = source8.java +prog8_GCJFLAGS = $(AM_GCJFLAGS) +END + +add_match 'prog8-source8.$(OBJEXT)' + +cat >> Makefile.am <<'END' +bin_PROGRAMS += prog9 +prog9_SOURCES = source9.upc +prog9_UPCFLAGS = $(AM_UPCFLAGS) +END + +add_match 'prog9-source9.$(OBJEXT)' + +cat >> Makefile.am <<'END' +bin_PROGRAMS += prog10 +prog10_SOURCES = source10.m +prog10_OBJCFLAGS = $(AM_OBJCFLAGS) +END + +add_match 'prog10-source10.$(OBJEXT)' + +cat >> Makefile.am <<'END' +bin_PROGRAMS += linkprog +linkprog_SOURCES = linkprog.c +linkprog_LDFLAGS = $(AM_LDFLAGS) +END + +add_match 'linkprog_LINK =' + +cat >> Makefile.am <<'END' +lib_LIBRARIES += libstatic.a +libstatic_a_SOURCES = static123.c +libstatic_a_CFLAGS = $(AM_CFLAGS) +END + +add_match 'libstatic_a-static123.$(OBJEXT)' + +cat >> Makefile.am <<'END' +lib_LTLIBRARIES += libshared1.la +libshared1_la_SOURCES = shared1.c +libshared1_la_LIBTOOLFLAGS = $(AM_LIBTOOLFLAGS) +END + +add_match 'libshared1_la-shared1.lo' + +cat >> Makefile.am <<'END' +lib_LTLIBRARIES += libshared2.la +libshared2_la_SOURCES = shared2.cc +libshared2_la_CXXFLAGS = $(AM_CXXFLAGS) +END + +add_match 'libshared2_la-shared2.lo' + +cat >> Makefile.am <<'END' +bin_PROGRAMS += parse1 +parse1_SOURCES = parse.y +parse1_YFLAGS = $(AM_YFLAGS) +END + +add_match 'parse1-parse.c' + +cat >> Makefile.am <<'END' +bin_PROGRAMS += parse2 +parse2_SOURCES = parse.ypp +parse2_YFLAGS = $(AM_YFLAGS) +END + +add_match 'parse2-parse.cpp' + +cat >> Makefile.am <<'END' +bin_PROGRAMS += lexer1 +lexer1_SOURCES = lex.l +lexer1_LFLAGS = $(AM_YFLAGS) +END + +add_match 'lexer1-lex.c' + +cat >> Makefile.am <<'END' +bin_PROGRAMS += lexer2 +lexer2_SOURCES = lexer.ll +lexer2_LFLAGS = $(AM_YFLAGS) +END + +add_match 'lexer2-lexer.cc' + +# For debugging. +cat Makefile.am + +$AUTOMAKE -a +do_check + +sed ' + s|^\(.*\)_SOURCES *= *|sub_\1_SOURCES = srcsub/| + s|^\(.*\)PROGRAMS *+= *|\1PROGRAMS += sub/| + s|^\(.*\)LIBRARIES *+= *|\1LIBRARIES += sub/| + s|^\(.*\)FLAGS *=|sub_\1FLAGS =| +' Makefile.am > t + +cat - t > Makefile.am <<'END' +AUTOMAKE_OPTIONS = subdir-objects +END + +rm -f t + +# For debugging. +cat Makefile.am + +$AUTOMAKE +do_check + +: |