| #! /bin/sh |
| # Copyright (C) 2002-2018 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 <https://www.gnu.org/licenses/>. |
| |
| # Make sure that derivations work with .lo too. |
| # (related to PR/37) |
| |
| required='cc libtoolize yacc' |
| . test-init.sh |
| |
| plan_ 7 |
| |
| cat >>configure.ac <<EOF |
| AC_PROG_CC |
| AC_PROG_YACC |
| AM_PROG_AR |
| AC_PROG_LIBTOOL |
| AC_OUTPUT |
| EOF |
| |
| cat >Makefile.am << 'END' |
| lib_LTLIBRARIES = libfoo.la |
| libfoo_la_SOURCES = foo.x_ |
| .x_.y: |
| rm -f $@ $@-t |
| ## The leading ':;' works around a bug in bash <= 3.2. |
| :; { echo '/* autogenerated */' \ |
| && echo '%{' \ |
| && echo 'int yylex () {return 0;}' \ |
| && echo 'void yyerror (char *s) {}' \ |
| && echo '%}' \ |
| && echo '%%' \ |
| && echo "foobar : 'f' 'o' 'o' 'b' 'a' 'r' {};" \ |
| && echo '%%' \ |
| ## Account for VPATH issues on weaker make implementations. |
| && cat `test -f '$<' || echo $(srcdir)/`$<; \ |
| } > $@-t |
| mv -f $@-t $@ |
| .PHONY: test |
| test: |
| echo $(libfoo_la_OBJECTS) | grep '^foo\.lo$$' |
| END |
| |
| cat > foo.x_ << 'END' |
| int foo (void) { return yyparse(); } |
| END |
| |
| # We must protect the TAP driver from the output of configure, since |
| # that might output a stray "ok" on a line of its own (due to a |
| # libtool bug on Mac OS X), thus causing a spurious test result to |
| # be seen. See automake bug#11897. |
| run_configure () |
| { |
| st=0; ./configure >output 2>&1 || st=1 |
| sed 's/^/ /' output |
| test $st -eq 0 |
| } |
| |
| command_ok_ "libtoolize" libtoolize --force |
| command_ok_ "aclocal" $ACLOCAL |
| command_ok_ "autoconf" $AUTOCONF |
| command_ok_ "automake" $AUTOMAKE --add-missing |
| command_ok_ "configure" run_configure |
| command_ok_ "make test" $MAKE test |
| |
| directive=''; make_can_chain_suffix_rules || directive=TODO |
| command_ok_ "make all" -D "$directive" -r "suffix rules not chained" \ |
| $MAKE all |
| |
| : |