source: issm/trunk-jpl/externalpackages/dakota/install-6.2-mac.sh@ 24663

Last change on this file since 24663 was 24663, checked in by jdquinn, 5 years ago

BUG: Attempting to fix seg fault on launch of MATLAB during testing (not happening locally, only on Pine Island)

  • Property svn:executable set to *
File size: 4.6 KB
RevLine 
[24649]1#!/bin/bash
2set -eu
3
4
5# Constants
6#
7DAK_ROOT=${ISSM_DIR}/externalpackages/dakota
8VER="6.2"
9
10## Environment
11#
[24655]12export BLAS_LIBS="-L${ISSM_DIR}/externalpackages/petsc/install/lib -lfblas -L/usr/local/gfortran/lib -lgfortran" # Need to export BLAS_LIBS *and* pass it as an option to CMake to ensure that external packages also find it
[24649]13export BOOST_ROOT=${ISSM_DIR}/externalpackages/boost/install
14export DAK_BUILD=${DAK_ROOT}/build
15export DAK_INSTALL=${DAK_ROOT}/install
16export DAK_SRC=${DAK_ROOT}/src
[24655]17export LAPACK_LIBS="-L${ISSM_DIR}/externalpackages/petsc/install/lib -lflapack -L/usr/local/gfortran/lib -lgfortran" # Need to export LAPACK_LIBS *and* pass it as an option to CMake to ensure that external packages also find it
[24649]18
19# Cleanup
20rm -rf build install src
21mkdir build install src
22
23# Download source
24${ISSM_DIR}/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/dakota-${VER}-public.src.tar.gz" "dakota-${VER}-public-src.tar.gz"
25
26# Unpack source
27tar -zxvf dakota-${VER}-public-src.tar.gz
28
29# Move source to 'src' directory
30mv dakota-${VER}.0.src/* src
31rm -rf dakota-${VER}.0.src
32
33# Copy customized source and configuration files to 'src' directory
34cp configs/${VER}/packages/DDACE/src/Analyzer/MainEffectsExcelOutput.cpp ${DAK_SRC}/packages/DDACE/src/Analyzer
35cp configs/${VER}/packages/surfpack/src/surfaces/nkm/NKM_KrigingModel.cpp ${DAK_SRC}/packages/surfpack/src/surfaces/nkm
36cp configs/${VER}/src/DakotaInterface.cpp ${DAK_SRC}/src
37cp configs/${VER}/src/NonDLocalReliability.cpp ${DAK_SRC}/src
38cp configs/${VER}/src/NonDSampling.cpp ${DAK_SRC}/src
39
40# Copy customized source and configuration files specific to Mac to 'src' directory
41cp configs/${VER}/mac/cmake/BuildDakotaCustom.cmake ${DAK_SRC}/cmake
42cp configs/${VER}/mac/cmake/DakotaDev.cmake ${DAK_SRC}/cmake
[24653]43cp configs/${VER}/mac/cmake/InstallDarwinDylibs.cmake ${DAK_SRC}/cmake
[24649]44cp configs/${VER}/mac/packages/VPISparseGrid/src/sandia_rules.cpp ${DAK_SRC}/packages/VPISparseGrid/src
45
46# Configure
47cd ${DAK_BUILD}
48cmake \
49 -DBUILD_SHARED_LIBS=ON \
50 -DBUILD_STATIC_LIBS=OFF \
51 -DCMAKE_C_COMPILER=${MPI_HOME}/bin/mpicc \
52 -DCMAKE_CXX_COMPILER=${MPI_HOME}/bin/mpicxx \
53 -DCMAKE_Fortran_COMPILER=${MPI_HOME}/bin/mpif77 \
54 -DCMAKE_CXX_FLAGS="-fdelayed-template-parsing" \
[24663]55 -DBoost_NO_BOOST_CMAKE=TRUE \
[24649]56 -DHAVE_ACRO=OFF \
57 -DHAVE_JEGA=OFF \
58 -C${DAK_SRC}/cmake/BuildDakotaCustom.cmake \
59 -C${DAK_SRC}/cmake/DakotaDev.cmake \
60 ${DAK_SRC}
61
62# Compile and install
63if [ $# -eq 0 ]; then
64 make
65 make install
66else
67 make -j $1
68 make -j $1 install
69fi
70
71cd ${DAK_INSTALL}
72
73# Comment out definition of HAVE_MPI in Teuchos config header file in order to
74# avoid conflict with our definition
75sed -i -e "s/#define HAVE_MPI/\/* #define HAVE_MPI *\//g" include/Teuchos_config.h
[24653]76
[24654]77# Set install_name for all shared libraries
78cd ${DAK_INSTALL}/lib
79for name in *.dylib; do
80 install_name_tool -id ${DAK_INSTALL}/lib/${name} ${name}
81done
82
[24653]83## Patch install names for certain libraries
84#
85# TODO: Figure out how to reconfigure source to apply these install names at compile time
86#
[24654]87install_name_tool -change libdakota_src_fortran.dylib ${DAK_INSTALL}/lib/libdakota_src_fortran.dylib libdakota_src.dylib
88install_name_tool -change liblhs_mod.dylib ${DAK_INSTALL}/lib/liblhs_mod.dylib liblhs.dylib
89install_name_tool -change liblhs_mods.dylib ${DAK_INSTALL}/lib/liblhs_mods.dylib liblhs.dylib
90install_name_tool -change liblhs_mod.dylib ${DAK_INSTALL}/lib/liblhs_mod.dylib liblhs_mods.dylib
91install_name_tool -change libteuchos.dylib ${DAK_INSTALL}/lib/libteuchos.dylib liboptpp.dylib
92install_name_tool -change libdfftpack.dylib ${DAK_INSTALL}/lib/libdfftpack.dylib libpecos.dylib
93install_name_tool -change liblhs.dylib ${DAK_INSTALL}/lib/liblhs.dylib libpecos.dylib
94install_name_tool -change liblhs_mod.dylib ${DAK_INSTALL}/lib/liblhs_mod.dylib libpecos.dylib
95install_name_tool -change liblhs_mods.dylib ${DAK_INSTALL}/lib/liblhs_mods.dylib libpecos.dylib
96install_name_tool -change libpecos_src.dylib ${DAK_INSTALL}/lib/libpecos_src.dylib libpecos.dylib
97install_name_tool -change libteuchos.dylib ${DAK_INSTALL}/lib/libteuchos.dylib libpecos.dylib
98install_name_tool -change libdfftpack.dylib ${DAK_INSTALL}/lib/libdfftpack.dylib libpecos_src.dylib
99install_name_tool -change liblhs.dylib ${DAK_INSTALL}/lib/liblhs.dylib libpecos_src.dylib
100install_name_tool -change liblhs_mod.dylib ${DAK_INSTALL}/lib/liblhs_mod.dylib libpecos_src.dylib
101install_name_tool -change liblhs_mods.dylib ${DAK_INSTALL}/lib/liblhs_mods.dylib libpecos_src.dylib
102install_name_tool -change libteuchos.dylib ${DAK_INSTALL}/lib/libteuchos.dylib libpecos_src.dylib
103install_name_tool -change libsurfpack_fortran.dylib ${DAK_INSTALL}/lib/libsurfpack_fortran.dylib libsurfpack.dylib
Note: See TracBrowser for help on using the repository browser.