summaryrefslogtreecommitdiffstats
path: root/fortran/src/Makefile.in
diff options
context:
space:
mode:
authorJames Laird <jlaird@hdfgroup.org>2005-04-25 19:00:06 (GMT)
committerJames Laird <jlaird@hdfgroup.org>2005-04-25 19:00:06 (GMT)
commita05061f512a52832cc69211db0e382d30eecaaa5 (patch)
tree1a4d5a3e93700a3b493171e9e32527ae151d63f6 /fortran/src/Makefile.in
parent1cc3666a270a15783574a2f2a7c6d9bc1209a76b (diff)
downloadhdf5-a05061f512a52832cc69211db0e382d30eecaaa5.zip
hdf5-a05061f512a52832cc69211db0e382d30eecaaa5.tar.gz
hdf5-a05061f512a52832cc69211db0e382d30eecaaa5.tar.bz2
[svn-r10657] Purpose:
Configuration feature Description: Fortran integer types (not reals) are now automatically detected at build-time. Solution: Two helper programs are used, one to detect what types the Fortran compiler has access to, and one to generate header files for C and Fortran matching up types. Platforms tested: mir, copper, modi4, pommier (last week) Misc. update: MANIFEST updated, H5f90fortran_types.f90 removed from configure.in, since it is not longer generated by configure.
Diffstat (limited to 'fortran/src/Makefile.in')
-rw-r--r--fortran/src/Makefile.in92
1 files changed, 73 insertions, 19 deletions
diff --git a/fortran/src/Makefile.in b/fortran/src/Makefile.in
index 7b4ebea..9c828f3 100644
--- a/fortran/src/Makefile.in
+++ b/fortran/src/Makefile.in
@@ -31,7 +31,8 @@
#
-SOURCES = $(libhdf5_fortran_la_SOURCES)
+
+SOURCES = $(libhdf5_fortran_la_SOURCES) $(H5fortran_detect_SOURCES) H5match_types.c
srcdir = @srcdir@
top_srcdir = @top_srcdir@
@@ -55,11 +56,11 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-DIST_COMMON = README $(srcdir)/H5fortran_types.f90.in \
- $(srcdir)/Makefile.am $(srcdir)/Makefile.in $(srcdir)/h5fc.in \
- $(srcdir)/libhdf5_fortran.settings.in \
+DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(srcdir)/h5fc.in $(srcdir)/libhdf5_fortran.settings.in \
$(top_srcdir)/config/commence.am \
$(top_srcdir)/config/conclude.am
+noinst_PROGRAMS = H5match_types$(EXEEXT) H5fortran_detect$(EXEEXT)
subdir = fortran/src
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
@@ -67,7 +68,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/src/H5config.h
-CONFIG_CLEAN_FILES = h5fc H5fortran_types.f90 libhdf5_fortran.settings
+CONFIG_CLEAN_FILES = h5fc libhdf5_fortran.settings
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -94,6 +95,13 @@ am_libhdf5_fortran_la_OBJECTS = H5fortran_flags.lo H5f90global.lo \
H5Gf.lo H5If.lo H5Pf.lo H5Rf.lo H5Sf.lo H5Tf.lo H5Zf.lo \
$(am__objects_1)
libhdf5_fortran_la_OBJECTS = $(am_libhdf5_fortran_la_OBJECTS)
+PROGRAMS = $(noinst_PROGRAMS)
+am_H5fortran_detect_OBJECTS = H5fortran_detect.$(OBJEXT)
+H5fortran_detect_OBJECTS = $(am_H5fortran_detect_OBJECTS)
+H5fortran_detect_LDADD = $(LDADD)
+H5match_types_SOURCES = H5match_types.c
+H5match_types_OBJECTS = H5match_types.$(OBJEXT)
+H5match_types_LDADD = $(LDADD)
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/src
depcomp = $(SHELL) $(top_srcdir)/bin/depcomp
am__depfiles_maybe = depfiles
@@ -110,8 +118,10 @@ LTFCCOMPILE = $(LIBTOOL) --mode=compile $(FC) $(AM_FCFLAGS) $(FCFLAGS)
FCLD = $(FC)
FCLINK = $(LIBTOOL) --mode=link $(FCLD) $(AM_FCFLAGS) $(FCFLAGS) \
$(AM_LDFLAGS) $(LDFLAGS) -o $@
-SOURCES = $(libhdf5_fortran_la_SOURCES)
-DIST_SOURCES = $(am__libhdf5_fortran_la_SOURCES_DIST)
+SOURCES = $(libhdf5_fortran_la_SOURCES) $(H5fortran_detect_SOURCES) \
+ H5match_types.c
+DIST_SOURCES = $(am__libhdf5_fortran_la_SOURCES_DIST) \
+ $(H5fortran_detect_SOURCES) H5match_types.c
settingsDATA_INSTALL = $(INSTALL_DATA)
DATA = $(settings_DATA)
ETAGS = etags
@@ -352,7 +362,12 @@ libhdf5_fortran_la_SOURCES = H5fortran_flags.f90 H5f90global.f90 \
# h5fc and libhdf5_fortran.settings are generated during configure.
# Remove them only when distclean.
-DISTCLEANFILES = h5fc H5fortran_types.f90 libhdf5_fortran.settings
+DISTCLEANFILES = h5fc libhdf5_fortran.settings
+
+# H5fortran_types.f90 and H5f90i.h are automatically generaed by
+# H5match_types, and must be cleaned explicitly. H5fort_type_defines.h
+# is generated by H5fortran_detect
+MOSTLYCLEANFILES = H5fortran_types.f90 H5f90i_gen.h H5fort_type_defines.h
# Install libhdf5_fortran.settings in lib directory
settingsdir = $(libdir)
@@ -363,6 +378,15 @@ settings_DATA = libhdf5_fortran.settings
# is configured for parallel mode
@BUILD_PARALLEL_CONDITIONAL_TRUE@H5FC_NAME = h5pfc
+# Tell Automake to create H5f90i_gen.h before it does anything else.
+# When it creates H5f90i_gen.h, it will create H5fortran_types.f90 as
+# a side effect.
+BUILT_SOURCES = H5f90i_gen.h
+
+# Automake knows how to build fortran programs if we tell it the source
+# files.
+H5fortran_detect_SOURCES = H5fortran_detect.f90
+
# Mark this directory as part of the Fortran API
HDF_FORTRAN = yes
@@ -378,7 +402,8 @@ PROGS = $(bin_PROGRAMS) $(bin_SCRIPTS) $(noinst_PROGRAMS) $(noinst_SCRIPTS) \
$(EXTRA_PROG)
TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(EXTRA_TEST)
-all: all-am
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
.SUFFIXES:
.SUFFIXES: .c .f90 .lo .o .obj
@@ -413,8 +438,6 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
h5fc: $(top_builddir)/config.status $(srcdir)/h5fc.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
-H5fortran_types.f90: $(top_builddir)/config.status $(srcdir)/H5fortran_types.f90.in
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
libhdf5_fortran.settings: $(top_builddir)/config.status $(srcdir)/libhdf5_fortran.settings.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
install-libLTLIBRARIES: $(lib_LTLIBRARIES)
@@ -447,6 +470,19 @@ clean-libLTLIBRARIES:
libhdf5_fortran.la: $(libhdf5_fortran_la_OBJECTS) $(libhdf5_fortran_la_DEPENDENCIES)
$(FCLINK) -rpath $(libdir) $(libhdf5_fortran_la_LDFLAGS) $(libhdf5_fortran_la_OBJECTS) $(libhdf5_fortran_la_LIBADD) $(LIBS)
+clean-noinstPROGRAMS:
+ @list='$(noinst_PROGRAMS)'; for p in $$list; do \
+ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f $$p $$f"; \
+ rm -f $$p $$f ; \
+ done
+H5fortran_detect$(EXEEXT): $(H5fortran_detect_OBJECTS) $(H5fortran_detect_DEPENDENCIES)
+ @rm -f H5fortran_detect$(EXEEXT)
+ $(FCLINK) $(H5fortran_detect_LDFLAGS) $(H5fortran_detect_OBJECTS) $(H5fortran_detect_LDADD) $(LIBS)
+H5match_types$(EXEEXT): $(H5match_types_OBJECTS) $(H5match_types_DEPENDENCIES)
+ @rm -f H5match_types$(EXEEXT)
+ $(LINK) $(H5match_types_LDFLAGS) $(H5match_types_OBJECTS) $(H5match_types_LDADD) $(LIBS)
+
mostlyclean-compile:
-rm -f *.$(OBJEXT)
@@ -467,6 +503,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5Zf.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5_f.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5f90kit.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5match_types.Po@am__quote@
.c.o:
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
@@ -603,13 +640,15 @@ distdir: $(DISTFILES)
done
check-am: all-am
$(MAKE) $(AM_MAKEFLAGS) check-TESTS
-check: check-am
-all-am: Makefile $(LTLIBRARIES) $(DATA) all-local
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(DATA) all-local
installdirs:
for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(settingsdir)"; do \
test -z "$$dir" || $(mkdir_p) "$$dir"; \
done
-install: install-am
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
@@ -624,6 +663,7 @@ install-strip:
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
+ -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:
@@ -634,10 +674,11 @@ distclean-generic:
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
clean: clean-am
clean-am: clean-generic clean-libLTLIBRARIES clean-libtool clean-local \
- mostlyclean-am
+ clean-noinstPROGRAMS mostlyclean-am
distclean: distclean-am
-rm -rf ./$(DEPDIR)
@@ -689,10 +730,10 @@ uninstall-am: uninstall-info-am uninstall-libLTLIBRARIES \
.PHONY: CTAGS GTAGS all all-am all-local check check-TESTS check-am \
clean clean-generic clean-libLTLIBRARIES clean-libtool \
- clean-local ctags distclean distclean-compile \
- distclean-generic distclean-libtool distclean-local \
- distclean-tags distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am \
+ clean-local clean-noinstPROGRAMS ctags distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-local distclean-tags distdir dvi dvi-am html html-am \
+ info info-am install install-am install-data install-data-am \
install-data-local install-exec install-exec-am \
install-exec-local install-info install-info-am \
install-libLTLIBRARIES install-man install-settingsDATA \
@@ -733,6 +774,19 @@ uninstall-local:
install-exec-local:
$(INSTALL) h5fc $(bindir)/$(H5FC_NAME)
+# Specify what Automake needs to create: first the H5fort_type_defines.h
+# header, then H5match_types which includes that header, then
+# it needs to run H5match_types.
+H5fortran_types.f90 H5f90i_gen.h: H5match_types.c
+ $(MAKE) $(AM_MAKEFLAGS) H5fort_type_defines.h
+ $(MAKE) $(AM_MAKEFLAGS) H5match_types
+ $(RUNSERIAL) ./H5match_types
+
+# H5fort_type_defines.h is created by running H5fortran_detect.
+# Obviously, H5fortran_detect needs to be built first.
+H5fort_type_defines.h: H5fortran_detect
+ $(RUNSERIAL) ./H5fortran_detect > H5fort_type_defines.h
+
# Hardcode the dependencies of these files. There isn't a known way of
# determining this automagically (like we do with the C files). So, when
# doing a parallel make, some modules could be made way before the