Changeset 26044


Ignore:
Timestamp:
03/08/21 16:32:33 (4 years ago)
Author:
jdquinn
Message:

CHG: Recommitting changes for Windows build (tested on macOS now)

Location:
issm/trunk-jpl
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/jenkins/jenkins.sh

    r26036 r26044  
    1212# - Investigate refactoring parsing of list of changed files
    1313################################################################################
     14
     15# Override certain aliases
     16alias grep=$(which grep)
    1417
    1518echo "Cleaning up execution directory"
  • issm/trunk-jpl/m4/issm_options.m4

    r26036 r26044  
    3131                PACKAGE_DATE="unknown"
    3232        fi
    33         AC_DEFINE_UNQUOTED(PACKAGE_BUILD_DATE, "$PACKAGE_DATE", [build date])
     33        AC_DEFINE_UNQUOTED([PACKAGE_BUILD_DATE], "${PACKAGE_DATE}", [build date])
    3434        AC_MSG_RESULT([${PACKAGE_DATE}])
    3535
     
    4646                fi
    4747        fi
    48         AC_DEFINE_UNQUOTED(USER_NAME, "$user_name", [user name])
     48        AC_DEFINE_UNQUOTED([USER_NAME], "${user_name}", [user name])
    4949        AC_MSG_RESULT([${user_name}])
    5050
     
    5555                linux-gnu* | lignux* )  host_os=linux ;;
    5656        esac
    57         AC_DEFINE_UNQUOTED(HOST_OS, "$host_os", [host full OS name and version])
     57        AC_DEFINE_UNQUOTED([HOST_OS], "${host_os}", [host full OS name and version])
    5858        AC_MSG_RESULT([${host_os}])
    5959
    6060        AC_MSG_CHECKING([host cpu])
    61         AC_DEFINE_UNQUOTED(HOST_CPU, "$host_cpu", [host CPU])
     61        AC_DEFINE_UNQUOTED([HOST_CPU], "${host_cpu}", [host CPU])
    6262        AC_MSG_RESULT([${host_cpu}])
    6363
    6464        AC_MSG_CHECKING([vendor])
    65         AC_DEFINE_UNQUOTED(HOST_VENDOR, "$host_vendor", [host vendor])
     65        AC_DEFINE_UNQUOTED([HOST_VENDOR], "${host_vendor}", [host vendor])
    6666        AC_MSG_RESULT([${host_vendor}])
    6767
     
    7373                linux-gnu* | lignux* )  host_os_name=linux ;;
    7474        esac
    75         AC_DEFINE_UNQUOTED(HOST_OS_NAME, "$host_os_name", [host OS name])
     75        AC_DEFINE_UNQUOTED([HOST_OS_NAME], "${host_os_name}", [host OS name])
    7676        AC_MSG_RESULT([${host_os_name}])
    7777
     
    8282                host_os_version=`(uname -r) 2>/dev/null` || host_os_version=unknown
    8383        fi
    84         AC_DEFINE_UNQUOTED(HOST_OS_VERSION, "$host_os_version", [host OS version])
     84        AC_DEFINE_UNQUOTED([HOST_OS_VERSION], "${host_os_version}", [host OS version])
    8585        AC_MSG_RESULT([${host_os_version}])
    8686
     
    9595                i?86 )  host_arch=i386 ;; # all x86 should show up as i386
    9696        esac
    97         AC_DEFINE_UNQUOTED(HOST_ARCH, "$host_arch", [host archictecture])
     97        AC_DEFINE_UNQUOTED([HOST_ARCH], "${host_arch}", [host archictecture])
    9898        AC_MSG_RESULT([${host_arch}])
    9999
     
    219219                AC_MSG_RESULT([no])
    220220        fi
    221         AC_DEFINE_UNQUOTED([_SYSTEM_HAS_FMEMOPEN_], $SYSTEM_FMEMOPEN, [does system copy of libc have fmemopen])
     221        AC_DEFINE_UNQUOTED([_SYSTEM_HAS_FMEMOPEN_], ${SYSTEM_FMEMOPEN}, [does system copy of libc have fmemopen])
    222222        AM_CONDITIONAL([SYSTEM_HAS_FMEMOPEN], [test "${SYSTEM_FMEMOPEN}" == "1"])
    223223
     224        IS_MSYS2=no
    224225        IS_WINDOWS=no
    225226        AC_MSG_CHECKING([for vendor compilers])
     
    318319                        export CFLAGS="-g -O3 -ipo -axAVX -ipo -no-inline-min-size -inline-max-size=345 -no-inline-max-total-size -no-inline-max-per-routine -no-inline-max-per-compile -restrict"
    319320                        AC_DEFINE([_HAVE_RESTRICT_], [1], [with restrict buffers])
     321                elif test "${VENDOR}" == "win-msys2"; then
     322                        export LDFLAGS="${LDFLAGS} -no-undefined"
     323                        export OSLIBS="-Wl,-L/mingw64/lib/gcc/x86_64-w64-mingw32/10.2.0 -Wl,-L/mingw64/x86_64-w64-mingw32/lib -Wl,-lstdc++ -Wl,-lgfortran -Wl,-lmingw32 -Wl,-lgcc_s -Wl,-lmoldname -Wl,-lmingwex -Wl,-lmsvcrt -Wl,-lm -Wl,-lpthread -Wl,-lshell32 -Wl,-luser32 -Wl,-lgdi32 -Wl,-luser32 -Wl,-ladvapi32 -Wl,-lkernel32 -Wl,-lquadmath -Wl,-lstdc++ -Wl,-lgcc"
     324                        IS_MSYS2=yes
    320325                else
    321326                        AC_MSG_ERROR([unknown compiler vendor!])
    322327                fi
    323328        fi
     329        dnl Set default standard for C++
     330        if test "${CXXFLAGS}" == ""; then
     331                export CXXFLAGS="-std=C++11"
     332        fi
    324333        AC_SUBST([OSLIBS])
    325334        AC_MSG_RESULT([done])
    326335
    327         AC_MSG_CHECKING([if this is a Windows build])
     336        AC_MSG_CHECKING([if this is a MSVC (Windows) build])
    328337        AM_CONDITIONAL([WINDOWS], [test "x${IS_WINDOWS}" == "xyes"])
    329338        AC_MSG_RESULT([${IS_WINDOWS}])
     339
     340        AC_MSG_CHECKING([if this is a MSYS2 (Windows) build])
     341        AM_CONDITIONAL([MSYS2], [test "x${IS_MSYS2}" == "xyes"])
     342        AC_MSG_RESULT([${IS_MSYS2}])
     343        AC_DEFINE([_IS_MSYS2_], [1], [is a MSYS2 (Windows) build])
    330344        dnl }}}
    331345        dnl MATLAB{{{
    332346
    333347        dnl See if MATLAB has been provided
     348        AC_MSG_CHECKING([for MATLAB])
    334349        AC_ARG_WITH(
    335350                [matlab-dir],                                                                                                           dnl feature
     
    338353                [MATLAB_ROOT="no"]                                                                                                      dnl action if not given
    339354        )
    340         AC_MSG_CHECKING([for MATLAB])
    341355        if test "x${MATLAB_ROOT}" == "xno"; then
    342356                HAVE_MATLAB=no
     
    357371                AC_DEFINE([_HAVE_MATLAB_], [1], [with MATLAB in ISSM src])
    358372
    359                 dnl Set MEXLIB, MEXLINK, and MEXEXT
     373                dnl Set MEX* variable
    360374                AC_MSG_CHECKING([MATLAB's mex compilation flags])
    361375
     
    367381                                if test "${VENDOR}" == "intel-win7-32"; then
    368382                                        MEXLIB="-Wl,libmx.lib -Wl,libmex.lib -Wl,libmat.lib ${OSLIBS} -Wl,libf2cblas.lib -Wl,libf2clapack.lib"
    369                                         MEXLINK="-Wl,/LIBPATH:`cygpath -m ${MATLAB_ROOT}/extern/lib/win32/microsoft` -Wl,/link -Wl,/EXPORT:mexFunction -Wl,/DLL"
     383                                        MEXLINKFLAGS="-Wl,/LIBPATH:`cygpath -m ${MATLAB_ROOT}/extern/lib/win32/microsoft` -Wl,/link -Wl,/EXPORT:mexFunction -Wl,/DLL"
    370384                                        MEXEXT=`${MATLAB_ROOT}/bin/mexext.bat`
    371385                                        MEXEXT=".${MEXEXT}"
    372386                                elif test "${VENDOR}" == "intel-win7-64"; then
    373387                                        MEXLIB="-Wl,libmx.lib -Wl,libmex.lib -Wl,libmat.lib ${OSLIBS} -Wl,libf2cblas.lib -Wl,libf2clapack.lib"
    374                                         MEXLINK="-Wl,/LIBPATH:`cygpath -m ${MATLAB_ROOT}/extern/lib/win64/microsoft` -Wl,/link -Wl,/EXPORT:mexFunction -Wl,/DLL"
     388                                        MEXLINKFLAGS="-Wl,/LIBPATH:`cygpath -m ${MATLAB_ROOT}/extern/lib/win64/microsoft` -Wl,/link -Wl,/EXPORT:mexFunction -Wl,/DLL"
    375389                                        MEXEXT=".mexw64"
    376390                                elif test "${VENDOR}" == "MSVC-Win64" || test "${VENDOR}" == "MSVC-Win64-par"; then
    377391                                        MEXLIB="-Wl,libmx.lib -Wl,libmex.lib -Wl,libmat.lib ${OSLIBS} -Wl,libf2cblas.lib -Wl,libf2clapack.lib"
    378                                         MEXLINK="-Wl,/link -Wl,/LIBPATH:`cygpath -m ${MATLAB_ROOT}/extern/lib/win64/microsoft` -Wl,/link -Wl,/EXPORT:mexFunction -Wl,/DLL"
     392                                        MEXLINKFLAGS="-Wl,/link -Wl,/LIBPATH:`cygpath -m ${MATLAB_ROOT}/extern/lib/win64/microsoft` -Wl,/link -Wl,/EXPORT:mexFunction -Wl,/DLL"
    379393                                        MATLABINCL="-I`cygpath -m ${MATLAB_ROOT}/extern/include`"
    380394                                        MEXEXT=".mexw64"
    381395                                fi
    382396                        ;;
     397                        *mingw*)
     398                                if test "${IS_MSYS2}" == "yes"; then
     399                                        dnl Value to set MEXEXT to can be found on Windows by running $MATLAB_ROOT/bin/mexext.bat
     400                                        MEXEXT=".mexw64"
     401                                        MATLABINCL="-I${MATLAB_ROOT}/extern/include"
     402                                        MEXOPTFLAGS="-O2 -fwrapv -DNDEBUG -g"
     403                                        MEXCFLAGS="-fexceptions -fno-omit-frame-pointer -m64 -DMATLAB_MEX_FILE"
     404                                        MEXCXXFLAGS="-fexceptions -fno-omit-frame-pointer -std=c++11 -m64 -DMATLAB_MEX_FILE"
     405                                        MEXLINKFLAGS="-m64 -Wl,--no-undefined -shared -static -Wl,${MATLAB_ROOT}/extern/lib/win64/mingw64/mexFunction.def"
     406                                        MEXLIB_DIR="${MATLAB_ROOT}/extern/lib/win64/mingw64"
     407                                        MEXLIB="-L${MEXLIB_DIR} -lmx -lmex -lmat -lm -lmwlapack -lmwblas"
     408                                fi
     409                        ;;
     410                        *msys*)
     411                                dnl Value to set MEXEXT to can be found on Windows by running $MATLAB_ROOT/bin/mexext.bat
     412                                MEXEXT=".mexw64"
     413                                MATLABINCL="-I${MATLAB_ROOT}/extern/include"
     414                                MEXOPTFLAGS="-O2 -fwrapv -DNDEBUG -g"
     415                                MEXCFLAGS="-fexceptions -fno-omit-frame-pointer -m64 -DMATLAB_MEX_FILE"
     416                                MEXCXXFLAGS="-fexceptions -fno-omit-frame-pointer -std=c++11 -m64 -DMATLAB_MEX_FILE"
     417                                MEXLINKFLAGS="-m64 -Wl,--no-undefined -shared -static -Wl,${MATLAB_ROOT}/extern/lib/win64/mingw64/mexFunction.def"
     418                                MEXLIB_DIR="${MATLAB_ROOT}/extern/lib/win64/mingw64"
     419                                MEXLIB="-L${MEXLIB_DIR} -lmx -lmex -lmat -lm -lmwlapack -lmwblas"
     420                        ;;
    383421                        *)
     422                                MEXEXT=$(${MATLAB_ROOT}/bin/mex -v 2>&1 < /dev/null | grep LDEXTENSION | sed -e "s/         LDEXTENSION        = //g")
    384423                                MATLABINCL="-I${MATLAB_ROOT}/extern/include"
    385                                 MEXLINK=$(${MATLAB_ROOT}/bin/mex -v 2>&1 < /dev/null | grep LDFLAGS | sed -e "s/         LDFLAGS            = //g")
     424                                MEXLINKFLAGS=$(${MATLAB_ROOT}/bin/mex -v 2>&1 < /dev/null | grep LDFLAGS | sed -e "s/         LDFLAGS            = //g")
    386425                                MEXLIB=$(${MATLAB_ROOT}/bin/mex -v 2>&1 < /dev/null | grep CXXLIBS | sed -e "s/         CXXLIBS            = //g")
    387                                 MEXEXT=$(${MATLAB_ROOT}/bin/mex -v 2>&1 < /dev/null | grep LDEXTENSION | sed -e "s/         LDEXTENSION        = //g")
    388                                 dnl version 2014 and up
    389426                                if test -z "${MEXEXT}"; then
    390427                                        echo "#include <mex.h>" > conftest.cpp
     
    392429                                        ${MATLAB_ROOT}/bin/mex -v -lmex conftest.cpp > conftest.tmp 2>&1
    393430                                        rm -f conftest.cpp
    394                                         MEXLINK=$(cat conftest.tmp | grep LDFLAGS | sed -e "s/LDFLAGS ://g")
     431                                        MEXLINKFLAGS=$(cat conftest.tmp | grep LDFLAGS | sed -e "s/LDFLAGS ://g")
    395432                                        MEXLIB=$(cat conftest.tmp | grep LINKLIBS | sed -e "s/LINKLIBS ://g")
    396433                                        MEXEXT=$(cat conftest.tmp | grep LDEXT | sed -e "s/LDEXT ://g" | awk '{print $[1]}')
     
    402439
    403440                                dnl Make sure mexFunction.map is not in MEXLIB to avoid problems with global variables
    404                                 dnl MEXLINK=$(echo ${MEXLINK} | sed -e "s/,-expo.*mexFunction\\.map\"//g" | sed -e "s/-[[^ ]]*mexFunction\\.map//g")
    405                                 MEXLINK="" dnl We actually don't need MEXLINK????
     441                                dnl MEXLINKFLAGS=$(echo ${MEXLINKFLAGS} | sed -e "s/,-expo.*mexFunction\\.map\"//g" | sed -e "s/-[[^ ]]*mexFunction\\.map//g")
     442                                MEXLINKFLAGS="" dnl We actually don't need MEXLINK????
    406443                        ;;
    407444                esac
     
    411448                fi
    412449
     450                AC_SUBST([MEXEXT])
     451                AC_SUBST([MEXOPTFLAGS])
     452                AC_SUBST([MEXCFLAGS])
     453                AC_SUBST([MEXCXXFLAGS])
    413454                AC_SUBST([MATLABINCL])
    414                 MATLABWRAPPEREXT=${MEXEXT}
    415                 AC_SUBST([MATLABWRAPPEREXT])
     455                AC_SUBST([MEXLINKFLAGS])
    416456                AC_SUBST([MEXLIB])
    417                 AC_SUBST([MEXLINK])
    418457        fi
    419458        dnl }}}
    420459        dnl JavaScript{{{
     460        AC_MSG_CHECKING([for JavaScript])
    421461        AC_ARG_WITH(
    422462                [javascript],
     
    425465                [JAVASCRIPT="no"]
    426466        )
    427         AC_MSG_CHECKING([for JavaScript])
    428467        if test "x${JAVASCRIPT}" == "xno"; then
    429468                HAVE_JAVASCRIPT=no
     
    438477        dnl }}}
    439478        dnl Triangle {{{
     479        AC_MSG_CHECKING([for triangle])
    440480        AC_ARG_WITH(
    441481                [triangle-dir],
     
    444484                [TRIANGLE_ROOT="no"]
    445485        )
    446         AC_MSG_CHECKING([for triangle])
    447486        if test "x${TRIANGLE_ROOT}" == "xno"; then
    448487                HAVE_TRIANGLE=no
     
    483522                                fi
    484523                        ;;
     524                        *mingw*)
     525                                if test "x${HAVE_JAVASCRIPT}" == "xyes"; then
     526                                        dnl Link to the object file, not the library
     527                                        TRIANGLELIB=${TRIANGLE_ROOT}/share/triangle.o
     528                                else
     529                                        TRIANGLELIB="-L${TRIANGLE_ROOT}/lib -ltriangle"
     530                                fi
     531                        ;;
     532                        *msys*)
     533                                if test "x${HAVE_JAVASCRIPT}" == "xyes"; then
     534                                        dnl Link to the object file, not the library
     535                                        TRIANGLELIB=${TRIANGLE_ROOT}/share/triangle.o
     536                                else
     537                                        TRIANGLELIB="-L${TRIANGLE_ROOT}/lib -ltriangle"
     538                                fi
     539                        ;;
    485540                esac
    486541                AC_DEFINE([_HAVE_TRIANGLE_], [1], [with Triangle in ISSM src])
     
    490545        dnl }}}
    491546        dnl Boost{{{
     547        AC_MSG_CHECKING([for Boost])
    492548        AC_ARG_WITH(
    493549                [boost-dir],
     
    496552                [BOOST_ROOT="no"]
    497553        )
    498         AC_MSG_CHECKING([for Boost])
    499554        if test "x${BOOST_ROOT}" == "xno"; then
    500555                HAVE_BOOST=no
     
    523578        dnl }}}
    524579        dnl Dakota{{{
     580        AC_MSG_CHECKING([for Dakota])
    525581        AC_ARG_WITH(
    526582                [dakota-dir],
     
    529585                [DAKOTA_ROOT="no"]
    530586        )
    531         AC_MSG_CHECKING([for Dakota])
    532587        if test "x${DAKOTA_ROOT}" == "xno"; then
    533588                HAVE_DAKOTA=no
     
    546601
    547602                AC_MSG_CHECKING(for Dakota version)
    548                 dnl TODO:       Check if this method applies to all other versions of
    549                 dnl                     Dakota (it should as long as the Dakota binaries have been
    550                 dnl             compiled). If so, we can remove the other methods of
    551                 dnl                     getting the version.
     603                dnl TODO:
     604                dnl - Check if this method applies to all other versions of Dakota (it
     605                dnl   should as long as the Dakota binaries have been compiled). If so,
     606                dnl   we can remove the other methods of getting the version.
     607                dnl - Modify src/wrappers/IssmConfig/IssmConfig.cpp so that strlen is
     608                dnl   not called with _DAKOTA_VERSION_ as an argument so that we can
     609                dnl   do,
     610                dnl
     611                dnl     AC_DEFINE_UNQUOTED([_DAKOTA_VERSION_], ${DAKOTA_VERSION}, [Dakota version number])
    552612                dnl
    553613                DAKOTA_VERSION_OUTPUT=`${DAKOTA_ROOT}/bin/dakota -v`
     
    679739                AC_MSG_CHECKING(for Dakota major version)
    680740                AC_MSG_RESULT(${DAKOTA_MAJOR})
    681                 AC_DEFINE_UNQUOTED(_DAKOTA_MAJOR_, $DAKOTA_MAJOR, [Dakota major version number])
     741                AC_DEFINE_UNQUOTED([_DAKOTA_MAJOR_], ${DAKOTA_MAJOR}, [Dakota major version number])
    682742                AC_MSG_CHECKING(for Dakota minor version)
    683743                AC_MSG_RESULT(${DAKOTA_MINOR})
    684                 AC_DEFINE_UNQUOTED(_DAKOTA_MINOR_, $DAKOTA_MINOR, [Dakota minor version number])
     744                AC_DEFINE_UNQUOTED([_DAKOTA_MINOR_], ${DAKOTA_MINOR}, [Dakota minor version number])
    685745                AC_MSG_CHECKING(for Dakota build version)
    686746                AC_MSG_RESULT(${DAKOTA_BUILD})
    687                 AC_DEFINE_UNQUOTED(_DAKOTA_BUILD_, $DAKOTA_BUILD, [Dakota build version number])
     747                AC_DEFINE_UNQUOTED([_DAKOTA_BUILD_], ${DAKOTA_BUILD}, [Dakota build version number])
    688748
    689749                AC_DEFINE([_HAVE_DAKOTA_], [1], [with Dakota in ISSM src])
     
    695755        dnl }}}
    696756        dnl Python{{{
     757        AC_MSG_CHECKING([for Python])
    697758        AC_ARG_WITH(
    698759                [python-dir],
     
    708769                [PYTHON_VERSION="no"]
    709770        )
    710         AC_MSG_CHECKING([for Python])
    711771        if test "x${PYTHON_ROOT}" == "xno"; then
    712772                HAVE_PYTHON=no
     
    735795                dnl Determine major version
    736796                PYTHON_MAJOR=${PYTHON_VERSION%.*}
    737                 AC_DEFINE_UNQUOTED(_PYTHON_MAJOR_, $PYTHON_MAJOR, [Python version major])
     797                AC_DEFINE_UNQUOTED([_PYTHON_MAJOR_], ${PYTHON_MAJOR}, [Python version major])
    738798                if test "x${PYTHON_MAJOR}" == "x3"; then
    739799                        HAVE_PYTHON3="yes"
     
    751811                        PYTHONINCL=-I${PYTHON_ROOT}/include/python${PYTHON_VERSION}m
    752812                else
    753                         AC_MSG_ERROR([Python.h not found, locate this file and contact ISSM developers]);
     813                        AC_MSG_ERROR([Python.h not found! Please locate this file and contact ISSM developers via forum or email.]);
    754814                fi
    755815                AC_MSG_RESULT([found])
     
    764824                                PYTHONLINK="-shared"
    765825                        ;;
     826                        *darwin*)
     827                                PYTHONLINK="-dynamiclib"
     828                        ;;
    766829                        *linux*)
    767830                                PYTHONLINK="-shared"
    768831                        ;;
    769                         *darwin*)
    770                                 PYTHONLINK="-dynamiclib"
     832                        *mingw*)
     833                                PYTHONLINK="-shared"
     834                        ;;
     835                        *msys*)
     836                                PYTHONLINK="-shared"
    771837                        ;;
    772838                esac
     
    781847        dnl }}}
    782848        dnl NumPy{{{
    783         dnl TODO:
    784         dnl - Replace references to python-numpy with numpy (and similar terms)
    785         dnl       project-wide
    786         dnl
    787         AC_ARG_WITH(
    788                 [python-numpy-dir],
    789                 AS_HELP_STRING([--with-python-numpy-dir=DIR], [python-numpy root directory]),
    790                 [PYTHON_NUMPY_ROOT=${withval}],
    791                 [PYTHON_NUMPY_ROOT="no"]
    792         )
    793 
    794849        dnl NOTE: You can find NumPy by running,
    795850        dnl
     
    797852        dnl             >>> numpy.__file__
    798853        dnl
    799 
     854        dnl TODO:
     855        dnl - Replace references to python-numpy with numpy (and similar terms)
     856        dnl       project-wide
     857        dnl
    800858        AC_MSG_CHECKING(for python-numpy)
     859        AC_ARG_WITH(
     860                [python-numpy-dir],
     861                AS_HELP_STRING([--with-python-numpy-dir=DIR], [python-numpy root directory]),
     862                [PYTHON_NUMPY_ROOT=${withval}],
     863                [PYTHON_NUMPY_ROOT="no"]
     864        )
    801865        if test "x${PYTHON_NUMPY_ROOT}" == "xno"; then
    802866                HAVE_PYTHON_NUMPY=no
     
    817881        dnl }}}
    818882        dnl Chaco{{{
     883        AC_MSG_CHECKING([for Chaco])
    819884        AC_ARG_WITH(
    820885                [chaco-dir],
     
    823888                [CHACO_ROOT="no"]
    824889        )
    825         AC_MSG_CHECKING([for Chaco])
    826890        if test "x${CHACO_ROOT}" == "xno"; then
    827891                HAVE_CHACO=no
     
    845909        dnl }}}
    846910        dnl ESMF{{{
     911        AC_MSG_CHECKING([for ESMF])
    847912        AC_ARG_WITH(
    848913                [esmf-dir],
     
    851916                [ESMF_ROOT="no"]
    852917        )
    853         AC_MSG_CHECKING([for ESMF])
    854918        if test "x${ESMF_ROOT}" == "xno"; then
    855919                HAVE_ESMF=no
     
    873937        dnl }}}
    874938        dnl CoDiPack{{{
     939        AC_MSG_CHECKING([for CoDiPack])
    875940        AC_ARG_WITH(
    876941                [codipack-dir],
     
    879944                [CODIPACK_ROOT="no"]
    880945        )
    881         AC_MSG_CHECKING([for CoDiPack])
    882946        if test "x${CODIPACK_ROOT}" == "xno"; then
    883947                HAVE_CODIPACK=no
     
    901965        dnl }}}
    902966        dnl Tape Allocation {{{
     967        AC_MSG_CHECKING(for tape allocation)
    903968        AC_ARG_ENABLE(
    904969                [tape-alloc],                                                                                                                           dnl feature
     
    907972                [enable_tape_alloc=no]
    908973        )
    909         AC_MSG_CHECKING(for tape allocation)
    910974        if test "x${enable_tape_alloc}" == "xyes"; then
    911975                AC_DEFINE([_AD_TAPE_ALLOC_], [1], [enable a priori tape allocation for AD])
     
    914978        dnl }}}
    915979        dnl ADOL-C {{{
     980        AC_MSG_CHECKING([for ADOL-C])
    916981        AC_ARG_WITH(
    917982                [adolc-dir],
     
    920985                [ADOLC_ROOT="no"]
    921986        )
    922         AC_MSG_CHECKING([for ADOL-C])
    923987        if test "x${ADOLC_ROOT}" == "xno"; then
    924988                HAVE_ADOLC=no
     
    9451009        dnl }}}
    9461010        dnl ADOL-C version{{{
     1011        AC_MSG_CHECKING(for ADOL-C version)
    9471012        AC_ARG_WITH(
    9481013                [adolc-version],
     
    9511016                [ADOLC_VERSION=2]
    9521017        )
    953         AC_MSG_CHECKING(for ADOL-C version)
    954 
    955         AC_DEFINE_UNQUOTED(_ADOLC_VERSION_, $ADOLC_VERSION, [ADOL-C version])
     1018        AC_DEFINE_UNQUOTED([_ADOLC_VERSION_], ${ADOLC_VERSION}, [ADOL-C version])
    9561019        AC_MSG_RESULT(${ADOLC_VERSION})
    9571020        dnl }}}
    9581021        dnl ADIC2 {{{
     1022        AC_MSG_CHECKING([for ADIC2])
    9591023        AC_ARG_WITH(
    9601024                [adic2-dir],
     
    9631027                [ADIC2_ROOT="no"]
    9641028        )
    965         AC_MSG_CHECKING([for ADIC2])
    9661029        if test "x${ADIC2_ROOT}" == "xno"; then
    9671030                HAVE_ADIC2=no
     
    9851048        dnl }}}
    9861049        dnl ATLAS {{{
     1050        AC_MSG_CHECKING(for ATLAS and CBLAS libraries)
    9871051        AC_ARG_WITH(
    9881052                [atlas-dir],
     
    9911055                [ATLAS_ROOT="no"]
    9921056        )
    993         AC_MSG_CHECKING(for ATLAS and CBLAS libraries)
    9941057        if test "x${ATLAS_ROOT}" == "xno"; then
    9951058                HAVE_ATLAS=no
     
    10081071                                ATLASLIB="-L`cygpath -m ${ATLAS_ROOT}` -Wl,libatlas.lib  -Wl,libcblas.lib"
    10091072                        ;;
     1073                        *darwin*)
     1074                                ATLASLIB="-L${ATLAS_ROOT}/lib -lcblas -latlas -lm"
     1075                        ;;
    10101076                        *linux*)
    1011                                 ATLASLIB="-L${ATLAS_ROOT}/lib -lcblas -latlas -lm "
    1012                         ;;
    1013                         *darwin*)
    1014                                 ATLASLIB="-L${ATLAS_ROOT}/lib -lcblas -latlas -lm "
     1077                                ATLASLIB="-L${ATLAS_ROOT}/lib -lcblas -latlas -lm"
     1078                        ;;
     1079                        *mingw*)
     1080                                ATLASLIB="-L${ATLAS_ROOT}/lib -lcblas -latlas -lm"
     1081                        ;;
     1082                        *msys*)
     1083                                ATLASLIB="-L${ATLAS_ROOT}/lib -lcblas -latlas -lm"
    10151084                        ;;
    10161085                esac
     
    10201089        dnl }}}
    10211090        dnl GSL{{{
     1091        AC_MSG_CHECKING([for GSL])
    10221092        AC_ARG_WITH(
    10231093                [gsl-dir],
     
    10261096                [GSL_ROOT="no"]
    10271097        )
    1028         AC_MSG_CHECKING([for GSL])
    10291098        if test "x${GSL_ROOT}" == "xno"; then
    10301099                HAVE_GSL=no
     
    10521121        dnl }}}
    10531122        dnl AMPI (ADOL-C){{{
     1123        AC_MSG_CHECKING([for AMPI])
    10541124        AC_ARG_WITH(
    10551125                [ampi-dir],
     
    10581128                [AMPI_ROOT="no"]
    10591129        )
    1060         AC_MSG_CHECKING([for AMPI])
    10611130        if test "x${AMPI_ROOT}" == "xno"; then
    10621131                HAVE_AMPI=no
     
    10881157        dnl }}}
    10891158        dnl Adjoint MPI (CoDiPack){{{
     1159        AC_MSG_CHECKING([for Adjoint MPI])
    10901160        AC_ARG_WITH(
    10911161                [adjointmpi-dir],
     
    10941164                [ADJOINTMPI_ROOT="no"]
    10951165        )
    1096         AC_MSG_CHECKING([for Adjoint MPI])
    10971166        if test "x${ADJOINTMPI_ROOT}" == "xno"; then
    10981167                HAVE_ADJOINTMPI=no
     
    11221191        dnl }}}
    11231192        dnl MeDiPack (CoDiPack, ADOL-C dev){{{
     1193        AC_MSG_CHECKING([for MeDiPack])
    11241194        AC_ARG_WITH(
    11251195                [medipack-dir],
     
    11281198                [MEDIPACK_ROOT="no"]
    11291199        )
    1130         AC_MSG_CHECKING([for MeDiPack])
    11311200        if test "x${MEDIPACK_ROOT}" == "xno"; then
    11321201                HAVE_MEDIPACK=no
     
    11541223        dnl }}}
    11551224        dnl HDF5 {{{
     1225        AC_MSG_CHECKING(for HDF5 libraries)
    11561226        AC_ARG_WITH(
    11571227                [hdf5-dir],
     
    11601230                [HDF5_ROOT="no"]
    11611231        )
    1162         AC_MSG_CHECKING(for HDF5 libraries)
    11631232        if test "x${HDF5_ROOT}" == "xno"; then
    11641233                HAVE_HDF5=no
     
    11811250                                HDF5LIB="-L`cygpath -m ${HDF5_ROOT}` -Wl,libhdf5.lib  -Wl,libhdf5_hl.lib"
    11821251                        ;;
     1252                        *darwin*)
     1253                                HDF5LIB="-L${HDF5_ROOT}/lib -lhdf5 -lhdf5_hl"
     1254                        ;;
    11831255                        *linux*)
    11841256                                HDF5LIB="-L${HDF5_ROOT}/lib -lhdf5 -lhdf5_hl"
    11851257                        ;;
    1186                         *darwin*)
     1258                        *mingw*)
     1259                                HDF5LIB="-L${HDF5_ROOT}/lib -lhdf5 -lhdf5_hl"
     1260                        ;;
     1261                        *msys*)
    11871262                                HDF5LIB="-L${HDF5_ROOT}/lib -lhdf5 -lhdf5_hl"
    11881263                        ;;
     
    11931268        dnl }}}
    11941269        dnl PETSc{{{
     1270        AC_MSG_CHECKING([for PETSc])
    11951271        AC_ARG_WITH(
    11961272                [petsc-dir],
     
    11991275                [PETSC_ROOT="no"]
    12001276        )
    1201         AC_MSG_CHECKING([for PETSc])
    12021277        if test "x${PETSC_ROOT}" == "xno"; then
    12031278                HAVE_PETSC=no
     
    12201295                PETSC_MAJOR=`cat ${PETSC_ROOT}/include/petscversion.h | grep "#define PETSC_VERSION_MAJOR" | sed 's/#define PETSC_VERSION_MAJOR//' | sed 's/ //g'`
    12211296                PETSC_MINOR=`cat ${PETSC_ROOT}/include/petscversion.h | grep "#define PETSC_VERSION_MINOR" | sed 's/#define PETSC_VERSION_MINOR//' | sed 's/ //g'`
    1222                 AC_DEFINE_UNQUOTED([_PETSC_MAJOR_], [$PETSC_MAJOR], [PETSc version major])
    1223                 AC_DEFINE_UNQUOTED([_PETSC_MINOR_], [$PETSC_MINOR], [PETSc version minor])
     1297                AC_DEFINE_UNQUOTED([_PETSC_MAJOR_], ${PETSC_MAJOR}, [PETSc version major])
     1298                AC_DEFINE_UNQUOTED([_PETSC_MINOR_], ${PETSC_MINOR}, [PETSc version minor])
    12241299                AC_MSG_RESULT([${PETSC_MAJOR}.${PETSC_MINOR}])
    12251300
     
    12621337                                        PETSCLIB="/link -Wl,/LIBPATH:`cygpath -m ${PETSC_ROOT}/lib` -Wl,libpetsc.lib"
    12631338                                        PETSCINCL="/I`cygpath -m ${PETSC_ROOT}/include`"
     1339                                fi
     1340                        ;;
     1341                        *darwin*)
     1342                                if test ${PETSC_MAJOR} -lt 3; then
     1343                                        PETSCLIB="-L${PETSC_ROOT}/lib -lpetscksp -lpetscdm -lpetscmat -lpetscvec -lpetscsnes -lpetscts -lpetsc"
     1344                                else
     1345                                        PETSCLIB="-L${PETSC_ROOT}/lib -lpetsc"
     1346                                        if test ${PETSC_MAJOR} -gt 3 || test ${PETSC_MINOR} -ge 3; then
     1347                                                PETSCLIB+=" -lmetis"
     1348                                        fi
    12641349                                fi
    12651350                        ;;
     
    12801365                                fi
    12811366                        ;;
    1282                         *darwin*)
    1283                                 if test ${PETSC_MAJOR} -lt 3; then
    1284                                         PETSCLIB="-L${PETSC_ROOT}/lib -lpetscksp -lpetscdm -lpetscmat -lpetscvec -lpetscsnes -lpetscts -lpetsc"
    1285                                 else
    1286                                         PETSCLIB="-L${PETSC_ROOT}/lib -lpetsc"
    1287                                         if test ${PETSC_MAJOR} -gt 3 || test ${PETSC_MINOR} -ge 3; then
    1288                                                 PETSCLIB+=" -lmetis"
    1289                                         fi
    1290                                 fi
     1367                        *mingw*)
     1368                                PETSCLIB="-Wl,${PETSC_ROOT}/lib/libpetsc.a"
     1369                        ;;
     1370                        *msys*)
     1371                                PETSCLIB="${PETSC_ROOT}/lib -lpetsc"
    12911372                        ;;
    12921373                esac
     
    12991380        dnl MPI{{{
    13001381        AC_MSG_CHECKING(for MPI)
    1301 
    13021382        AC_ARG_WITH(
    13031383                [mpi-include],
     
    13061386                [MPI_INCLUDE=""]
    13071387        )
    1308 
    13091388        AC_ARG_WITH(
    13101389                [mpi-libdir],
     
    13131392                [MPI_LIBDIR=""]
    13141393        )
    1315 
    13161394        AC_ARG_WITH(
    13171395                [mpi-libflags],
     
    13201398                [MPI_LIBFLAGS=""]
    13211399        )
    1322 
    13231400        if test -z "${MPI_INCLUDE}"; then
    13241401                HAVE_MPI=no
     
    13631440        dnl }}}
    13641441        dnl SCOTCH{{{
     1442        AC_MSG_CHECKING([for SCOTCH])
    13651443        AC_ARG_WITH(
    13661444                [scotch-dir],
     
    13691447                [SCOTCH_ROOT="no"]
    13701448        )
    1371         AC_MSG_CHECKING([for SCOTCH])
    13721449        if test "x${SCOTCH_ROOT}" == "xno"; then
    13731450                HAVE_SCOTCH=no
     
    14021479        dnl }}}
    14031480        dnl METIS{{{
    1404 
    1405         dnl NOTE: We know $VENDOR cannot be empty at this point, so no need to
    1406         dnl               check again in the following conditionals
    1407         dnl
    1408         if test "x${HAVE_PETSC}" == "xyes" && test "x${PETSC_MAJOR}" == "x3" && test ${PETSC_MINOR} -ge 3 && test "${VENDOR}" != "MSVC-Win64" && test "${VENDOR}" != "MSVC-Win64-par"; then
    1409                 dnl In PETSc >=3.3, METIS is provided
    1410                 HAVE_METIS="yes"
    1411                 AC_DEFINE([_METIS_VERSION_], [5], [METIS version number])
     1481        AC_MSG_CHECKING([for METIS])
     1482        AC_ARG_WITH(
     1483                [metis-dir],
     1484                AS_HELP_STRING([--with-metis-dir=DIR], [METIS root directory, necessary for serial build]),
     1485                [METIS_ROOT=${withval}],
     1486                [METIS_ROOT="no"]
     1487        )
     1488        HAVE_METIS=no
     1489        if test "x${METIS_ROOT}" == "xno"; then
     1490                dnl Check if METIS was installed via PETSc
     1491                if test -f ${PETSC_ROOT}/install/include/metis.h; then
     1492                        HAVE_METIS=yes
     1493                        METIS_ROOT="${PETSC_ROOT}"
     1494                fi
     1495        else
     1496                if ! test -d "${METIS_ROOT}"; then
     1497                        AC_MSG_ERROR([METIS directory provided (${METIS_ROOT}) does not exist!]);
     1498                fi
     1499                HAVE_METIS=yes
     1500        fi
     1501        if test "${HAVE_METIS}" = "yes"; then
     1502                METIS_VERSION=$(grep "#define METIS_VER_MAJOR" ${METIS_ROOT}/include/metis.h | sed 's|.*METIS_VER_MAJOR[[:space:]]*||')
     1503                dnl METIS libraries and header files
     1504                if test "x${METIS_VERSION}" == "x4"; then
     1505                        METISINCL="-I${METIS_ROOT}/Lib"
     1506                        case "${host_os}" in
     1507                                *cygwin*)
     1508                                        METISINCL="/I`cygpath -m ${METIS_ROOT}/Lib`"
     1509                                        METISLIB="-Wl,/link -Wl,/LIBPATH:`cygpath -m ${METIS_ROOT}` -Wl,libmetis.lib"
     1510                                ;;
     1511                                *darwin*)
     1512                                        METISLIB="-L${METIS_ROOT} -lmetis"
     1513                                ;;
     1514                                *linux*)
     1515                                        METISLIB="-L${METIS_ROOT} -lmetis"
     1516                                ;;
     1517                                *mingw*)
     1518                                        METISLIB="-Wl,${METIS_ROOT}/lib/libmetis.a"
     1519                                ;;
     1520                                *msys*)
     1521                                        METISLIB="-L${METIS_ROOT} -lmetis"
     1522                                ;;
     1523                        esac
     1524                elif test "x${METIS_VERSION}" == "x5"; then
     1525                        METISINCL="-I${METIS_ROOT}/include"
     1526                        case "${host_os}" in
     1527                                *cygwin*)
     1528                                        METISLIB="-L${METIS_ROOT} libmetis.lib"
     1529                                ;;
     1530                                *darwin*)
     1531                                        METISLIB="-L${METIS_ROOT}/lib -lmetis"
     1532                                ;;
     1533                                *linux*)
     1534                                        METISLIB="-L${METIS_ROOT}/lib -lmetis"
     1535                                ;;
     1536                                *mingw*)
     1537                                        METISLIB="-Wl,${METIS_ROOT}/lib/libmetis.a"
     1538                                ;;
     1539                                *msys*)
     1540                                        METISLIB="-L${METIS_ROOT}/lib -lmetis"
     1541                                ;;
     1542                        esac
     1543                else
     1544                        AC_MSG_ERROR([METIS version ${METIS_VERSION} not yet supported! Please contact ISSM developers via forum or email.])
     1545                fi
    14121546                AC_DEFINE([_HAVE_METIS_], [1], [with METIS in ISSM src])
    1413         else
    1414                 AC_ARG_WITH(
    1415                         [metis-dir],
    1416                         AS_HELP_STRING([--with-metis-dir=DIR], [METIS root directory, necessary for serial build]),
    1417                         [METIS_ROOT=${withval}],
    1418                         [METIS_ROOT="no"]
    1419                 )
    1420                 AC_MSG_CHECKING([for METIS])
    1421                 if test "x${METIS_ROOT}" == "xno"; then
    1422                         HAVE_METIS=no
    1423                 else
    1424                         HAVE_METIS=yes
    1425                         if ! test -d "${METIS_ROOT}"; then
    1426                                 AC_MSG_ERROR([METIS directory provided (${METIS_ROOT}) does not exist!]);
    1427                         fi
    1428                 fi
    1429                 AC_MSG_RESULT([${HAVE_METIS}])
    1430                 AM_CONDITIONAL([METIS], [test "x${HAVE_METIS}" == "xyes"])
    1431 
     1547                AC_DEFINE_UNQUOTED([_METIS_VERSION_], ${METIS_VERSION}, [METIS version number])
     1548                AC_SUBST([METISINCL])
     1549                AC_SUBST([METISLIB])
     1550        fi
     1551        AC_MSG_RESULT([${HAVE_METIS}])
     1552        AM_CONDITIONAL([METIS], [test "x${HAVE_METIS}" = "xyes"])
     1553        dnl }}}
     1554        dnl ParMETIS{{{
     1555        AC_MSG_CHECKING([for ParMETIS])
     1556        AC_ARG_WITH(
     1557                [parmetis-dir],
     1558                AS_HELP_STRING([--with-parmetis-dir=DIR], [ParMETIS root directory, necessary for parallel build]),
     1559                [PARMETIS_ROOT=${withval}],
     1560                [PARMETIS_ROOT="no"]
     1561        )
     1562        HAVE_PARMETIS=no
     1563        if test "x${PARMETIS_ROOT}" == "xno"; then
     1564                dnl Check if ParMETIS was installed via PETSc
     1565                if test -f ${PETSC_ROOT}/install/include/parmetis.h; then
     1566                        HAVE_PARMETIS="yes"
     1567                        PARMETIS_ROOT="${PETSC_ROOT}"
     1568                fi
     1569        else
     1570                if ! test -d "${PARMETIS_ROOT}"; then
     1571                        AC_MSG_ERROR([ParMETIS directory provided (${PARMETIS_ROOT}) does not exist!]);
     1572                fi
     1573                if ! test -d "${METIS_ROOT}"; then
     1574                        AC_MSG_ERROR([If supplying path to ParMETIS with option --with-parmetis-dir, must also supply path to METIS with option --with-metis-dir]);
     1575                fi
     1576                HAVE_PARMETIS="yes"
     1577        fi
     1578        if test "${HAVE_PARMETIS}" == "yes"; then
     1579                #PARMETIS_VERSION=$(grep "#define PARMETIS_MAJOR_VERSION" ${PARMETIS_ROOT}/include/parmetis.h | sed 's|.*PARMETIS_MAJOR_VERSION[[:space:]]*||')
    14321580                dnl METIS libraries and header files
    1433                 if test "x${HAVE_METIS}" == "xyes"; then
    1434                         dnl Retrieve METIS version (does the VERSION file exist?)
    1435                         if test -f "${METIS_ROOT}/VERSION"; then
    1436                                 METIS_VERSION=4
    1437                         else
    1438                                 METIS_VERSION=5
    1439                         fi
    1440 
    1441                         if test "x${METIS_VERSION}" == "x4"; then
    1442                                 METISINCL="-I${METIS_ROOT}/Lib"
    1443                                 case "${host_os}" in
    1444                                         *cygwin*)
    1445                                                 METISINCL="/I`cygpath -m ${METIS_ROOT}/Lib`"
    1446                                                 METISLIB="-Wl,/link -Wl,/LIBPATH:`cygpath -m ${METIS_ROOT}` -Wl,libmetis.lib"
    1447                                         ;;
    1448                                         *linux*)
    1449                                                 METISLIB="-L${METIS_ROOT} -lparmetis -lmetis"
    1450                                         ;;
    1451                                         *darwin*)
    1452                                                 METISLIB="-L${METIS_ROOT} -lparmetis -lmetis"
    1453                                         ;;
    1454                                 esac
    1455                                 AC_DEFINE([_METIS_VERSION_], [4], [ METIS version number])
    1456                         fi
    1457 
    1458                         if test "x${METIS_VERSION}" == "x5"; then
    1459                                 case "${host_os}" in
    1460                                         *cygwin*)
    1461                                                 METISLIB="-L${METIS_ROOT} libmetis.lib"
    1462                                         ;;
    1463                                         *linux*)
    1464                                                 METISLIB="-L${METIS_ROOT}/lib -lparmetis -lmetis"
    1465                                         ;;
    1466                                         *darwin*)
    1467                                                 METISLIB="-L${METIS_ROOT}/lib -lparmetis -lmetis"
    1468                                         ;;
    1469                                 esac
    1470                                 METISINCL="-I${METIS_ROOT}/include"
    1471                                 AC_DEFINE([_METIS_VERSION_], [5], [METIS version number])
    1472                         fi
    1473 
    1474                         AC_DEFINE([_HAVE_METIS_], [1], [with METIS in ISSM src])
    1475                         AC_SUBST([METISINCL])
    1476                         AC_SUBST([METISLIB])
    1477                 fi
    1478         fi
    1479         AM_CONDITIONAL([METIS], [test "x${HAVE_METIS}" == "xyes"])
     1581                #if test "x${PARMETIS_VERSION}" == "x4"; then
     1582                        PARMETISINCL="-I${PARMETIS_ROOT}/include"
     1583                        case "${host_os}" in
     1584                                *cygwin*)
     1585                                        PARMETISLIB="-L${PARMETIS_ROOT}/lib -lparmetis"
     1586                                ;;
     1587                                *darwin*)
     1588                                        PARMETISLIB="-L${PARMETIS_ROOT}/lib -lparmetis"
     1589                                ;;
     1590                                *linux*)
     1591                                        PARMETISLIB="-L${PARMETIS_ROOT}/lib -lparmetis"
     1592                                ;;
     1593                                *mingw*)
     1594                                        PARMETISLIB="-Wl,${PARMETIS_ROOT}/lib/libparmetis.a"
     1595                                ;;
     1596                                *msys*)
     1597                                        PARMETISLIB="-L${PARMETIS_ROOT}/lib -lparmetis"
     1598                                ;;
     1599                        esac
     1600                #else
     1601                #       AC_MSG_ERROR([ParMETIS version ${PARMETIS_VERSION} not yet supported! Please contact ISSM developers via forum or email.])
     1602                #fi
     1603                AC_DEFINE([_HAVE_PARMETIS_], [1], [with ParMETIS in ISSM src])
     1604                #AC_DEFINE([_PARMETIS_VERSION_], [${PARMETIS_VERSION}], [ParMETIS version number])
     1605                AC_SUBST([PARMETISINCL])
     1606                AC_SUBST([PARMETISLIB])
     1607        fi
     1608        AC_MSG_RESULT([${HAVE_PARMETIS}])
     1609        AM_CONDITIONAL([PARMETIS], [test "x${HAVE_PARMETIS}" = "xyes"])
    14801610        dnl }}}
    14811611        dnl Toolkit for Advanced Optimization (TAO){{{
     1612        AC_MSG_CHECKING([for TAO])
    14821613        AC_ARG_WITH(
    14831614                [tao-dir],
     
    14861617                [TAO_ROOT="no"]
    14871618        )
    1488         AC_MSG_CHECKING([for TAO])
    1489 
    14901619        if test "x${HAVE_PETSC}" == "xyes" && test "x${PETSC_MAJOR}" == "x3" && test ${PETSC_MINOR} -ge 5; then
    14911620                dnl In PETSc >= 3.5, TAO is provided
     
    15151644        dnl }}}
    15161645        dnl M1QN3{{{
     1646        AC_MSG_CHECKING([for M1QN3])
    15171647        AC_ARG_WITH(
    15181648                [m1qn3-dir],
     
    15211651                [M1QN3_ROOT="no"]
    15221652        )
    1523         AC_MSG_CHECKING([for M1QN3])
    15241653        if test "x${M1QN3_ROOT}" == "xno"; then
    15251654                HAVE_M1QN3=no
     
    15401669        dnl }}}
    15411670        dnl PROJ{{{
     1671        AC_MSG_CHECKING([for PROJ])
    15421672        AC_ARG_WITH(
    15431673                [proj-dir],
     
    15461676                [PROJ_ROOT="no"]
    15471677        )
    1548         AC_MSG_CHECKING([for PROJ])
    15491678        if test "x${PROJ_ROOT}" == "xno"; then
    15501679                HAVE_PROJ=no
     
    15681697        dnl }}}
    15691698        dnl SLEPc{{{
     1699        AC_MSG_CHECKING([for SLEPc])
    15701700        AC_ARG_WITH(
    15711701                [slepc-dir],
     
    15741704                [SLEPC_ROOT="no"]
    15751705        )
    1576         AC_MSG_CHECKING([for SLEPc])
    15771706        if test "x${SLEPC_ROOT}" == "xno"; then
    15781707                HAVE_SLEPC=no
     
    15951724        dnl }}}
    15961725        dnl shapelib{{{
     1726        AC_MSG_CHECKING([for shapelib])
    15971727        AC_ARG_WITH(
    15981728                [shapelib-dir],
     
    16011731                [SHAPELIB_ROOT="no"]
    16021732        )
    1603         AC_MSG_CHECKING([for shapelib])
    16041733        if test "x${SHAPELIB_ROOT}" == "xno"; then
    16051734                HAVE_SHAPELIB=no
     
    16221751        dnl }}}
    16231752        dnl ScaLAPACK{{{
    1624 
    16251753        dnl NOTE: User should supply path to root directory or libraries, but not both
     1754        dnl
     1755        AC_MSG_CHECKING([for ScaLAPACK])
    16261756        AC_ARG_WITH(
    16271757                [scalapack-dir],
     
    16361766                [SCALAPACKLIB="no"]
    16371767        )
    1638         AC_MSG_CHECKING([for ScaLAPACK])
    16391768        if test "x${SCALAPACK_ROOT}" == "xno" && test "x${SCALAPACKLIB}" == "xno"; then
    16401769                HAVE_SCALAPACK=no
     
    16451774                fi
    16461775                HAVE_SCALAPACK=yes
    1647                 SCALAPACKLIB="-L${SCALAPACK_ROOT}/lib -lscalapack"
     1776                if test "${VENDOR}" == "win-msys2"; then
     1777                        SCALAPACKLIB="-Wl,${SCALAPACK_ROOT}/lib/libscalapack.a"
     1778                else
     1779                        SCALAPACKLIB="-L${SCALAPACK_ROOT}/lib -lscalapack"
     1780                fi
    16481781        elif test "x${SCALAPACKLIB}" != "xno"; then
    16491782                dnl Value of SCALAPACKLIB should be valid here, so no need to set it (as above)
     
    16611794        dnl }}}
    16621795        dnl BLAS/LAPACK{{{
     1796        AC_MSG_CHECKING([for BLAS/LAPACK])
     1797        AC_ARG_WITH(
     1798                [blas-dir],
     1799                [AS_HELP_STRING([--with-blas-dir=DIR], [BLAS root directory])],
     1800                [BLAS_ROOT=$withval],
     1801                [BLAS_ROOT="no"]
     1802        )
     1803        AC_ARG_WITH(
     1804                [lapack-dir],
     1805                [AS_HELP_STRING([--with-lapack-dir=DIR], [LAPACK root directory])],
     1806                [LAPACK_ROOT=$withval],
     1807                [LAPACK_ROOT="no"]
     1808        )
    16631809        AC_ARG_WITH(
    16641810                [blas-lapack-dir],
     
    16671813                [BLASLAPACK_ROOT="no"]
    16681814        )
    1669         AC_MSG_CHECKING([for BLAS/LAPACK])
    1670         if test "x${BLASLAPACK_ROOT}" == "xno" ; then
     1815        if (test "x${BLAS_ROOT}" = "xno" || test "x${LAPACK_ROOT}" = "xno") && test "x${BLASLAPACK_ROOT}" = "xno"; then
    16711816                HAVE_BLASLAPACK=no
    16721817        else
    16731818                HAVE_BLASLAPACK=yes
    1674                 if ! test -d "${BLASLAPACK_ROOT}"; then
    1675                         AC_MSG_ERROR([BLAS/LAPACK directory provided (${BLASLAPACK_ROOT}) does not exist!]);
     1819                if ! test -d "${BLAS_ROOT}" || ! test -d "${LAPACK_ROOT}"; then
     1820                        if ! test -d "${BLASLAPACK_ROOT}"; then
     1821                                AC_MSG_ERROR([Use either --with-blas-dir and --with-lapack-dir *or* --with-blaslapack-dir]);
     1822                        fi
    16761823                fi
    16771824        fi
     
    16801827        dnl BLAS/LAPACK libraries and header files
    16811828        if test "x${HAVE_BLASLAPACK}" == "xyes"; then
    1682                 BLASLAPACKINCL=""
    16831829                case "${host_os}" in
    16841830                        *cygwin*)
     
    17091855                                fi
    17101856                        ;;
     1857                        *mingw*)
     1858                                if test -d "${BLASLAPACK_ROOT}"; then
     1859                                        BLASLAPACKLIB="-L${BLASLAPACK_ROOT}/lib"
     1860                                        if ls ${BLASLAPACK_ROOT}/lib/libopenblas.* 1> /dev/null 2>&1; then
     1861                                                BLASLAPACKLIB+=" -lopenblas"
     1862                                        elif ls ${BLASLAPACK_ROOT}/lib/libf2clapack.* 1> /dev/null 2>&1; then
     1863                                                BLASLAPACKLIB+=" -lf2clapack -lf2cblas"
     1864                                        elif ls ${BLASLAPACK_ROOT}/lib/libflapack.* 1> /dev/null 2>&1; then
     1865                                                BLASLAPACKLIB="-Wl,${BLASLAPACK_ROOT}/lib/libflapack.a -Wl,${BLASLAPACK_ROOT}/lib/libfblas.a"
     1866                                        else
     1867                                                BLASLAPACKLIB+=" -llapack -lblas"
     1868                                        fi
     1869                                else
     1870                                        BLASLAPACKLIB="-Wl,${LAPACK_ROOT}/lib/liblapack.a -Wl,${BLAS_ROOT}/lib/libblas.a"
     1871                                fi
     1872                        ;;
     1873                        *msys*)
     1874                                if test -d "${BLASLAPACK_ROOT}"; then
     1875                                        if ls ${BLASLAPACK_ROOT}/lib/libopenblas.* 1> /dev/null 2>&1; then
     1876                                                BLASLAPACKLIB=" -lopenblas"
     1877                                        elif ls ${BLASLAPACK_ROOT}/lib/libf2clapack.* 1> /dev/null 2>&1; then
     1878                                                BLASLAPACKLIB=" -lf2clapack -lf2cblas"
     1879                                        elif ls ${BLASLAPACK_ROOT}/lib/libflapack.* 1> /dev/null 2>&1; then
     1880                                                BLASLAPACKLIB+=" -lflapack -lfblas"
     1881                                        else
     1882                                                BLASLAPACKLIB=" -llapack -lblas"
     1883                                        fi
     1884                                else
     1885                                        BLASLAPACKLIB="-L${LAPACK_ROOT}/lib -llapack -L${BLAS_ROOT}/lib -lblas"
     1886                                fi
     1887                        ;;
    17111888                esac
    17121889                AC_DEFINE([_HAVE_BLASLAPACK_], [1], [with BLAS/LAPACK in ISSM src])
    17131890                AC_SUBST([BLASLAPACKLIB])
    1714                 AC_SUBST([BLASLAPACKINCL])
    17151891        fi
    17161892        dnl }}}
    17171893        dnl Math Kernel Library (MKL){{{
     1894        AC_MSG_CHECKING([for MKL])
    17181895        AC_ARG_WITH(
    17191896                [mkl-libflags],
     
    17221899                [MKL_LIBFLAGS="no"]
    17231900        )
    1724         AC_MSG_CHECKING([for MKL])
    17251901        if test "x${MKL_LIBFLAGS}" == "xno"; then
    17261902                HAVE_MKL=no
     
    17351911        dnl }}}
    17361912        dnl PlaLAPACK{{{
    1737 
    17381913        dnl TODO:       Handle user supplying path to root directory *or* individual
    17391914        dnl             arguments (like ScaLAPACK)
     
    17701945        dnl }}}
    17711946        dnl MUMPS{{{
     1947        AC_MSG_CHECKING([for MUMPS])
    17721948        AC_ARG_WITH(
    17731949                [mumps-dir],
     
    17761952                [MUMPS_ROOT="no"]
    17771953        )
    1778         AC_MSG_CHECKING([for MUMPS])
    17791954        if test "x${MUMPS_ROOT}" == "xno"; then
    17801955                HAVE_MUMPS=no
     
    17911966                MUMPSINCL="-I${MUMPS_ROOT}/include"
    17921967                if test "x${MUMPS_ROOT}" == "x${PETSC_ROOT}"; then
    1793                         if test "x${PETSC_MAJOR}" == "x2"; then
    1794                                 MUMPSLIB="-L${MUMPS_ROOT}/lib "
     1968                        if test "${VENDOR}" == "win-msys2"; then
     1969                                MUMPSLIB="-Wl,${MUMPS_ROOT}/lib/libcmumps.a -Wl,${MUMPS_ROOT}/lib/libdmumps.a -Wl,${MUMPS_ROOT}/lib/libsmumps.a -Wl,${MUMPS_ROOT}/lib/libzmumps.a -Wl,${MUMPS_ROOT}/lib/libmumps_common.a -Wl,${MUMPS_ROOT}/lib/libpord.a"
    17951970                        else
    17961971                                MUMPSLIB="-L${MUMPS_ROOT}/lib -ldmumps -lcmumps -lmumps_common -lpord -lparmetis -lzmumps -lmetis"
     
    18412016        dnl }}}
    18422017        dnl BLACS{{{
     2018        AC_MSG_CHECKING([for BLACS])
    18432019        AC_ARG_WITH(
    18442020                [blacs-dir],
     
    18472023                [BLACS_ROOT="no"]
    18482024        )
    1849         AC_MSG_CHECKING([for BLACS])
    18502025        if test "x${BLACS_ROOT}" == "xno"; then
    18512026                HAVE_BLACS=no
     
    18682043        dnl }}}
    18692044        dnl HYPRE{{{
     2045        AC_MSG_CHECKING([for HYPRE])
    18702046        AC_ARG_WITH(
    18712047                [hypre-dir],
     
    18742050                [HYPRE_ROOT="no"]
    18752051        )
    1876         AC_MSG_CHECKING([for HYPRE])
    18772052        if test "x${HYPRE_ROOT}" == "xno"; then
    18782053                HAVE_HYPRE=no
     
    18952070        dnl }}}
    18962071        dnl Prometheus{{{
     2072        AC_MSG_CHECKING([for Prometheus])
    18972073        AC_ARG_WITH(
    18982074                [prometheus-dir],
     
    19012077                [PROMETHEUS_ROOT="no"]
    19022078        )
    1903         AC_MSG_CHECKING([for Prometheus])
    19042079        if test "x${PROMETHEUS_ROOT}" == "xno"; then
    19052080                HAVE_PROMETHEUS=no
     
    19222097        dnl }}}
    19232098        dnl SEMIC{{{
     2099        AC_MSG_CHECKING([for SEMIC])
    19242100        AC_ARG_WITH(
    19252101                [semic-dir],
     
    19282104                [SEMIC_ROOT="no"]
    19292105        )
    1930         AC_MSG_CHECKING([for SEMIC])
    19312106        if test "x${SEMIC_ROOT}" == "xno"; then
    19322107                HAVE_SEMIC=no
     
    19502125        dnl }}}
    19512126        dnl SPAI{{{
     2127        AC_MSG_CHECKING([for SPAI])
    19522128        AC_ARG_WITH(
    19532129                [spai-dir],
     
    19562132                [SPAI_ROOT="no"]
    19572133        )
    1958         AC_MSG_CHECKING([for SPAI])
    19592134        if test "x${SPAI_ROOT}" == "xno"; then
    19602135                HAVE_SPAI=no
     
    19772152        dnl }}}
    19782153        dnl SuperLU{{{
     2154        AC_MSG_CHECKING([for SuperLU])
    19792155        AC_ARG_WITH(
    19802156                [superlu-dir],
     
    19832159                [SUPERLU_ROOT="no"]
    19842160        )
    1985         AC_MSG_CHECKING([for SuperLU])
    19862161        if test "x${SUPERLU_ROOT}" == "xno"; then
    19872162                HAVE_SUPERLU=no
     
    20042179        dnl }}}
    20052180        dnl SPOOLES{{{
     2181        AC_MSG_CHECKING([for SPOOLES])
    20062182        AC_ARG_WITH(
    20072183                [spooles-dir],
     
    20102186                [SPOOLES_ROOT="no"]
    20112187        )
    2012         AC_MSG_CHECKING([for SPOOLES])
    20132188        if test "x${SPOOLES_ROOT}" == "xno"; then
    20142189                HAVE_SPOOLES=no
     
    20312206        dnl }}}
    20322207        dnl PaStiX{{{
     2208        AC_MSG_CHECKING([for PaStiX])
    20332209        AC_ARG_WITH(
    20342210                [pastix-dir],
     
    20372213                [PASTIX_ROOT="no"]
    20382214        )
    2039         AC_MSG_CHECKING([for PaStiX])
    20402215        if test "x${PASTIX_ROOT}" == "xno"; then
    20412216                HAVE_PASTIX=no
     
    20592234        dnl }}}
    20602235        dnl ml{{{
     2236        AC_MSG_CHECKING([for ml])
    20612237        AC_ARG_WITH(
    20622238                [ml-dir],
     
    20652241                [ML_ROOT="no"]
    20662242        )
    2067         AC_MSG_CHECKING([for ml])
    20682243        if test "x${ML_ROOT}" == "xno"; then
    20692244                HAVE_ML=no
     
    20862261        dnl }}}
    20872262        dnl UMFPACK{{{
     2263        AC_MSG_CHECKING([for UMFPACK])
    20882264        AC_ARG_WITH(
    20892265                [umfpack-dir],
     
    20922268                [UMFPACK_ROOT="no"]
    20932269        )
    2094         AC_MSG_CHECKING([for UMFPACK])
    20952270        if test "x${UMFPACK_ROOT}" == "xno"; then
    20962271                HAVE_UMFPACK=no
     
    21292304        dnl }}}
    21302305        dnl MATH77{{{
     2306        AC_MSG_CHECKING([for MATH77])
    21312307        AC_ARG_WITH(
    21322308                [math77-dir],
     
    21352311                [MATH77_ROOT="no"]
    21362312        )
    2137         AC_MSG_CHECKING([for MATH77])
    21382313        if test "x${MATH77_ROOT}" == "xno"; then
    21392314                HAVE_MATH77=no
     
    21542329        dnl }}}
    21552330        dnl Fortran{{{
     2331        AC_MSG_CHECKING(for Fortran compilation)
    21562332        AC_ARG_WITH(
    21572333                [fortran],
     
    21602336                [FORTRAN=yes]
    21612337        )
    2162         AC_MSG_CHECKING(for Fortran compilation)
    21632338        if test "x${FORTRAN}" == "xyes"; then
    21642339                HAVE_FORTRAN=yes
     
    22242399        dnl }}}
    22252400        dnl MeteoIO{{{
     2401        AC_MSG_CHECKING([for MeteoIO])
    22262402        AC_ARG_WITH(
    22272403                [meteoio-dir],
     
    22302406                [METEOIO_ROOT="no"]
    22312407        )
    2232         AC_MSG_CHECKING([for MeteoIO])
    22332408        if test "x${METEOIO_ROOT}" == "xno"; then
    22342409                HAVE_METEOIO=no
     
    22532428        dnl }}}
    22542429        dnl SNOWPACK{{{
     2430        AC_MSG_CHECKING([for SNOWPACK])
    22552431        AC_ARG_WITH(
    22562432                [snowpack-dir],
     
    22592435                [SNOWPACK_ROOT="no"]
    22602436        )
    2261         AC_MSG_CHECKING([for SNOWPACK])
    22622437        if test "x${SNOWPACK_ROOT}" == "xno"; then
    22632438                HAVE_SNOWPACK=no
     
    22812456        dnl }}}
    22822457        dnl NeoPZ{{{
     2458        AC_MSG_CHECKING([for NeoPZ])
    22832459        AC_ARG_WITH(
    22842460                [neopz-dir],
     
    22872463                [NEOPZ_ROOT="no"]
    22882464        )
    2289         AC_MSG_CHECKING([for NeoPZ])
    22902465        if test "x${NEOPZ_ROOT}" == "xno"; then
    22912466                HAVE_NEOPZ=no
     
    23562531                GMSH_VERSION_MAJOR=`${GMSH_ROOT}/bin/gmsh -info | grep "Version" | sed -e "s/Version@<:@@<:@:blank:@:>@@:>@*:@<:@@<:@:blank:@:>@@:>@//" | cut -d "." -f 1`
    23572532                AC_MSG_RESULT([${GMSH_VERSION_MAJOR}])
    2358                 AC_DEFINE_UNQUOTED(_GMSH_VERSION_MAJOR_, $GMSH_VERSION_MAJOR, [Gmsh major version])
     2533                AC_DEFINE_UNQUOTED([_GMSH_VERSION_MAJOR_], ${GMSH_VERSION_MAJOR}, [Gmsh major version])
    23592534        fi     
    23602535        dnl }}}
    23612536        dnl Capabilities
    23622537        dnl with-bamg{{{
     2538        AC_MSG_CHECKING([for BAMG capability compilation])
    23632539        AC_ARG_WITH(
    23642540                [bamg],
     
    23672543                [BAMG=yes]
    23682544        )
    2369         AC_MSG_CHECKING([for BAMG capability compilation])
    23702545        HAVE_BAMG=no
    23712546        if test "x${BAMG}" == "xyes"; then
     
    23772552        dnl }}}
    23782553        dnl with-ocean{{{
     2554        AC_MSG_CHECKING(for ice/ocean coupling capability compilation)
    23792555        AC_ARG_WITH(
    23802556                [ocean],
     
    23832559                [OCEAN=no]
    23842560        )
    2385         AC_MSG_CHECKING(for ice/ocean coupling capability compilation)
    2386 
    23872561        HAVE_OCEAN=no
    23882562        if test "x${OCEAN}" == "xyes"; then
     
    23942568        dnl }}}
    23952569        dnl with-kml{{{
     2570        AC_MSG_CHECKING(for kml capability compilation)
    23962571        AC_ARG_WITH(
    23972572                [kml],
     
    24002575                [KML=no]
    24012576        )
    2402         AC_MSG_CHECKING(for kml capability compilation)
    2403 
    24042577        HAVE_KML=no
    24052578        if test "x${KML}" == "xyes"; then
     
    24112584        dnl }}}
    24122585        dnl with-kriging{{{
     2586        AC_MSG_CHECKING(for kriging capability compilation)
    24132587        AC_ARG_WITH(
    24142588                [kriging],
     
    24172591                [KRIGING=yes]
    24182592        )
    2419         AC_MSG_CHECKING(for kriging capability compilation)
    2420 
    24212593        HAVE_KRIGING=no
    24222594        if test "x${KRIGING}" == "xyes"; then
     
    24332605        dnl Platform specifics
    24342606        dnl with-ios{{{
     2607        AC_MSG_CHECKING(for iOS compilation)
    24352608        AC_ARG_WITH(
    24362609                [ios],
     
    24392612                [IOS=no]
    24402613        )
    2441         AC_MSG_CHECKING(for iOS compilation)
    2442 
    24432614        HAVE_IOS=no
    24442615        if test "x${IOS}" == "xyes"; then
     
    24502621        dnl }}}
    24512622        dnl with-android{{{
     2623        AC_MSG_CHECKING([for Android capability compilation])
    24522624        AC_ARG_WITH(
    24532625                [android],
    24542626                AS_HELP_STRING([--with-android=EXE], [compile with Android capabilities (default: "no"; alternatives: "exe", "jni")]),
    24552627                [ANDROID=${withval}],
    2456                 [ANDROID=no])
    2457         AC_MSG_CHECKING([for Android capability compilation])
    2458 
     2628                [ANDROID=no]
     2629        )
    24592630        if test "x${ANDROID}" == "xjni"; then
    24602631                HAVE_ANDROID=jni
     
    24752646        dnl }}}
    24762647        dnl with-android-ndk{{{
     2648        AC_MSG_CHECKING([with Android Native Development Kit (NDK)])
    24772649        AC_ARG_WITH(
    24782650                [android-ndk],
     
    24812653                [ANDROID_NDK_ROOT=""]
    24822654        )
    2483         AC_MSG_CHECKING([with Android Native Development Kit (NDK)])
    2484 
    24852655        if test -d "${ANDROID_NDK_ROOT}"; then
    24862656                HAVE_ANDROID_NDK=yes
     
    24962666        dnl other options
    24972667        dnl optimization{{{
    2498         dnl -- bypass standard optimization -g -O2 -fPIC -std=c++11?
     2668        dnl -- bypass standard optimization -g -O2 -fPIC?
     2669        AC_MSG_CHECKING(for C++ optimization flags)
    24992670        AC_ARG_WITH(
    25002671                [cxxoptflags],
     
    25032674                [CXXOPTFLAGS="-g -O2 -fPIC -std=c++11"]
    25042675        )
    2505         AC_MSG_CHECKING(for C++ optimization flags)
    25062676        AC_SUBST([CXXOPTFLAGS])
    2507         AC_MSG_RESULT([done])
     2677        AC_MSG_RESULT([${CXXOPTFLAGS}])
    25082678        dnl }}}
    25092679        dnl multithreading{{{
     2680        AC_MSG_CHECKING(for number of threads)
    25102681        AC_ARG_WITH(
    25112682                [numthreads],
     
    25142685                [NUMTHREADS_VALUE=1]
    25152686        )
    2516         AC_MSG_CHECKING(for number of threads)
    25172687        dnl Check that supplied value is an integer
    25182688        if [[ "${NUMTHREADS_VALUE}" != "${NUMTHREADS_VALUE}" 2> /dev/null ]]; then
     
    25292699                                MULTITHREADINGLIB="-lpthread -lrt"
    25302700                        ;;
     2701                        *darwin*)
     2702                                MULTITHREADINGLIB="-lpthread"
     2703                        ;;
    25312704                        *linux*)
    25322705                                MULTITHREADINGLIB="-lpthread -lrt"
    25332706                        ;;
    2534                         *darwin*)
    2535                                 MULTITHREADINGLIB="-lpthread"
     2707                        *mingw*)
     2708                                MULTITHREADINGLIB=""
     2709                        ;;
     2710                        *msys*)
     2711                                MULTITHREADINGLIB=""
    25362712                        ;;
    25372713                esac
    25382714                AC_DEFINE([_MULTITHREADING_], [1], [with multithreading enabled])
    25392715        fi
    2540         AC_DEFINE_UNQUOTED(_NUMTHREADS_, $NUMTHREADS_VALUE, [number of threads])
     2716        AC_DEFINE_UNQUOTED([_NUMTHREADS_], ${NUMTHREADS_VALUE}, [number of threads])
    25412717        AC_SUBST([MULTITHREADINGLIB])
    25422718        AC_MSG_RESULT([${NUMTHREADS_VALUE}])
    25432719        dnl }}}
    25442720        dnl 64-bit indices{{{
     2721        AC_MSG_CHECKING([for 64-bit indices])
    25452722        AC_ARG_WITH(
    25462723                [64bit-indices],
     
    25492726                [USE_64BIT_INDICES=0]
    25502727        )
    2551         AC_MSG_CHECKING([for 64-bit indices])
    2552 
    25532728        if test "x${USE_64BIT_INDICES}" == "x1"; then
    25542729                AC_DEFINE([ISSM_USE_64BIT_INDICES], [1], [with 64-bit indices])
     
    25602735
    25612736        dnl Checks {{{
    2562         AC_MSG_CHECKING(consistency between all libraries)
     2737        AC_MSG_CHECKING(consistency between all external packages)
    25632738
    25642739        dnl Check that if PETSc is requested, MPI is specified
     
    25902765
    25912766        dnl Check that if we run ADOL-C, we don't compile kriging.exe
    2592         if test "x$HAVE_ADOLC" == "xyes" && test "${HAVE_KRIGING}" == "xyes"; then
     2767        if test "x${HAVE_ADOLC}" == "xyes" && test "${HAVE_KRIGING}" == "xyes"; then
    25932768                AC_MSG_ERROR([cannot compile kriging.exe under ADOL-C conditions!]);
    25942769        fi
  • issm/trunk-jpl/src/c/Makefile.am

    r26036 r26044  
    1 AM_CPPFLAGS = @NEOPZINCL@ @DAKOTAINCL@ @SHAPELIBINCL@ @PETSCINCL@ @SLEPCINCL@ @AMPIINCL@ @ADJOINTMPIINCL@ @MEDIPACKINCL@ @MPIINCL@ @METISINCL@ @CHACOINCL@ @SCOTCHINCL@ @PLAPACKINCL@ @BLASLAPACKINCL@ @MKLINCL@ @MUMPSINCL@ @TRIANGLEINCL@ @SPAIINCL@ @HYPREINCL@ @PROMETHEUSINCL@ @SUPERLUINCL@ @SPOOLESINCL@ @PASTIXINCL@ @MLINCL@ @TAOINCL@ @ADIC2INCL@ @ADOLCINCL@ @CODIPACKINCL@ @GSLINCL@ @BOOSTINCL@ @ANDROID_NDKINCL@ @METEOIOINCL@ @SNOWPACKINCL@ @PROJINCL@ @ESMFINCL@
     1AM_CPPFLAGS = @NEOPZINCL@ @DAKOTAINCL@ @SHAPELIBINCL@ @PETSCINCL@ @SLEPCINCL@ @AMPIINCL@ @ADJOINTMPIINCL@ @MEDIPACKINCL@ @MPIINCL@ @METISINCL@ @CHACOINCL@ @SCOTCHINCL@ @PLAPACKINCL@ @MKLINCL@ @MUMPSINCL@ @TRIANGLEINCL@ @SPAIINCL@ @HYPREINCL@ @PROMETHEUSINCL@ @SUPERLUINCL@ @SPOOLESINCL@ @PASTIXINCL@ @MLINCL@ @TAOINCL@ @ADIC2INCL@ @ADOLCINCL@ @CODIPACKINCL@ @GSLINCL@ @BOOSTINCL@ @ANDROID_NDKINCL@ @METEOIOINCL@ @SNOWPACKINCL@ @PROJINCL@ @ESMFINCL@
    22AM_FCFLAGS = @SEMICINCL@
    33
     
    88#Library declaration {{{
    99if !WINDOWS
    10 lib_LTLIBRARIES = libISSMCore.la libISSMOverload.la
     10lib_LTLIBRARIES = libISSMCore.la
     11if !MSYS2
     12lib_LTLIBRARIES += libISSMOverload.la
     13endif
    1114if WRAPPERS
    1215lib_LTLIBRARIES += libISSMModules.la
     
    682685#}}}
    683686#Library flags and sources {{{
    684 ALLCXXFLAGS= $(CXXFLAGS) $(CXXOPTFLAGS)
     687ALL_CXXFLAGS = $(CXXFLAGS) $(CXXOPTFLAGS)
     688
     689if MSYS2
     690ALL_CXXFLAGS += -D_DO_NOT_LOAD_GLOBALS_ # Cannot have undefined symbols under MSYS2
     691ALL_CXXFLAGS += -D_USE_MATH_DEFINES # Need to open fence to math.h definitions when --std=c++ is used (which is the default)
     692endif
    685693
    686694libISSMCore_la_SOURCES  = $(issm_sources)
    687 libISSMCore_la_CXXFLAGS = $(ALLCXXFLAGS) $(DAKOTAFLAGS)
     695libISSMCore_la_CXXFLAGS = $(ALL_CXXFLAGS) $(DAKOTAFLAGS)
    688696libISSMCore_la_FFLAGS = $(AM_FFLAGS)
    689697
    690698if !WINDOWS
    691699if !STANDALONE_LIBRARIES
    692 libISSMCore_la_LIBADD = $(PETSCLIB) $(HDF5LIB) $(TAOLIB) $(M1QN3LIB) $(SEMICLIB) $(PLAPACKLIB) $(MUMPSLIB) $(SUPERLULIB) $(SPOOLESLIB) $(SCALAPACKLIB) $(BLACSLIB) $(HYPRELIB) $(SPAILIB) $(PROMETHEUSLIB) $(PASTIXLIB) $(MLLIB) $(DAKOTALIB) $(METISLIB) $(CHACOLIB) $(SCOTCHLIB) $(BLASLAPACKLIB) $(MKLLIB) $(MPILIB) $(MATHLIB) $(GRAPHICSLIB) $(MULTITHREADINGLIB) $(OSLIBS) $(GSLLIB) $(ADOLCLIB) $(AMPILIB) $(ADJOINTMPILIB) $(METEOIOLIB) $(SNOWPACKLIB)
     700libISSMCore_la_LIBADD = $(PETSCLIB) $(MUMPSLIB) $(SCALAPACKLIB) $(BLASLAPACKLIB) $(PARMETISLIB) $(METISLIB) $(HDF5LIB) $(TAOLIB) $(M1QN3LIB) $(SEMICLIB) $(PLAPACKLIB) $(SUPERLULIB) $(SPOOLESLIB) $(BLACSLIB) $(HYPRELIB) $(SPAILIB) $(PROMETHEUSLIB) $(PASTIXLIB) $(MLLIB) $(DAKOTALIB) $(CHACOLIB) $(SCOTCHLIB) $(MKLLIB) $(MPILIB) $(MATHLIB) $(GRAPHICSLIB) $(MULTITHREADINGLIB) $(GSLLIB) $(ADOLCLIB) $(AMPILIB) $(ADJOINTMPILIB) $(METEOIOLIB) $(SNOWPACKLIB) $(OSLIBS)
    693701if FORTRAN
    694702libISSMCore_la_LIBADD += $(FLIBS) $(FORTRANLIB)
     
    711719endif
    712720
    713 libISSMModules_la_CXXFLAGS = $(ALLCXXFLAGS)
     721libISSMModules_la_CXXFLAGS = $(ALL_CXXFLAGS)
    714722if !WINDOWS
    715723if STANDALONE_LIBRARIES
     
    743751endif
    744752
     753if VERSION
     754libISSMCore_la_LDFLAGS =
     755if WRAPPERS
     756libISSMModules_la_LDFLAGS =
     757endif
     758else
     759libISSMCore_la_LDFLAGS = -avoid-version
     760if WRAPPERS
     761libISSMModules_la_LDFLAGS = -avoid-version
     762endif
     763endif
     764
    745765if STANDALONE_LIBRARIES
    746 libISSMCore_la_LDFLAGS = -static
    747 libISSMOverload_la_LDFLAGS = -static
     766libISSMCore_la_LDFLAGS += -static
    748767if WRAPPERS
    749 libISSMModules_la_LDFLAGS = -static
    750 else
    751 libISSMModules_la_LDFLAGS =
    752 endif
    753 else
    754 libISSMCore_la_LDFLAGS =
    755 libISSMOverload_la_LDFLAGS =
    756 endif
    757 
    758 #}}}
     768libISSMModules_la_LDFLAGS += -static
     769endif
     770endif
     771#}}}
     772
     773if !MSYS2
    759774#Overload library, to overload any non-standard symbols. {{{
    760775libISSMOverload_la_SOURCES = ./shared/String/ApiPrintf.cpp
    761 
    762776libISSMOverload_la_CFLAGS  = -D_C_ -fPIC $(COPTFLAGS) $(CFLAGS)
     777
     778if VERSION
     779libISSMOverload_la_LDFLAGS =
     780else
     781libISSMOverload_la_LDFLAGS = -avoid-version
     782endif
     783
     784if STANDALONE_LIBRARIES
     785libISSMOverload_la_LDFLAGS += -static
     786endif
     787endif
    763788#}}}
    764789#Executable {{{
     
    778803
    779804#Standard libraries
    780 LDADD = ./libISSMCore.la ./libISSMOverload.la
     805LDADD = ./libISSMCore.la
     806
     807if !MSYS2
     808LDADD += ./libISSMOverload.la
     809endif
     810
    781811if WRAPPERS
    782812LDADD += ./libISSMModules.la $(TRIANGLELIB)
     
    784814
    785815#External packages
    786 LDADD += $(NEOPZLIB) $(TAOLIB) $(M1QN3LIB) $(SEMICLIB) $(PLAPACKLIB) $(MUMPSLIB) $(SUPERLULIB) $(SPOOLESLIB) $(SCALAPACKLIB) $(BLACSLIB) $(PETSCLIB) $(HDF5LIB) $(HYPRELIB) $(SPAILIB) $(PROMETHEUSLIB) $(PASTIXLIB) $(MLLIB) $(DAKOTALIB) $(METISLIB) $(CHACOLIB) $(SCOTCHLIB) $(BLASLAPACKLIB) $(MKLLIB) $(MPILIB) $(MATHLIB) $(GRAPHICSLIB) $(MULTITHREADINGLIB) $(OSLIBS) $(GSLLIB) $(AMPILIB) $(ADJOINTMPILIB) $(ADOLCLIB) $(MPILIB) $(METEOIOLIB) $(SNOWPACKLIB) $(PROJLIB) $(ESMFLIB)
     816LDADD +=  $(PETSCLIB) $(MUMPSLIB) $(SCALAPACKLIB) $(BLASLAPACKLIB) $(PARMETISLIB) $(METISLIB) $(NEOPZLIB) $(TAOLIB) $(M1QN3LIB) $(SEMICLIB) $(PLAPACKLIB) $(SUPERLULIB) $(SPOOLESLIB) $(BLACSLIB) $(HDF5LIB) $(HYPRELIB) $(SPAILIB) $(PROMETHEUSLIB) $(PASTIXLIB) $(MLLIB) $(DAKOTALIB) $(CHACOLIB) $(SCOTCHLIB) $(MKLLIB) $(MPILIB) $(MATHLIB) $(GRAPHICSLIB) $(MULTITHREADINGLIB) $(GSLLIB) $(AMPILIB) $(ADJOINTMPILIB) $(ADOLCLIB) $(MPILIB) $(METEOIOLIB) $(SNOWPACKLIB) $(PROJLIB) $(ESMFLIB) $(OSLIBS)
    787817
    788818if FORTRAN
  • issm/trunk-jpl/src/wrappers/matlab/Makefile.am

    r26036 r26044  
    2020        ./io/WriteMatlabData.cpp
    2121
    22 ALLCXXFLAGS= -fPIC -D_WRAPPERS_ $(CXXFLAGS) $(CXXOPTFLAGS)
     22ALL_CXXFLAGS = -fPIC -D_WRAPPERS_
     23
     24if MSYS2
     25ALL_CXXFLAGS += -D_DO_NOT_LOAD_GLOBALS_ # Cannot have undefined symbols under MSYS2
     26ALL_CXXFLAGS += -D_USE_MATH_DEFINES # Need to open fence to math.h definitions when --std=c++ is used (which is the default)
     27endif
     28
     29ALL_CXXFLAGS += $(CXXOPTFLAGS) $(CXXFLAGS)
    2330
    2431libISSMMatlab_la_SOURCES = $(io_sources)
    25 libISSMMatlab_la_CXXFLAGS= $(ALLCXXFLAGS)
     32libISSMMatlab_la_CXXFLAGS = ${ALL_CXXFLAGS}
    2633#}}}
    2734#api io{{{
     
    3239endif
    3340
     41if !MSYS2
    3442api_sources= ./io/ApiPrintf.cpp
    3543
    3644libISSMApi_la_SOURCES = $(api_sources)
    37 libISSMApi_la_CXXFLAGS= $(ALLCXXFLAGS)
     45libISSMApi_la_CXXFLAGS = ${ALL_CXXFLAGS}
     46endif
    3847#}}}
    3948#Wrappers {{{
     
    8291
    8392#Triangle library
    84 AM_CXXFLAGS =  -DTRILIBRARY -DANSI_DECLARATORS -DNO_TIMER -D_WRAPPERS_
     93TRI_CXXFLAGS = -DTRILIBRARY -DANSI_DECLARATORS -DNO_TIMER
    8594
    8695#Matlab part
    87 AM_LDFLAGS = -module $(MEXLINK) -shrext ${EXEEXT} --export-dynamic -rdynamic -no-undefined
     96MEX_CXXFLAGS = -D_HAVE_MATLAB_MODULES_ $(MEXOPTFLAGS) $(MEXCXXFLAGS)
     97MEX_CPPFLAGS = $(MATLABINCL)
     98MEX_LDFLAGS = -module -shrext $(MEXEXT) -no-undefined
     99MEX_LIBADD = $(MEXLINKFLAGS) $(MEXLIB)
     100
     101AM_CPPFLAGS += ${MEX_CPPFLAGS}
     102AM_CXXFLAGS = ${TRI_CXXFLAGS} ${MEX_CXXFLAGS}
     103AM_LDFLAGS = ${MEX_LDFLAGS}
     104AM_LIBADD = ${MEX_LIBADD}
     105
     106if !MSYS2
     107AM_LDFLAGS += --export-dynamic -rdynamic
     108endif
    88109
    89110if !VERSION
     
    106127endif
    107128
    108 AM_CXXFLAGS += -D_HAVE_MATLAB_MODULES_ -fPIC
    109 
    110 deps += ./libISSMMatlab.la ../../c/libISSMModules.la ../../c/libISSMCore.la ./libISSMApi.la
    111 
    112 if WINDOWS
    113 deps += $(METISLIB)
    114 endif
     129AM_CXXFLAGS += -fPIC -D_WRAPPERS_
     130
     131deps += ./libISSMMatlab.la ../../c/libISSMCore.la ../../c/libISSMModules.la
     132
     133if !MSYS2
     134deps += ./libISSMApi.la
     135endif
     136
     137# if WINDOWS
     138# deps += $(METISLIB)
     139# endif
    115140
    116141if ADOLC
     
    122147endif
    123148
    124 #MEXLIB needs to be the last (undefined references on larsen)
    125 deps += ${MEXLIB}
     149# #MEXLIB needs to be the last (undefined references on larsen)
     150# deps += ${MEXLIB}
    126151
    127152#Optimization flags:
     
    130155# Module sources and dependencies {{{
    131156if !WINDOWS
    132 libISSMMatlab_la_LIBADD = ./../../c/libISSMCore.la ./../../c/libISSMModules.la $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(MKLLIB) $(GSLLIB) $(PROJLIB) $(MATHLIB) $(MEXLIB)
     157libISSMMatlab_la_LIBADD = ./../../c/libISSMCore.la ./../../c/libISSMModules.la $(PETSCLIB) $(MUMPSLIB) $(SCALAPACKLIB) $(BLASLAPACKLIB) $(PARMETISLIB) $(METISLIB) $(HDF5LIB) $(MPILIB) $(NEOPZLIB) $(MKLLIB) $(GSLLIB) $(PROJLIB) $(MATHLIB) $(MEXLIB)
     158endif
     159
     160if VERSION
     161libISSMMatlab_la_LDFLAGS =
     162libISSMApi_la_LDFLAGS =
     163else
     164libISSMMatlab_la_LDFLAGS = -avoid-version
     165libISSMApi_la_LDFLAGS = -avoid-version
    133166endif
    134167
    135168if STANDALONE_LIBRARIES
    136 libISSMMatlab_la_LDFLAGS = -static
    137 libISSMApi_la_LDFLAGS = -static
    138 deps += $(PETSCLIB) $(HDF5LIB) $(TAOLIB) $(NEOPZLIB) $(M1QN3LIB) $(SEMICLIB) $(PLAPACKLIB) $(MUMPSLIB) $(SUPERLULIB) $(SPOOLESLIB) $(TRIANGLELIB) $(SCALAPACKLIB) $(BLACSLIB) $(HYPRELIB) $(SPAILIB) $(PROMETHEUSLIB) $(PASTIXLIB) $(MLLIB) $(DAKOTALIB) $(METISLIB) $(CHACOLIB) $(SCOTCHLIB) $(BLASLAPACKLIB) $(MKLLIB) $(MPILIB) $(MATHLIB) $(GRAPHICSLIB) $(MULTITHREADINGLIB) $(OSLIBS) $(GSLLIB) $(ADOLCLIB) $(AMPILIB) $(METEOIOLIB) $(SNOWPACKLIB)
    139 endif
    140 
    141 if !WINDOWS
    142 libISSMApi_la_LIBADD = $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB) $(MATHLIB) $(MEXLIB)
     169libISSMMatlab_la_LDFLAGS += -static
     170libISSMApi_la_LDFLAGS += -static
     171deps +=  $(PETSCLIB) $(MUMPSLIB) $(SCALAPACKLIB) $(BLASLAPACKLIB) $(PARMETISLIB) $(METISLIB) $(HDF5LIB) $(TAOLIB) $(M1QN3LIB) $(SEMICLIB) $(PLAPACKLIB) $(SUPERLULIB) $(SPOOLESLIB) $(TRIANGLELIB) $(BLACSLIB) $(HYPRELIB) $(SPAILIB) $(PROMETHEUSLIB) $(PASTIXLIB) $(MLLIB) $(DAKOTALIB) $(CHACOLIB) $(SCOTCHLIB) $(MKLLIB) $(MPILIB) $(NEOPZLIB) $(MATHLIB) $(GRAPHICSLIB) $(MULTITHREADINGLIB) $(GSLLIB) $(ADOLCLIB) $(AMPILIB) $(METEOIOLIB) $(SNOWPACKLIB) $(PROJLIB) $(OSLIBS)
     172endif
     173
     174if !WINDOWS
     175libISSMApi_la_LIBADD = $(PETSCLIB) $(MUMPSLIB) $(SCALAPACKLIB) $(BLASLAPACKLIB) $(PARMETISLIB) $(METISLIB) $(HDF5LIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB) $(MATHLIB) $(MEXLIB)
    143176endif
    144177
  • issm/trunk-jpl/src/wrappers/python/Makefile.am

    r26036 r26044  
    1 AM_CPPFLAGS = @DAKOTAINCL@ @PETSCINCL@ @MPIINCL@ @SPOOLESINCL@ @METISINCL@ @TRIANGLEINCL@ @CHACOINCL@ @SCOTCHINCL@ @SHAPELIBINCL@ @PYTHONINCL@ @PYTHON_NUMPYINCL@ @AMPIINCL@ @ADJOINTMPIINCL@ @MEDIPACKINCL@ @CODIPACKINCL@
     1AM_CPPFLAGS = @DAKOTAINCL@ @PETSCINCL@ @MPIINCL@ @SPOOLESINCL@ @PARMETISINCL@ @METISINCL@ @TRIANGLEINCL@ @CHACOINCL@ @SCOTCHINCL@ @SHAPELIBINCL@ @PYTHONINCL@ @PYTHON_NUMPYINCL@ @AMPIINCL@ @ADJOINTMPIINCL@ @MEDIPACKINCL@ @CODIPACKINCL@
    22AUTOMAKE_OPTIONS = subdir-objects
    33
     
    106106libISSMPython_la_LDFLAGS = -static
    107107libISSMApi_la_LDFLAGS = -static
    108 deps += $(DAKOTALIB) $(PETSCLIB) $(HDF5LIB) $(TAOLIB) $(NEOPZLIB) $(M1QN3LIB) $(SEMICLIB) $(PLAPACKLIB) $(MUMPSLIB) $(SUPERLULIB) $(SPOOLESLIB) $(TRIANGLELIB) $(SCALAPACKLIB) $(BLACSLIB) $(HYPRELIB) $(SPAILIB) $(PROMETHEUSLIB) $(PASTIXLIB) $(MLLIB) $(METISLIB) $(CHACOLIB) $(SCOTCHLIB) $(BLASLAPACKLIB) $(MKLLIB) $(MPILIB) $(MATHLIB) $(GRAPHICSLIB) $(MULTITHREADINGLIB) $(OSLIBS) $(GSLLIB) $(ADOLCLIB) $(AMPILIB) $(METEOIOLIB) $(SNOWPACKLIB)
     108deps += $(DAKOTALIB) $(PETSCLIB) $(MUMPSLIB) $(SCALAPACKLIB) $(BLASLAPACKLIB) $(PARMETISLIB) $(METISLIB) $(HDF5LIB) $(TAOLIB) $(NEOPZLIB) $(M1QN3LIB) $(SEMICLIB) $(PLAPACKLIB) $(SUPERLULIB) $(SPOOLESLIB) $(TRIANGLELIB) $(BLACSLIB) $(HYPRELIB) $(SPAILIB) $(PROMETHEUSLIB) $(PASTIXLIB) $(MLLIB) $(CHACOLIB) $(SCOTCHLIB) $(MKLLIB) $(MPILIB) $(MATHLIB) $(GRAPHICSLIB) $(MULTITHREADINGLIB) $(GSLLIB) $(ADOLCLIB) $(AMPILIB) $(METEOIOLIB) $(SNOWPACKLIB) $(OSLIBS)
    109109endif
    110110
Note: See TracChangeset for help on using the changeset viewer.