+2004-09-12 Peter O'Gorman <peter@pogma.com>
+
+ Our fortran tests were not very good. All the libraries created
+ were convenience libs, so we did not test the creation of shared
+ libraries on any platform. Also none of the libs used any actual
+ fortran library calls, adding a call to write(*,*) in each lib
+ causes the tests to fail on darwin (and presumably other platforms).
+ These new tests would likely cause many more fortran test failures,
+ so if there is an error during make it is reported as SKIP.
+
+ * tests/f77demo-make.test: Don't fail hard, skip on failure.
+ * tests/f77demo/foof2.f: New file.
+ * tests/f77demo/foof3.f: New file.
+ * tests/f77demo/fprogram.f: Call routine in new lib.
+ * tests/f77demo/foof.f: Call routine in another new lib.
+ * tests/f77demo/Makefile.am: Make a couple of new libraries, add
+ $(FLIBS) to cprogram LDADD.
+
2004-09-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): The linker distinguishes
func_rmprefixdir
func_cd "f77demo"
-func_make
+# May fail make on some platforms, simply "skip" in that case
+#func_make
+eval $MAKE || func_skip "The improved fortran tests catch a known failure mode"
exit 0
ACLOCAL_AMFLAGS = -I ../../m4
AM_CPPFLAGS = -I$(top_srcdir)/../..
-noinst_LTLIBRARIES = libfoo.la libmix.la
+lib_LTLIBRARIES = libfoo.la libmix.la libfoo2.la libfoo3.la
libfoo_la_SOURCES = foof.f
libfoo_la_LDFLAGS = -no-undefined
+libfoo_la_LIBADD = libfoo2.la
-libmix_la_SOURCES = foof.f fooc.c
+libfoo2_la_SOURCES = foof2.f
+libfoo2_la_LDFLAGS = -no-undefined
+
+libfoo3_la_SOURCES = foof3.f
+libfoo3_la_LDFLAGS = -no-undefined
+
+libmix_la_SOURCES = foof.f foof2.f fooc.c
libmix_la_LDFLAGS = -no-undefined
noinst_HEADERS = foo.h
bin_PROGRAMS = fprogram cprogram
fprogram_SOURCES = fprogram.f
-fprogram_LDADD = libfoo.la
+fprogram_LDADD = libfoo.la libfoo3.la
cprogram_SOURCES = cprogram.c
-cprogram_LDADD = libmix.la
+cprogram_LDADD = libmix.la $(FLIBS)
$(OBJECTS): libtool
libtool: $(LIBTOOL_DEPS)
C
subroutine fsub(arg,res)
- implicit none
- integer*4 arg,res
- res=arg*2
+ write(*,*) 'fsub called'
+ call fsubf(arg,res)
return
end
--- /dev/null
+C
+C This program is free software; you can redistribute it and/or
+C modify it under the terms of the GNU General Public License
+C as published by the Free Software Foundation; either version 2
+C of the License, or (at your option) any later version.
+C
+
+ subroutine fsubf(arg,res)
+ implicit none
+ integer*4 arg,res
+ write(*,*) 'fsubf called'
+ res=arg*2
+ return
+ end
--- /dev/null
+C
+C This program is free software; you can redistribute it and/or
+C modify it under the terms of the GNU General Public License
+C as published by the Free Software Foundation; either version 2
+C of the License, or (at your option) any later version.
+C
+
+ subroutine fsub3(arg,res)
+ implicit none
+ integer*4 arg,res
+ write(*,*) 'fsub3 called'
+ res=arg*4
+ return
+ end
write(*,*) 'fsub is ok!'
endif
+ call fsub3(arg,res)
+
+ write(*,*) 'fsub3 returned, saying that 4 *',arg,' =',res
+
+ if (res.eq.8) then
+ write(*,*) 'fsub3 is ok!'
+ endif
+
stop
end
-