From: Tom Tromey Date: Wed, 9 May 2001 00:03:32 +0000 (+0000) Subject: Fix for PR automake/36: X-Git-Tag: Release-1-4f~57 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b871815da6f4c08d5e98145a3d87a49b7d8cc0e6;p=thirdparty%2Fautomake.git Fix for PR automake/36: * tests/Makefile.am (TESTS): Added asm.test. * tests/asm.test: New file. * automake.in (asm): Use ASFLAGS and AS. (lang_asm_finish): New sub. --- diff --git a/ChangeLog b/ChangeLog index d6eb22dea..ab6886c29 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2001-05-08 Tom Tromey + Fix for PR automake/36: + * tests/Makefile.am (TESTS): Added asm.test. + * tests/asm.test: New file. + * automake.in (asm): Use ASFLAGS and AS. + (lang_asm_finish): New sub. + * automake.in (read_am_file): Removed debugging code. For PR automake/149: diff --git a/automake.in b/automake.in index d8aa76c18..91b121556 100755 --- a/automake.in +++ b/automake.in @@ -888,15 +888,14 @@ register_language ('name' => 'lexxx', # Assembler. register_language ('name' => 'asm', 'Name' => 'Assembler', - 'flags' => 'CFLAGS', - # FIXME: asmflags? - 'compile' => '$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)', - # FIXME: a different compiler? - 'compiler' => 'COMPILE', + 'flags' => 'ASFLAGS', + # Users can set AM_ASFLAGS to includes DEFS, INCLUDES, + # or anything else required. They can also set AS. + 'compile' => '$(AS) $(AM_ASFLAGS) $(ASFLAGS)', + 'compiler' => 'ASCOMPILE', 'compile_flag' => '-c', 'extensions' => ['s', 'S'], - # We need the C code for assembly. - '_finish' => \&lang_c_finish); + '_finish' => \&lang_asm_finish); # Fortran 77 register_language ('name' => 'f77', @@ -5213,6 +5212,22 @@ sub lang_c_finish } } +sub lang_asm_finish +{ + if (! defined $configure_vars{'AS'}) + { + &am_error ("assembly source seen but `AS' not defined"); + } + + if (! defined $configure_vars{'ASFLAGS'}) + { + &am_error ("assembly source seen but `ASFLAGS' not defined in `$configure_ac'"); + } + + # Also use the C code, since with assembly we still use the C linker. + &lang_c_finish; +} + # This is a helper for both lex and yacc. sub yacc_lex_finish_helper { diff --git a/tests/Makefile.am b/tests/Makefile.am index cc0fa2ea2..881d77bca 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -24,6 +24,7 @@ ansi.test \ ansi2.test \ ansi3.test \ ansi4.test \ +asm.test \ auxdir.test \ backsl.test \ backsl2.test \ diff --git a/tests/Makefile.in b/tests/Makefile.in index 50f3d11c0..dc5e675b1 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -97,6 +97,7 @@ ansi.test \ ansi2.test \ ansi3.test \ ansi4.test \ +asm.test \ auxdir.test \ backsl.test \ backsl2.test \ diff --git a/tests/asm.test b/tests/asm.test new file mode 100755 index 000000000..3d8168955 --- /dev/null +++ b/tests/asm.test @@ -0,0 +1,73 @@ +#! /bin/sh + +# Test of basic assembly functionality + +. $srcdir/defs || exit 1 + +cat > configure.in << 'END' +AC_INIT +AM_INIT_AUTOMAKE(nonesuch, nonesuch) +AC_ARG_PROGRAM +AC_PROG_INSTALL +AC_PROG_MAKE_SET +AC_SUBST(ASFLAGS) +AC_OUTPUT(Makefile) +END + +cat > Makefile.am << 'END' +noinst_PROGRAMS = maude +maude_SOURCES = maude.s +END + +: > maude.s + +# Should fail because we need cc and as. +echo 1 +$AUTOMAKE && exit 1 + +cat > configure.in << 'END' +AC_INIT +AM_INIT_AUTOMAKE(nonesuch, nonesuch) +AC_ARG_PROGRAM +AC_PROG_INSTALL +AC_PROG_MAKE_SET +AC_PROG_CC +AC_SUBST(ASFLAGS) +AC_OUTPUT(Makefile) +END + +# We still need as. +echo 2 +$AUTOMAKE && exit 1 + +cat > configure.in << 'END' +AC_INIT +AM_INIT_AUTOMAKE(nonesuch, nonesuch) +AC_ARG_PROGRAM +AC_PROG_INSTALL +AC_PROG_MAKE_SET +AS='$(CC)' +AC_SUBST(AS) +AC_PROG_CC +AC_OUTPUT(Makefile) +END + +# We need ASFLAGS. +echo 3 +$AUTOMAKE && exit 1 + +cat > configure.in << 'END' +AC_INIT +AM_INIT_AUTOMAKE(nonesuch, nonesuch) +AC_ARG_PROGRAM +AC_PROG_INSTALL +AC_PROG_MAKE_SET +AS='$(CC)' +AC_SUBST(AS) +AC_PROG_CC +AC_SUBST(ASFLAGS) +AC_OUTPUT(Makefile) +END + +echo 4 +$AUTOMAKE