summaryrefslogtreecommitdiffstats
path: root/fortran/test/Makefile.am
blob: ef6cd7ecd3afa823d602459c0c2bbf4a21a8572e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#
# Copyright by The HDF Group.
# Copyright by the Board of Trustees of the University of Illinois.
# All rights reserved.
#
# This file is part of HDF5.  The full HDF5 copyright notice, including
# terms governing use, modification, and redistribution, is contained in
# the COPYING file, which can be found at the root of the source code
# distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases.
# If you do not have access to either file, you may request a copy from
# help@hdfgroup.org.
##
## Makefile.am
## Run automake to generate a Makefile.in from this file.
#
# HDF5-Fortran test/Makefile(.in)
#
# Autoconf cannot figure out dependencies between modules; disable parallel make
.NOTPARALLEL:
include $(top_srcdir)/config/commence.am

# Include files
AM_FCFLAGS+=-I$(top_builddir)/fortran/src $(F9XMODFLAG)$(top_builddir)/fortran/src
AM_CPPFLAGS+=-I$(top_srcdir)/src -I$(top_builddir)/fortran/src

# The Fortran test library
noinst_LTLIBRARIES=libh5test_fortran.la

# Some Fortran compilers can't build shared libraries, so sometimes we
# want to build a shared C library and a static Fortran library.  If so,
# pass the -static flag to the library linker.
if FORTRAN_SHARED_CONDITIONAL
  TEST_SCRIPT = test_vol_connector.sh
  SCRIPT_DEPEND = vol_connector$(EXEEXT)
else
   AM_LDFLAGS+=-static
endif

check_SCRIPTS = $(TEST_SCRIPT)

# Our main targets, the tests themselves
TEST_PROG=fortranlib_test fflush1 fflush2 fortranlib_test_1_8 fortranlib_test_F03

check_PROGRAMS=$(TEST_PROG)
if FORTRAN_SHARED_CONDITIONAL
  check_PROGRAMS+=  vol_connector
endif

if FORTRAN_SHARED_CONDITIONAL
  # The libh5test library provides common support code for the tests.
  # The filter_plugin* libraries are for use in filter_plugin.c.
  # Build them as shared libraries if that option was enabled in configure.
  noinst_LTLIBRARIES += libnull_vol_connector.la

  # VOL plugin test libraries
  #
  # null_vol_connector is used for testing basic VOL plugin functionality.
  libnull_vol_connector_la_SOURCES=null_vol_connector.c
  libnull_vol_connector_la_LDFLAGS=$(AM_LDFLAGS) -avoid-version -module -shared -export-dynamic -rpath /nowhere
endif


libh5test_fortran_la_SOURCES = tf_gen.F90 tf.F90  t.c

fortranlib_test_SOURCES = tH5F.F90 tH5D.F90 tH5R.F90 tH5S.F90 tH5T.F90 tH5VL.F90 tH5Z.F90 \
        tH5Sselect.F90 tH5P.F90 tH5A.F90 tH5I.F90 tH5G.F90 tH5E.F90 tHDF5.F90 fortranlib_test.F90

fortranlib_test_1_8_SOURCES = tH5O.F90 tH5A_1_8.F90 tH5G_1_8.F90 tH5MISC_1_8.F90 tHDF5_1_8.F90 \
        fortranlib_test_1_8.F90

fortranlib_test_F03_SOURCES = tH5E_F03.F90 tH5F_F03.F90 tH5L_F03.F90 \
        tH5O_F03.F90 tH5P_F03.F90 tH5T_F03.F90 tHDF5_F03.F90 fortranlib_test_F03.F90

vol_connector_SOURCES=vol_connector.F90

fflush1_SOURCES=fflush1.F90
fflush2_SOURCES=fflush2.F90

# The tests depend on both fortran libraries and both main libraries.
LDADD=libh5test_fortran.la $(LIBH5TEST) $(LIBH5F) $(LIBHDF5)

# Temporary files
CHECK_CLEANFILES+=*.h5 *.raw
MOSTLYCLEANFILES=*.tmp

# Fortran module files can have different extensions and different names
# (e.g., different capitalizations) on different platforms.  Write rules
# for them explicitly rather than trying to teach automake about them.
# They should be installed as headers and removed during clean.
maintainer-clean-local: clean-local
distclean-local: clean-local
clean-local:
	@if test -n "$(F9XMODEXT)" && test "X$(F9XMODEXT)" != "Xo"; then \
	  $(RM) *.$(F9XMODEXT) tf_gen.F90;                                         \
	fi

# Mark this directory as part of the Fortran API (this affects output
# from tests in conclude.am)
FORTRAN_API=yes

# helper program we need to build.
noinst_PROGRAMS = H5_test_buildiface

# H5_test_buildiface.F90 generates all the test APIs that have a KIND type associated
# with them.

tf_gen.F90: H5_test_buildiface$(EXEEXT)
	$(RUNSERIAL) ./H5_test_buildiface$(EXEEXT)

# H5_test_buildiface.F90 is included in the distribution, and Automake knows
# how to compile a fortran program given its sources.

H5_test_buildiface_SOURCES = H5_test_buildiface.F90

# The build of the H5_test_buildiface does not depend on any libraries, so set it 
# to nothing.

H5_test_buildiface_LDADD =

DISTCLEANFILES=test_vol_connector.sh # TODO:CHECK IF WORKS MSB

# fflush2 depends on files created by fflush1
fflush2.chkexe_: fflush1.chkexe_


include $(top_srcdir)/config/conclude_fc.am