diff options
author | James Laird <jlaird@hdfgroup.org> | 2005-04-25 19:00:06 (GMT) |
---|---|---|
committer | James Laird <jlaird@hdfgroup.org> | 2005-04-25 19:00:06 (GMT) |
commit | a05061f512a52832cc69211db0e382d30eecaaa5 (patch) | |
tree | 1a4d5a3e93700a3b493171e9e32527ae151d63f6 /fortran/src/Makefile.in | |
parent | 1cc3666a270a15783574a2f2a7c6d9bc1209a76b (diff) | |
download | hdf5-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.in | 92 |
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 |