From 18711253df1dbc1f3bc74cd5f312abc194fd9af6 Mon Sep 17 00:00:00 2001 From: Ralf Wildenhues Date: Tue, 9 Oct 2007 20:02:57 +0000 Subject: [PATCH] * automake.in: Treat extension .sx also like preprocessed assembler (.S), following GCC. * NEWS: Update. * doc/automake.texi (Assembly Support) (Unified Parallel C Support): Adjust. * tests/asm3.test: New test. * tests/Makefile.am: Update. --- ChangeLog | 10 ++++ NEWS | 2 + automake.in | 2 +- doc/automake.texi | 4 +- tests/Makefile.am | 1 + tests/Makefile.in | 1 + tests/asm3.test | 139 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 156 insertions(+), 3 deletions(-) create mode 100755 tests/asm3.test diff --git a/ChangeLog b/ChangeLog index 8b30515..3f117fd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2007-10-09 Ralf Wildenhues + + * automake.in: Treat extension .sx also like preprocessed + assembler (.S), following GCC. + * NEWS: Update. + * doc/automake.texi (Assembly Support) + (Unified Parallel C Support): Adjust. + * tests/asm3.test: New test. + * tests/Makefile.am: Update. + 2007-10-09 Jim Meyering Add lzma compression support. diff --git a/NEWS b/NEWS index 2e08a8f..1c3b789 100644 --- a/NEWS +++ b/NEWS @@ -19,6 +19,8 @@ New in 1.10a: - For files with extension .f90 or .f95, the flag $(FCFLAGS_f9x) computed by AC_FC_SRCEXT is now honored in compile rules. + - Files with extension .sx are also treated as preprocessed assembler. + * Miscellaneous changes: - "make dist" can now create lzma-compressed tarballs. diff --git a/automake.in b/automake.in index 234947b..3c47cc1 100755 --- a/automake.in +++ b/automake.in @@ -861,7 +861,7 @@ register_language ('name' => 'cppasm', 'compiler' => 'CPPASCOMPILE', 'compile_flag' => '-c', 'output_flag' => '-o', - 'extensions' => ['.S'], + 'extensions' => ['.S', '.sx'], # With assembly we still use the C linker. '_finish' => \&lang_c_finish); diff --git a/doc/automake.texi b/doc/automake.texi index 805a2b8..3b5dc2d 100644 --- a/doc/automake.texi +++ b/doc/automake.texi @@ -6035,7 +6035,7 @@ The command used to actually link a Unified Parallel C program. Automake includes some support for assembly code. There are two forms of assembler files: normal (@file{*.s}) and preprocessed by @code{CPP} -(@file{*.S}). +(@file{*.S} or @file{*.sx}). @vindex CCAS @vindex CCASFLAGS @@ -6055,7 +6055,7 @@ The autoconf macro @code{AM_PROG_AS} will define @code{CCAS} and @code{CCAS} to the C compiler and @code{CCASFLAGS} to the C compiler flags), but you are free to define these variables by other means. -Only the suffixes @file{.s} and @file{.S} are recognized by +Only the suffixes @file{.s}, @file{.S}, and @file{.sx} are recognized by @command{automake} as being files containing assembly code. diff --git a/tests/Makefile.am b/tests/Makefile.am index 436de63..5d61ae7 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -57,6 +57,7 @@ ar.test \ ar2.test \ asm.test \ asm2.test \ +asm3.test \ autohdr.test \ autohdr2.test \ autohdr3.test \ diff --git a/tests/Makefile.in b/tests/Makefile.in index 6654ca9..b9367bf 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -190,6 +190,7 @@ ar.test \ ar2.test \ asm.test \ asm2.test \ +asm3.test \ autohdr.test \ autohdr2.test \ autohdr3.test \ diff --git a/tests/asm3.test b/tests/asm3.test new file mode 100755 index 0000000..6463f00 --- /dev/null +++ b/tests/asm3.test @@ -0,0 +1,139 @@ +#! /bin/sh +# Copyright (C) 2001, 2002, 2003, 2006, 2007 Free Software Foundation, +# Inc. +# +# This file is part of GNU Automake. +# +# GNU Automake 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 3, or (at your option) +# any later version. +# +# GNU Automake 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 Automake; see the file COPYING. If not, write to +# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +# Boston, MA 02110-1301, USA. + +# Test of basic preprocessed assembly functionality with extension .sx. + +. ./defs || exit 1 + +set -e + +cat > Makefile.am << 'END' +noinst_PROGRAMS = maude +maude_SOURCES = maude.sx +END + +: > maude.sx + +# Should fail because we need CC and CCAS. +echo 1 +cat > configure.in << 'END' +AC_INIT +AM_INIT_AUTOMAKE(nonesuch, nonesuch) +AC_SUBST(CCASFLAGS) +AC_OUTPUT(Makefile) +END + +$ACLOCAL +AUTOMAKE_fails +grep AM_PROG_AS stderr + +# On fast machines the autom4te.cache created during the above run of +# $AUTOMAKE is likely to have the same time stamp as the configure.in +# created below; thus causing traces for the old configure.in to be +# used. We could do `$sleep', but it's faster to erase the +# directory. (Erase autom4te*.cache, not autom4te.cache, because some +# bogus installations of Autoconf use a versioned cache.) +rm -rf autom4te*.cache + +# We still need CCAS. +echo 2 +cat > configure.in << 'END' +AC_INIT +AM_INIT_AUTOMAKE(nonesuch, nonesuch) +AC_PROG_CC +AC_SUBST(CCASFLAGS) +AC_OUTPUT(Makefile) +END + +$ACLOCAL +AUTOMAKE_fails +grep CCAS stderr +grep AM_PROG_AS stderr + +rm -rf autom4te*.cache + +# We need CCASFLAGS. +echo 3 +cat > configure.in << 'END' +AC_INIT +AM_INIT_AUTOMAKE(nonesuch, nonesuch) +CCAS='$(CC)' +AC_SUBST(CCAS) +AC_PROG_CC +AC_OUTPUT(Makefile) +END + +$ACLOCAL +AUTOMAKE_fails +grep CCASFLAGS stderr +grep AM_PROG_AS stderr + +rm -rf autom4te*.cache + +# We need dependency tracking. +echo 4 +cat > configure.in << 'END' +AC_INIT +AM_INIT_AUTOMAKE(nonesuch, nonesuch) +CCAS='$(CC)' +AC_SUBST(CCAS) +AC_PROG_CC +AC_SUBST(CCASFLAGS) +AC_OUTPUT(Makefile) +END + +$ACLOCAL +AUTOMAKE_fails +grep AM_PROG_AS stderr + +rm -rf autom4te*.cache + +# We have every needed, expect a success. +echo 5 +cat > configure.in << 'END' +AC_INIT +AM_INIT_AUTOMAKE(nonesuch, nonesuch) +CCAS='$(CC)' +AC_SUBST(CCAS) +AC_PROG_CC +_AM_DEPENDENCIES(CCAS) +AC_SUBST(CCASFLAGS) +AC_OUTPUT(Makefile) +END + +$ACLOCAL +$AUTOMAKE + +rm -rf autom4te*.cache + +# We have every needed, expect a success. +echo 6 +cat > configure.in << 'END' +AC_INIT +AM_INIT_AUTOMAKE(nonesuch, nonesuch) +AM_PROG_AS +AC_OUTPUT(Makefile) +END + +$ACLOCAL +$AUTOMAKE + +exit 0 -- 2.7.4