From 09a19a1a9cc0f0f65a4463ed3aefcdcf3875002e Mon Sep 17 00:00:00 2001 From: Stefano Lattarini Date: Wed, 23 May 2012 12:06:39 +0200 Subject: [PATCH] [ng] coverage: custom pre-processes headers in prog_SOURCES If we specify "foo.my-h" in a prog_SOURCES variable, and then define a pattern rule to turn a '.my-h' file in a valid '.h' C header file, things should work out smoothly and as expected (as long as we use BUILT_SOURCES properly). * t/suffix-hdr.sh: New test. Signed-off-by: Stefano Lattarini --- t/suffix-hdr.sh | 81 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100755 t/suffix-hdr.sh diff --git a/t/suffix-hdr.sh b/t/suffix-hdr.sh new file mode 100755 index 000000000..178d84d2b --- /dev/null +++ b/t/suffix-hdr.sh @@ -0,0 +1,81 @@ +#! /bin/sh +# Copyright (C) 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 . + +# Use of "custom" headers (with custom suffix) in a _PROGRAMS variable. + +required='cc native' +. ./defs || Exit 1 + +cat >> configure.ac << 'END' +AC_PROG_CC +AC_OUTPUT +END + +cat > Makefile.am << 'END' +noinst_PROGRAMS = zardoz +zardoz_SOURCES = foo.my-c bar.my-h +BUILT_SOURCES = bar.h +%.c: %.my-c + sed 's/INTEGER/int/' $< >$@ +%.h: %.my-h + sed 's/SUBSTITUTE/#define/' $< >$@ +CLEANFILES = foo.c $(BUILT_SOURCES) +END + +cat > foo.my-c << 'END' +#include "bar.h" +INTEGER main (void) +{ + printf ("Hello, %s!\n", PLANET); + return 0; +} +END + +cat > bar.my-h << 'END' +#include +SUBSTITUTE PLANET "Mars" +END + +$ACLOCAL +$AUTOCONF +$AUTOMAKE --add-missing + +./configure --enable-dependency-tracking + +$MAKE +./zardoz +test "$(./zardoz)" = 'Hello, Mars!' + +$sleep +$PERL -npi -e 's/\bMars\b/Jupiter/' bar.my-h + +$MAKE +./zardoz +test "$(./zardoz)" = 'Hello, Jupiter!' + +$MAKE distdir +test -f $distdir/foo.my-c +test -f $distdir/bar.my-h +test ! -f $distdir/foo.c +test ! -f $distdir/bar.h + +$MAKE clean +test ! -f foo.c +test ! -f bar.h + +$MAKE distcheck + +: -- 2.47.2