diff --git a/m4/immdx_lib_parmetis.m4 b/m4/immdx_lib_parmetis.m4 new file mode 100644 index 0000000000000000000000000000000000000000..aaf1012576835fc8c68be66186fff389e29b5f29 --- /dev/null +++ b/m4/immdx_lib_parmetis.m4 @@ -0,0 +1,85 @@ +AC_DEFUN([IMMDX_LIB_PARMETIS], [ + AC_MSG_CHECKING(for PARMETIS library) + AC_REQUIRE([AC_PROG_CC]) + # + # User hints... + # + AC_ARG_VAR([PARMETIS], [PARMETIS library location]) + AC_ARG_WITH([parmetis], + [AC_HELP_STRING([--with-parmetis], + [user defined path to PARMETIS library])], + [ + if test -n "$PARMETIS" ; then + AC_MSG_RESULT(yes) + with_parmetis=$PARMETIS + elif test "$withval" != no ; then + AC_MSG_RESULT(yes) + with_parmetis=$withval + else + AC_MSG_RESULT(no) + fi + ], + [ + if test -n "$PARMETIS" ; then + with_parmetis=$PARMETIS + AC_MSG_RESULT(yes) + else + with_parmetis=/usr + if test ! -f "$with_parmetis/include/parmetis.h" ; then + with_parmetis=/usr/local + if test ! -f "$with_parmetis/include/parmetis.h" ; then + with_parmetis="" + AC_MSG_RESULT(failed) + else + AC_MSG_RESULT(yes) + fi + else + AC_MSG_RESULT(yes) + fi + fi + ]) + # + # locate PARMETIS library + # + if test -n "$with_parmetis" ; then + old_CC=$CC + old_CFLAGS=$CFLAGS + old_LDFLAGS=$LDFLAGS + CFLAGS="-I$with_parmetis/include -I$with_metis/include" + LDFLAGS="-L$with_parmetis/lib -L$with_metis/lib" + CC=$CXX + + AC_LANG_SAVE + AC_LANG_C + + AC_CHECK_LIB(parmetis, ParMETIS_V3_PartKway, + [parmetis_lib=yes], [parmetis_lib=yes], [-lm]) + AC_CHECK_HEADER(parmetis.h, [parmetis_h=yes], + [parmetis_h=no], [/* check */]) + + AC_LANG_RESTORE + + CFLAGS=$old_CFLAGS + LDFLAGS=$old_LDFLAGS + CC=$old_CC + + AC_MSG_CHECKING(PARMETIS in $with_parmetis) + if test "$parmetis_lib" = "yes" -a "$parmetis_h" = "yes" ; then + AC_SUBST(PARMETIS_INCLUDE, [-I$with_parmetis/include]) + AC_SUBST(PARMETIS_LIB, [-L$with_parmetis/lib]) + AC_MSG_RESULT(ok) + else + AC_MSG_RESULT(failed) + fi + fi + # + # + # + if test x = x"$PARMETIS_LIB" ; then + ifelse([$2],,[AC_MSG_ERROR(Failed to find valid PARMETIS library)],[$2]) + : + else + ifelse([$1],,[AC_DEFINE(HAVE_PARMETIS,1,[Define if you have PARMETIS library])],[$1]) + : + fi + ])dnl IMMDX_LIB_PARMETIS diff --git a/src/Makefile.am b/src/Makefile.am index 0a65adb5bf0c83bd7cc06fd8ad2cb248a07a6d3b..9b0f1961b58bf9dc1eb8be608d53bb92fbb2a9a1 100755 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,9 +1,9 @@ -LINKLIBS = $(SUITESPARSE_LIBS) $(LAPACK_LIBS) $(BLAS_LIBS) $(METIS_LIB) $(DEFAULT_LIB) $(PTHREAD_LIBS) $(OPT_LIBS) $(BOOST_LDFLAGS) $(BOOST_PROGRAM_OPTIONS_LIB) $(BOOST_IOSTREAMS_LIB) $(HDF5_LDFLAGS) $(HDF5_LIBS) +LINKLIBS = $(SUITESPARSE_LIBS) $(LAPACK_LIBS) $(BLAS_LIBS) $(METIS_LIB) $(PARMETIS_LIB) $(DEFAULT_LIB) $(PTHREAD_LIBS) $(OPT_LIBS) $(BOOST_LDFLAGS) $(BOOST_PROGRAM_OPTIONS_LIB) $(BOOST_IOSTREAMS_LIB) $(HDF5_LDFLAGS) $(HDF5_LIBS) noinst_PROGRAMS = numerics numerics_SOURCES = main.cpp ../../openfpm_vcluster/src/VCluster.cpp ../../openfpm_devices/src/memory/HeapMemory.cpp ../../openfpm_devices/src/memory/PtrMemory.cpp ../../openfpm_devices/src/Memleak_check.cpp -numerics_CXXFLAGS = $(HDF5_CPPFLAGS) -fext-numeric-literals $(INCLUDES_PATH) $(BOOST_CPPFLAGS) $(SUITESPARSE_INCLUDE) $(METIS_INCLUDE) $(EIGEN_INCLUDE) -Wno-deprecated-declarations -Wno-unused-local-typedefs +numerics_CXXFLAGS = $(HDF5_CPPFLAGS) -fext-numeric-literals $(INCLUDES_PATH) $(BOOST_CPPFLAGS) $(SUITESPARSE_INCLUDE) $(METIS_INCLUDE) $(PARMETIS_INCLUDE) $(EIGEN_INCLUDE) -Wno-deprecated-declarations -Wno-unused-local-typedefs numerics_CFLAGS = $(CUDA_CFLAGS) numerics_LDADD = $(LINKLIBS) -lmetis -lquadmath -lparmetis nobase_include_HEADERS = PSE/Kernels.hpp PSE/Kernels_test_util.hpp