Skip to content
Snippets Groups Projects
Commit b1b8ce10 authored by Sergey Kosukhin's avatar Sergey Kosukhin
Browse files

Rewrite the configure script.

1. Check for FC only if one of the Fortran interfaces is requested.

2. Fail if the Fortran ISO C interface is enabled but FC is not found.

3. Check for F77 only if the C Fortran interface is requested and either FC was
   not found or the user set F77 explicitly. In the latter case, we make sure
   that the generated library is compatible with both FC and F77.

4. Check for Fortran interfaces of MPI and YAXT only when needed and do not fail
   if either of them not found: we can still provide the C Fortran interface.

5. Refactor the Automake conditionals: remove redundant, rename the required in
   a consistent way. Conditionals from acx_options.m4 left unchanged since they
   might affect the integration into CDO.

6. General clean-up and refactoring.

7. Temporarily drop support for the experimental ruby and python interfaces.
parent c064aae5
No related branches found
No related tags found
2 merge requests!34Version 2.2.0,!13Consolidation with CDI-PIO (develop)
SUBDIRS = src interfaces app examples tests
SUBDIRS = src app examples tests
# The pdf files below cannot be created in parallel:
doc/cdi_cman.pdf: doc/cdi_fman.pdf
......
This diff is collapsed.
......@@ -14,12 +14,12 @@ if ENABLE_NETCDF
check_PROGRAMS += cdi_write_const
endif
if CREATE_ISOC
if ENABLE_ISOC_INTERFACE
check_PROGRAMS += cdi_read_f2003 cdi_write_f2003
endif
endif ENABLE_ISOC_INTERFACE
AM_CPPFLAGS = -I$(top_srcdir)/src
AM_FCFLAGS = $(FPP_INCOPT)$(top_srcdir)/src $(FC_MOD_FLAG)../src
AM_FCFLAGS = $(FC_OPTINC)$(top_srcdir)/src $(FC_MOD_FLAG)../src
AM_LDFLAGS =
if ENABLE_ALL_STATIC
......@@ -52,7 +52,7 @@ cdi_read_f2003_LDADD = $(top_builddir)/src/libcdi_f2003.la $(top_builddir)/src/l
cdi_write_f2003_SOURCES = cdi_write_f2003.f90
cdi_write_f2003_LDADD = $(top_builddir)/src/libcdi_f2003.la $(top_builddir)/src/libcdi.la
if FORTRAN_MOD_UC
if FC_MOD_UPPERCASE
cdi_read_f2003.$(OBJEXT) cdi_write_f2003.$(OBJEXT): $(top_builddir)/src/MO_CDI.$(FCMODEXT)
else
cdi_read_f2003.$(OBJEXT) cdi_write_f2003.$(OBJEXT): $(top_builddir)/src/mo_cdi.$(FCMODEXT)
......
......@@ -2,34 +2,37 @@ check_PROGRAMS = \
collectData \
collectDataNStreams
if USE_MPI
if ENABLE_MPI
check_PROGRAMS += compareResourcesArray
endif
endif ENABLE_MPI
if USE_FC
if ENABLE_CF_INTERFACE
check_PROGRAMS += collectData2003
endif
endif ENABLE_CF_INTERFACE
AM_CPPFLAGS = -I$(top_srcdir)/src $(YAXT_C_INCLUDE)
if ENABLE_MPI
AM_CPPFLAGS += -DUSE_MPI
endif ENABLE_MPI
AM_CFLAGS = $(MPI_C_INCLUDE)
AM_FCFLAGS = $(FPP_INCOPT)$(top_srcdir)/src $(MPI_FC_INCLUDE)
if USE_MPI
AM_FCFLAGS += $(FPP_DEFOPT)USE_MPI
endif
AM_FCFLAGS = $(FC_OPTINC)$(top_srcdir)/src $(MPI_FC_INCLUDE)
if ENABLE_MPI
AM_FCFLAGS += $(FC_DEFINE)USE_MPI
endif ENABLE_MPI
AM_LDFLAGS =
if ENABLE_ALL_STATIC
AM_LDFLAGS += -all-static
endif
if USE_MPI
if ENABLE_MPI
LDADD = $(top_builddir)/src/libcdipio.la $(top_builddir)/src/libcdi.la $(YAXT_LIBS) $(MPI_C_LIB)
collectData2003_LDADD = $(top_builddir)/src/libcdipio.la $(top_builddir)/src/libcdi.la $(YAXT_FC_LIB) $(MPI_FC_LIB)
else
else !ENABLE_MPI
LDADD = $(top_builddir)/src/libcdi.la
collectData2003_LDADD = $(top_builddir)/src/libcdi.la
endif
endif !ENABLE_MPI
collectData_SOURCES = collectData.c
......
......@@ -10,11 +10,11 @@ EXTRA_DIST = cdilib.c
nodist_pkgconfig_DATA =
nodist_cmake_DATA =
if FORTRAN_MOD_UC
if FC_MOD_UPPERCASE
mo_cdi_mod = MO_CDI.$(FCMODEXT)
else
else !FC_MOD_UPPERCASE
mo_cdi_mod = mo_cdi.$(FCMODEXT)
endif
endif !FC_MOD_UPPERCASE
if ENABLE_CDI_LIB
include_HEADERS += \
......@@ -27,36 +27,34 @@ nodist_pkgconfig_DATA += pkgconfig/cdi.pc
nodist_cmake_DATA += \
cmake/cdi/cdi-config-version.cmake \
cmake/cdi/cdi-config.cmake
# add cdi.inc only if cfortran interface is required
if USE_FC
if ENABLE_CF_INTERFACE
include_HEADERS += cdi.inc
endif
if CREATE_ISOC
endif ENABLE_CF_INTERFACE
if ENABLE_ISOC_INTERFACE
nodist_include_HEADERS += $(mo_cdi_mod)
lib_LTLIBRARIES += libcdi_f2003.la
nodist_pkgconfig_DATA += pkgconfig/cdi_f2003.pc
endif
if USE_MPI
endif ENABLE_ISOC_INTERFACE
if ENABLE_MPI
include_HEADERS += cdipio.h
lib_LTLIBRARIES += libcdipio.la
nodist_pkgconfig_DATA += pkgconfig/cdipio.pc
# add cdipio.inc only if cfortran interface is required
if USE_FC
if ENABLE_CF_INTERFACE
include_HEADERS += cdipio.inc
endif
endif
else
endif ENABLE_CF_INTERFACE
endif ENABLE_MPI
else !ENABLE_CDI_LIB
noinst_LTLIBRARIES += libcdi.la
if CREATE_ISOC
if ENABLE_ISOC_INTERFACE
noinst_LTLIBRARIES += libcdi_f2003.la
endif
if USE_MPI
endif ENABLE_ISOC_INTERFACE
if ENABLE_MPI
noinst_LTLIBRARIES += libcdipio.la
endif
endif
endif ENABLE_MPI
endif !ENABLE_CDI_LIB
AM_CPPFLAGS =
if USE_MPI
if ENABLE_MPI
# TODO: this needs a refactoring but for now we set this macro here and not in
# config.h because the macro is used in several files that do not include the
# header file directly.
......@@ -208,21 +206,17 @@ libcdi_la_SOURCES = \
zaxis.c \
zaxis.h
# cfortran.h is an optional part of libcdi
if USE_FC
if ENABLE_CF_INTERFACE
libcdi_la_SOURCES += \
cdiFortran.c \
cfortran.h
endif
endif ENABLE_CF_INTERFACE
# these only contain code if grib_api is available
if HAVE_LIBGRIB_API
libcdi_la_SOURCES += \
gribapi_utilities.c \
stream_gribapi.c
endif
libcdi_la_LIBADD = $(UUID_C_LIB)
endif HAVE_LIBGRIB_API
libcdi_f2003_la_SOURCES = mo_cdi.f90
libcdi_f2003_la_LIBADD = libcdi.la
......@@ -270,15 +264,15 @@ libcdipio_la_SOURCES = \
resource_unpack.c \
resource_unpack.h
if USE_FC
if ENABLE_CF_INTERFACE
libcdipio_la_SOURCES += \
cdipioFortran.c \
cfortran.h
endif
endif ENABLE_CF_INTERFACE
if HAVE_PARALLEL_NC4
libcdipio_la_SOURCES += pio_cdf_int.c
endif
endif HAVE_PARALLEL_NC4
libcdipio_la_LIBADD = libcdi.la $(LIBRT) $(PPM_CORE_C_LIB) $(YAXT_C_LIB) $(MPI_C_LIB)
......@@ -331,7 +325,7 @@ cdilib.c:
CLEANFILES = cdilib.c
MOSTLYCLEANFILES = make_fint
if CREATE_ISOC
if ENABLE_ISOC_INTERFACE
MOSTLYCLEANFILES += $(mo_cdi_mod)
endif
......
......@@ -29,7 +29,7 @@ TESTS = \
test_resource_copy_run \
test_table_run
if USE_MPI
if ENABLE_MPI
TESTS += test_resource_copy_mpi_run
endif
......@@ -53,11 +53,14 @@ check_PROGRAMS += \
test_cdf_write
endif
if USE_MPI
if ENABLE_MPI
check_PROGRAMS += test_resource_copy_mpi
endif
endif ENABLE_MPI
AM_CPPFLAGS = -I$(top_srcdir)/src
if ENABLE_MPI
AM_CPPFLAGS += -DUSE_MPI
endif ENABLE_MPI
AM_CFLAGS = $(PPM_CORE_C_INCLUDE) $(YAXT_C_INCLUDE) $(MPI_C_INCLUDE)
AM_LDFLAGS =
......@@ -98,7 +101,7 @@ pio_write_SOURCES = \
simple_model.c \
simple_model_helper.c \
simple_model_helper.h
if USE_MPI
if ENABLE_MPI
pio_write_LDADD = ../src/libcdipio.la ../src/libcdi.la $(PPM_CORE_LIBS) $(YAXT_LIBS) $(MPI_C_LIB)
else
pio_write_LDADD = $(LDADD)
......@@ -112,7 +115,7 @@ pio_write_deco2d_SOURCES = \
pio_write_setup_grid.h \
simple_model_helper.c \
simple_model_helper.h
if USE_MPI
if ENABLE_MPI
pio_write_deco2d_LDADD = ../src/libcdipio.la ../src/libcdi.la $(PPM_CORE_LIBS) $(YAXT_LIBS) $(MPI_C_LIB)
else
pio_write_deco2d_LDADD = $(LDADD)
......@@ -137,7 +140,7 @@ test_cdf_write_SOURCES = \
test_cdf_write.c
test_resource_copy_mpi_SOURCES = test_resource_copy_mpi.c
if USE_MPI
if ENABLE_MPI
test_resource_copy_mpi_LDADD = ../src/libcdipio.la ../src/libcdi.la $(UUID_C_LIB)
else
test_resource_copy_mpi_LDADD = $(LDADD)
......
#!@SHELL@
@USE_MPI_FALSE@exit 77
@ENABLE_MPI_FALSE@exit 77
pio_write_args="-p PIO_ASYNCH -w 3"
mpi_task_num=7
......
#!@SHELL@
@USE_MPI_FALSE@exit 77
@ENABLE_MPI_FALSE@exit 77
LOG=pio_cksum_cdf.log
......
#!@SHELL@
@USE_MPI_FALSE@exit 77
@ENABLE_MPI_FALSE@exit 77
pio_write_args="-p PIO_FPGUARD -w 3"
mpi_task_num=6
......
#!@SHELL@
@USE_MPI_FALSE@exit 77
@ENABLE_MPI_FALSE@exit 77
pio_write_args="-w 3"
mpi_task_num=8
......
#!@SHELL@
@USE_MPI_FALSE@exit 77
@ENABLE_MPI_FALSE@exit 77
pio_write_args="-p PIO_MPI_FW_AT_ALL -w 2"
mpi_task_num=5
......
#!@SHELL@
@USE_MPI_FALSE@exit 77
@ENABLE_MPI_FALSE@exit 77
pio_write_args="-p PIO_MPI_FW_AT_REBLOCK -w 2"
mpi_task_num=5
......
#!@SHELL@
@USE_MPI_FALSE@exit 77
@ENABLE_MPI_FALSE@exit 77
pio_write_args="-p PIO_MPI_FW_ORDERED -w 2"
mpi_task_num=5
......
#!@SHELL@
@USE_MPI_FALSE@exit 77
@ENABLE_MPI_FALSE@exit 77
pio_write_args="-p PIO_MPI -w 2"
mpi_task_num=4
......
#!@SHELL@
@USE_MPI_FALSE@exit 77
@ENABLE_MPI_FALSE@exit 77
test 'x@ENABLE_GRIB@' = xyes || exit 77
pio_write_args="-p PIO_WRITER -w 4"
......
......@@ -25,8 +25,8 @@ case ${suffix} in
;;
esac
@USE_MPI_TRUE@variations="-qno-batch-rma -qcache-redists -qcreate-curvilinear-grid -qpreset-decomposition=true"
@USE_MPI_FALSE@variations="-qcreate-curvilinear-grid"
@ENABLE_MPI_TRUE@variations='-qno-batch-rma -qcache-redists -qcreate-curvilinear-grid -qpreset-decomposition=true'
@ENABLE_MPI_FALSE@variations='-qcreate-curvilinear-grid'
test_variation()
{
......@@ -50,7 +50,9 @@ for variation in "" $variations ; do
test_variation "$variation"
done
@USE_MPI_TRUE@@USE_PPM_CORE_TRUE@test_variation "-qcreate-curvilinear-grid -quse-dist-grid"
if test 'x@HAVE_PPM_DIST_ARRAY@' = xyes; then
test_variation "-qcreate-curvilinear-grid -quse-dist-grid"
fi
exec 2>&6 1>&5 5>&- 6>&-
#
......
#!@SHELL@
@CREATE_ISOC_FALSE@exit 77
@ENABLE_ISOC_INTERFACE_FALSE@exit 77
test 'x@ENABLE_NETCDF@' = xyes || exit 77
cdi_read_f2003_stdout="$0.cdi_read_f2003.stdout"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment