From c7266e91052c56dac9060bbf03f60ac2aa17fe9a Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Sat, 26 Sep 1998 18:32:31 +0000 Subject: [PATCH] Test suite updates for the @SHELL@ change: * exsource.test: Set SHELL on `make' command line. * ansi.test: Set SHELL on `make' command line. * texinfo.test: Set SHELL on `make' command line. * insh2.test: Set SHELL on `make' command line. * empty.test: Rewrite @SHELL@ to /bin/sh. --- ChangeLog | 31 +++++++++++++++++++++++++++++++ automake.in | 51 ++++++++++++++++++++++++++++++++++++--------------- compile.am | 6 ++++++ header-vars.am | 2 +- lib/am/compile.am | 6 ++++++ lib/am/header-vars.am | 2 +- tests/ChangeLog | 9 +++++++++ tests/ansi.test | 2 +- tests/empty.test | 3 ++- tests/exsource.test | 2 +- tests/insh2.test | 2 +- tests/texinfo.test | 2 +- 12 files changed, 96 insertions(+), 22 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1796bd8..822a4b9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,34 @@ +Mon Jul 6 14:52:49 1998 Ian Lance Taylor + + * compile.am (mostlyclean-compile): If OBJEXT, remove *.$(OBJEXT) + along with *.o. + +Thu May 28 18:49:47 1998 Ian Lance Taylor + + * automake.in (seen_objext): New variable. + (get_object_extension): If seen_objext, use .$(OBJEXT) rather than + .o. When including compile.am, keep or discard OBJEXT lines + according to whether seen_objext is set. If seen_objext, add .obj + to @suffixes. If seen_objext, use .$(OBJEXT) rather than .o when + building ansi2knr. + (handle_yacc_lex_cxx): If seen_objext, add a rule to create .obj + files. If seen_objext, use .$(OBJEXT) rather than .o when + building ansi2knr. + (scan_one_configure_file): Check for .obj as well as .o in + LIBOBJS. Set seen_exeext if we see AC_EXEEXT. Look for + AC_OBJEXT, and if found set seen_objext and set OBJEXT in + configure_vars. + (check_cygnus): Change error message to permit AC_EXEEXT. + * compile.am: Add OBJEXT lines for .c.obj compilation. + * Makefile.in: Rebuild. + * m4/Makefile.in: Rebuild. + * tests/Makefile.in: Rebuild. + +Mon Sep 11 16:07:55 1997 Chris Provenzano + + * header-vars.am: SHELL=@SHELL@ + Ran aclocal, autoconf, and automake. + Sat Sep 26 16:31:29 1998 Tom Tromey * ltlib.am: Use $(INSTALL) and not $(INSTALL_DATA). diff --git a/automake.in b/automake.in index 7cb9c8b..f65a4aa 100755 --- a/automake.in +++ b/automake.in @@ -202,9 +202,12 @@ $package_version_line = 0; # TRUE if we've seen AM_PATH_LISPDIR. $seen_lispdir = 0; -# TRUE if we've seen AM_EXEEXT. +# TRUE if we've seen AM_EXEEXT or AC_EXEEXT. $seen_exeext = 0; +# TRUE if we've seen AC_OBJEXT. +$seen_objext = 0; + # Hash table of discovered configure substitutions. Keys are names, # values are meaningless. %configure_vars = (); @@ -721,6 +724,7 @@ sub get_object_extension # Maybe require libtool library object files. local ($extension) = '.o'; + $extension = '.$(OBJEXT)' if $seen_objext; $extension = '.lo' if ($out =~ /\.la$/); if (! $included_generic_compile) @@ -741,10 +745,12 @@ sub get_object_extension $xform = 's/\@CONFIG_INCLUDE_SPEC\@/' . $xform . '/go;'; $output_vars .= &file_contents_with_transform ($xform, 'comp-vars'); - $output_rules .= - &file_contents_with_transform - ($use_dependencies ? 's/^NOTDEPEND.*$//;' : 's/^NOTDEPEND//;', - 'compile'); + + $xform = (($use_dependencies + ? 's/^NOTDEPEND.*$//;' + : 's/^NOTDEPEND//;') + . ($seen_objext ? 's/^OBJEXT//;' : 's/^OBJEXT.*$//;')); + $output_rules .= &file_contents_with_transform ($xform, 'compile'); &push_phony_cleaners ('compile'); @@ -761,6 +767,7 @@ sub get_object_extension } push (@suffixes, '.c', '.o', '.S', '.s'); + push (@suffixes, '.obj') if $seen_objext; push (@clean, 'compile'); $included_generic_compile = 1; @@ -811,12 +818,15 @@ sub get_object_extension # Generate rules to build ansi2knr. If it is in some # other directory, then generate dependencies but have the # rule just run elsewhere. + $objext = $seen_objext ? ".$(OBJEXT)" : ".o"; $output_rules .= ($options{'ansi2knr'} . ': ' - . $options{'ansi2knr'} . ".o\n"); + . $options{'ansi2knr'} . $objext . "\n"); if ($options{'ansi2knr'} eq 'ansi2knr') { - $output_rules .= ("\t\$(LINK) ansi2knr.o \$(LIBS)\n" - . "ansi2knr.o: \$(CONFIG_HEADER)\n\n"); + $output_rules .= ("\t\$(LINK) ansi2knr" . $objext + . " \$(LIBS)\n" + . "ansi2knr" . $objext + . ": \$(CONFIG_HEADER)\n\n"); } else { @@ -824,10 +834,10 @@ sub get_object_extension . " && \$(MAKE) \$(AM_MAKEFLAGS) " . "ansi2knr\n\n"); # This is required for non-GNU makes. - $output_rules .= ($options{'ansi2knr'} . ".o:\n"); + $output_rules .= ($options{'ansi2knr'} . $objext . ":\n"); $output_rules .= ("\tcd " . &dirname ($options{'ansi2knr'}) - . " && \$(MAKE) \$(AM_MAKEFLAGS) " - . "ansi2knr.o\n\n"); + . " && \$(MAKE) \$(AM_MAKEFLAGS)" + . " ansi2knr" . $objext . "\n\n"); } # Make sure ansi2knr can be found: if no path specified, @@ -991,6 +1001,10 @@ sub handle_yacc_lex_cxx { $output_rules .= ("$ext.o:\n" . "\t\$(CXXCOMPILE) -c \$<\n"); + # FIXME: Using cygpath should be somehow conditional. + $output_rules .= ("$ext.obj:\n" + . "\t\$(CXXCOMPILE) -c `cygpath -w \$<`\n") + if ($seen_objext); $output_rules .= ("$ext.lo:\n" . "\t\$(LTCXXCOMPILE) -c \$<\n") if ($seen_libtool); @@ -1037,7 +1051,8 @@ sub handle_yacc_lex_cxx . '; else echo ' . $base . '.c; fi` ' . "| sed 's/^# \\([0-9]\\)/#line \\1/' " . '| $(ANSI2KNR) > ' . $base . "_.c\n"); - push (@objects, $base . '_.o'); + push (@objects, $base . '_' + . ($seen_objext ? '.$(OBJEXT)' : '.o')); push (@objects, $base . '_.lo') if $seen_libtool; } @@ -4116,7 +4131,7 @@ sub scan_one_configure_file { foreach $libobj_iter (split (' ', $1)) { - if ($libobj_iter =~ /^(.*)\.o$/) + if ($libobj_iter =~ /^(.*)\.o(bj)?$/) { $libsources{$1 . '.c'} = 1; } @@ -4216,12 +4231,18 @@ sub scan_one_configure_file $am_c_prototypes = 1 if /AM_C_PROTOTYPES/; # Check for exe extension stuff. - if (/AM_EXEEXT/) + if (/AM_EXEEXT/ || /AC_EXEEXT/) { $seen_exeext = 1; $configure_vars{'EXEEXT'} = 1; } + if (/AC_OBJEXT/) + { + $seen_objext = 1; + $configure_vars{'OBJEXT'} = 1; + } + # Check for NLS support. if (/AM_GNU_GETTEXT/) { @@ -4455,7 +4476,7 @@ sub check_cygnus if (! $seen_exeext) { - &am_conf_error ("\`AM_EXEEXT' required when --cygnus specified"); + &am_conf_error ("\`AM_EXEEXT' or \`AC_EXEEXT' required when --cygnus specified"); } } diff --git a/compile.am b/compile.am index ece6559..6e9f92a 100644 --- a/compile.am +++ b/compile.am @@ -18,6 +18,11 @@ NOTDEPEND.c.o: NOTDEPEND $(COMPILE) -c $< +OBJEXT# FIXME: We should only use cygpath when building on Windows, +OBJEXT# and only if it is available. +OBJEXT.c.obj: +OBJEXT $(COMPILE) -c `cygpath -w $<` + .s.o: $(COMPILE) -c $< @@ -28,6 +33,7 @@ mostlyclean-compile: ## Don't remove 'core.*' because some distributions have eg "core.c". ## 4.4BSD systems use `PROG.core'. -rm -f *.o core *.core +OBJEXT -rm -f *.$(OBJEXT) clean-compile: diff --git a/header-vars.am b/header-vars.am index 8fb65e8..3c0fd8e 100644 --- a/header-vars.am +++ b/header-vars.am @@ -15,7 +15,7 @@ ## along with this program; if not, write to the Free Software ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA ## 02111-1307, USA. -SHELL = /bin/sh +SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ diff --git a/lib/am/compile.am b/lib/am/compile.am index ece6559..6e9f92a 100644 --- a/lib/am/compile.am +++ b/lib/am/compile.am @@ -18,6 +18,11 @@ NOTDEPEND.c.o: NOTDEPEND $(COMPILE) -c $< +OBJEXT# FIXME: We should only use cygpath when building on Windows, +OBJEXT# and only if it is available. +OBJEXT.c.obj: +OBJEXT $(COMPILE) -c `cygpath -w $<` + .s.o: $(COMPILE) -c $< @@ -28,6 +33,7 @@ mostlyclean-compile: ## Don't remove 'core.*' because some distributions have eg "core.c". ## 4.4BSD systems use `PROG.core'. -rm -f *.o core *.core +OBJEXT -rm -f *.$(OBJEXT) clean-compile: diff --git a/lib/am/header-vars.am b/lib/am/header-vars.am index 8fb65e8..3c0fd8e 100644 --- a/lib/am/header-vars.am +++ b/lib/am/header-vars.am @@ -15,7 +15,7 @@ ## along with this program; if not, write to the Free Software ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA ## 02111-1307, USA. -SHELL = /bin/sh +SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ diff --git a/tests/ChangeLog b/tests/ChangeLog index 14221d4..6031cd5 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,12 @@ +Sat Sep 26 19:17:43 1998 Tom Tromey + + Test suite updates for the @SHELL@ change: + * exsource.test: Set SHELL on `make' command line. + * ansi.test: Set SHELL on `make' command line. + * texinfo.test: Set SHELL on `make' command line. + * insh2.test: Set SHELL on `make' command line. + * empty.test: Rewrite @SHELL@ to /bin/sh. + Tue Sep 22 01:20:00 1998 Tom Tromey * ansi3.test: Use gcc and not gcc -traditional. diff --git a/tests/ansi.test b/tests/ansi.test index 45c1930..1140cad 100755 --- a/tests/ansi.test +++ b/tests/ansi.test @@ -20,4 +20,4 @@ END $AUTOMAKE || exit 1 -$MAKE -s -f Makefile.in magic | grep 'ansi2knr\.c' +$MAKE -s -f Makefile.in SHELL=/bin/sh magic | grep 'ansi2knr\.c' diff --git a/tests/empty.test b/tests/empty.test index 09ffeb7..14a7124 100755 --- a/tests/empty.test +++ b/tests/empty.test @@ -24,7 +24,8 @@ END chmod +x mkinstalldirs # Substitute variables we need. -sed -e 's/@srcdir@/./g' -e 's/@top_srcdir@/./g' -e 's/@datadir@/./g' \ +sed -e 's,@SHELL@,/bin/sh,g' -e 's/@srcdir@/./g' \ + -e 's/@top_srcdir@/./g' -e 's/@datadir@/./g' \ < Makefile.in > Makefile $MAKE install diff --git a/tests/exsource.test b/tests/exsource.test index b4ac665..1ebfaef 100755 --- a/tests/exsource.test +++ b/tests/exsource.test @@ -34,4 +34,4 @@ echo > .deps/.P echo > .deps/xtra.P echo > .deps/www.P -$MAKE -s -f Makefile.in srcdir=`pwd` magic | grep xtra +$MAKE -s -f Makefile.in SHELL=/bin/sh srcdir=`pwd` magic | grep xtra diff --git a/tests/insh2.test b/tests/insh2.test index b5018da..ae4ea2c 100755 --- a/tests/insh2.test +++ b/tests/insh2.test @@ -12,4 +12,4 @@ END $AUTOMAKE || exit 1 -$MAKE -s -f Makefile.in magic | grep install-sh +$MAKE -s -f Makefile.in SHELL=/bin/sh magic | grep install-sh diff --git a/tests/texinfo.test b/tests/texinfo.test index 96022ff..1421867 100755 --- a/tests/texinfo.test +++ b/tests/texinfo.test @@ -16,4 +16,4 @@ echo '@setfilename textutils.info' > textutils.texi $AUTOMAKE || exit 1 -$MAKE -s -f Makefile.in magic | grep 'texinfo\.tex' +$MAKE -s -f Makefile.in SHELL=/bin/sh magic | grep 'texinfo\.tex' -- 2.7.4