[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Automake-NG] [PATCH 4/5] [ng] coverage: mixing Fortran and C++
From: |
Stefano Lattarini |
Subject: |
[Automake-NG] [PATCH 4/5] [ng] coverage: mixing Fortran and C++ |
Date: |
Thu, 24 May 2012 09:42:02 +0200 |
* t/cxx-fortran.sh: New, check that Automake can build and link a program
mixing C++ with Fortran 77 (the C++ 'main()' calling a Fortran function,
more precisely).
Signed-off-by: Stefano Lattarini <address@hidden>
---
t/cxx-fortran.sh | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 69 insertions(+)
create mode 100755 t/cxx-fortran.sh
diff --git a/t/cxx-fortran.sh b/t/cxx-fortran.sh
new file mode 100755
index 0000000..b2138db
--- /dev/null
+++ b/t/cxx-fortran.sh
@@ -0,0 +1,69 @@
+#! /bin/sh
+# Copyright (C) 2006-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 <http://www.gnu.org/licenses/>.
+
+# Test mixing Fortran 77 and C++.
+
+# For now, require the GNU compilers, to avoid possible spurious failure.
+required='gfortran g++'
+. ./defs || Exit 1
+
+cat >> configure.ac << 'END'
+AC_PROG_CXX
+AC_PROG_F77
+AC_OUTPUT
+END
+
+cat > Makefile.am << 'END'
+noinst_PROGRAMS = foo
+foo_SOURCES = new.cc old.f
+END
+
+cat > new.cc << 'END'
+#include <iostream>
+using namespace std;
+extern "C" { int cube_ (int *); }
+int main (void)
+{
+ int n = 3;
+ cout << "The Cube of " << n << " is " << cube_ (&n) << endl;
+ return 0;
+}
+END
+
+cat > old.f << 'END'
+ INTEGER FUNCTION CUBE(N)
+C COMPUTES AND RETURN THE CUBE OF THE INTEGER N
+ CUBE=N*N*N
+ RETURN
+ END
+END
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE -a
+# The C++ linker should be preferred.
+grep '\$(FCLINK)' Makefile.in && Exit 1
+grep '.\$(CXXLINK)' Makefile.in
+
+./configure
+$MAKE
+
+if cross_compiling; then :; else
+ ./foo
+ test "$(./foo)" = "The Cube of 3 is 27"
+fi
+
+$MAKE distcheck
--
1.7.9.5
- [Automake-NG] [PATCH 0/5] Small simplification to suffix rules support, and added coverage, Stefano Lattarini, 2012/05/24
- [Automake-NG] [PATCH 1/5] [ng] coverage: custom pre-processes headers in prog_SOURCES, Stefano Lattarini, 2012/05/24
- [Automake-NG] [PATCH 3/5] [ng] coverage: pure languages doesn't bring in C support, Stefano Lattarini, 2012/05/24
- [Automake-NG] [PATCH 4/5] [ng] coverage: mixing Fortran and C++,
Stefano Lattarini <=
- [Automake-NG] [PATCH 2/5] [ng] rule: get rid of $KNOWN_EXTENSIONS_PATTERN, Stefano Lattarini, 2012/05/24
- [Automake-NG] [PATCH 5/5] [ng] rule, lang: get rid of 'suffix_rules_count', simplify logic, Stefano Lattarini, 2012/05/24
- Re: [Automake-NG] [PATCH 0/5] Small simplification to suffix rules support, and added coverage, Akim Demaille, 2012/05/25