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

Unify PPM CORE location interface and check whether the library is really...

Unify PPM CORE location interface and check whether the library is really available in the configure script.
parent 2fdfa720
No related branches found
No related tags found
3 merge requests!11Consolidation with CDI-PIO (1.8.x),!9test for buildbot-CI integration in gitlab,!8Consolidation with CDI-PIO (1.8.x)
......@@ -329,25 +329,59 @@ dnl The configure script fails above if YAXT is not available:
CFLAGS=$saved_CFLAGS
LIBS=$saved_LIBS])
dnl parallel netCDF support still requires ScalES-PPM and YAXT to
dnl re-arrange the data when running with more than one collector
PKG_CHECK_MODULES([PPM_CORE],[scales-ppm-core],
[enable_ppm=yes
AC_DEFINE([HAVE_PPM_CORE],,
[ScalES PPM C core library is available])
saved_CPPFLAGS=$CPPFLAGS
CPPFLAGS="$CPPFLAGS $PPM_CORE_CFLAGS"
AC_CHECK_HEADERS(
[ppm/dist_array.h],
[HAVE_PPM_DIST_ARRAY=yes],,
[AC_INCLUDES_DEFAULT])
AC_SUBST([HAVE_PPM_DIST_ARRAY])
AM_SUBST_NOTMAKE([HAVE_PPM_DIST_ARRAY])
CPPFLAGS=$saved_CPPFLAGS
],
[enable_ppm=no])
dnl
dnl NC_HAS_PNETCDF is useful when available to short-circuit some tests
dnl Parallel netCDF support still requires ScalES-PPM and YAXT to re-arrange the
dnl data when running with more than one collector.
dnl
dnl Set precious variables following the naming convention of ACX_C_PACKAGE:
AC_ARG_VAR([PPM_CORE_C_INCLUDE],
[specifically set flags to use when compiling sources using PPM_CORE ]dnl
[includes.])dnl
AC_ARG_VAR([PPM_CORE_C_LIB],
[specifically set flags to use when linking PPM_CODE.])dnl
dnl Prevent PKG_CHECK_MODULES from declaring package-specific precious
dnl variables, which names do not follow our convention:
m4_pushdef([AC_ARG_VAR])dnl
dnl PKG_CHECK_MODULES relies on ppm_core_CFLAGS and ppm_core_LIBS, which in our
dnl case have names PPM_CORE_C_INCLUDE and PPM_CORE_C_LIB, respectively:
ppm_core_CFLAGS=$PPM_CORE_C_INCLUDE
ppm_core_LIBS=$PPM_CORE_C_LIB
PKG_CHECK_MODULES([ppm_core],[scales-ppm-core],
[PPM_CORE_C_INCLUDE=$ppm_core_CFLAGS
PPM_CORE_C_LIB=$ppm_core_LIBS], [:])
m4_popdef([AC_ARG_VAR])dnl
saved_CFLAGS=$CFLAGS
saved_LIBS=$LIBS
CFLAGS="$CFLAGS $MPI_C_INCLUDE"
LIBS="$LIBS $MPI_C_LIB"
dnl The following is extracted from ACX_GENERIC_PACKAGE, which is expanded by
dnl ACX_C_PACKAGE. We do not use the latter macro here to avoid introduction of
dnl the '--with-ppm-core-XXX' configure options, which might be very confusing
dnl since whatever pkg-config finds will be used instead.
ACX_LANG_CHECK_INCLUDE_PATHS_IFELSE([ppm/ppm.h],,
[PPM_CORE_C_INCLUDE=$acx_cv_c_include_ppm_ppm_h
ACX_OPTION_SEARCH_LIBS_MULTI([PPM_initialize], [scalesppmcore],
[PPM_CORE_C_LIB=$acx_cv_option_search_PPM_initialize_c
enable_ppm=yes
AC_DEFINE([HAVE_PPM_CORE],,[ScalES PPM C core library is available])
saved_CPPFLAGS=$CPPFLAGS
CPPFLAGS="$CPPFLAGS $PPM_CORE_C_INCLUDE"
AC_CHECK_HEADERS([ppm/dist_array.h],
[HAVE_PPM_DIST_ARRAY=yes],,
[AC_INCLUDES_DEFAULT])
CPPFLAGS=$saved_CPPFLAGS
AC_SUBST([HAVE_PPM_DIST_ARRAY])
AM_SUBST_NOTMAKE([HAVE_PPM_DIST_ARRAY])],
[AC_MSG_WARN([Cannot link to scales-ppm-core library.])],,
[$PPM_CORE_C_LIB])],
[AC_MSG_WARN([Include ppm/ppm.h not found or not compilable.])],,
[$PPM_CORE_C_INCLUDE],[[]])
CFLAGS=$saved_CFLAGS
LIBS=$saved_LIBS
AS_VAR_IF([enable_ppm], [no],
[PPM_CORE_C_INCLUDE=
PPM_CORE_C_LIB=])
dnl
dnl NC_HAS_PNETCDF is useful when available to short-circuit some tests
AS_IF([test x"$ENABLE_NETCDF" = xyes],
[AC_CHECK_HEADERS([netcdf_meta.h],,,[AC_INCLUDES_DEFAULT
@%:@include <netcdf.h>])
......
......@@ -25,7 +25,7 @@ endif
endif
AM_CFLAGS = $(PPM_CORE_CFLAGS) $(YAXT_C_INCLUDE) $(MPI_C_INCLUDE)
AM_CFLAGS = $(PPM_CORE_C_INCLUDE) $(YAXT_C_INCLUDE) $(MPI_C_INCLUDE)
libcdi_la_SOURCES = \
basetime.c \
......@@ -253,7 +253,7 @@ libcdipio_la_SOURCES += $(libcdipio_la_HAVE_PARALLEL_NC4_extra_sources)
endif
endif
libcdipio_la_LIBADD = libcdi.la $(LIBRT) $(PPM_CORE_LIBS) $(YAXT_C_LIB) $(MPI_C_LIB)
libcdipio_la_LIBADD = libcdi.la $(LIBRT) $(PPM_CORE_C_LIB) $(YAXT_C_LIB) $(MPI_C_LIB)
libcdi_la_LIBADD = $(UUID_C_LIB)
#
......
......@@ -4,7 +4,7 @@ libdir=@libdir@
includedir=@includedir@
cflags=-I@includedir@
fcflags=@FPP_INCOPT@@includedir@ @CDI_F90_INTERFACE_FCFLAGS@
libs=-L@libdir@ -lcdipio @LIBRT@ @PPM_CORE_LIBS@ @YAXT_C_LIB@ @MPI_C_LIB@ -lcdi @GRIB_API_LIBS@ @NETCDF_LIBS@ @SZLIB_LIBS@ @THREADS_LIBS@ @LIBS@
libs=-L@libdir@ -lcdipio @LIBRT@ @PPM_CORE_C_LIB@ @YAXT_C_LIB@ @MPI_C_LIB@ -lcdi @GRIB_API_LIBS@ @NETCDF_LIBS@ @SZLIB_LIBS@ @THREADS_LIBS@ @LIBS@
threads_libs=@THREADS_LIBS@
threads_cflags=@THREADS_INCLUDE@
szlib_cflags=@SZLIB_INCLUDE@
......
......@@ -57,7 +57,7 @@ test_cdf_read_SOURCES = test_cdf_read.c
test_table_SOURCES = test_table.c
test_byteswap_SOURCES = test_byteswap.c
#
AM_CFLAGS = $(PPM_CORE_CFLAGS) $(YAXT_C_INCLUDE) $(MPI_C_INCLUDE)
AM_CFLAGS = $(PPM_CORE_C_INCLUDE) $(YAXT_C_INCLUDE) $(MPI_C_INCLUDE)
if USE_MPI
pio_write_LDADD = ../src/libcdipio.la $(UUID_C_LIB) $(MPI_C_LIB)
pio_write_deco2d_LDADD = ../src/libcdipio.la $(UUID_C_LIB) $(MPI_C_LIB)
......
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