initial upload
This commit is contained in:
103
install-exodus.sh
Executable file
103
install-exodus.sh
Executable file
@@ -0,0 +1,103 @@
|
||||
# script to install seacas-exodus for build with LaGriT
|
||||
# See detailed instructions at https://github.com/sandialabs/seacas
|
||||
# Seacas Contact Gregory Sjaardema gsjaardema@gmail.com
|
||||
#
|
||||
# LaGriT does not need full full seacas but does require
|
||||
# exodus and associated libs with FORTRAN=YES
|
||||
# libexodus.a libexoIIv2for32.a libhdf5_hl.a libnetcdf.a
|
||||
# libexodus_for.a libhdf5.a libhdf5_tools.a libz.a
|
||||
# Preferable to use versions newer than July 2022
|
||||
set -e
|
||||
set -x
|
||||
|
||||
# ==== USER SETTINGS ==============================
|
||||
# Suggest Installing seacas in LaGriT/TPLs
|
||||
SEACAS_INSTALL_DIR=${SEACAS_INSTALL_DIR:-"$(pwd)/TPLs/"}
|
||||
# EXO_COMMIT_HASH=${EXO_COMMIT_HASH:-v2021-10-11}
|
||||
# =================================================
|
||||
|
||||
# ==== GET SOURCE ================================
|
||||
mkdir -p ${SEACAS_INSTALL_DIR}
|
||||
cd ${SEACAS_INSTALL_DIR}
|
||||
|
||||
git clone https://github.com/sandialabs/seacas.git
|
||||
cd seacas && export ACCESS=`pwd`
|
||||
|
||||
# ----------------------------------------------------------------------------------------
|
||||
# Checkout a seacas tag that is known to work
|
||||
# This is no longer needed for a linux build
|
||||
# git reset --hard v2023-11-27
|
||||
# ----------------------------------------------------------------------------------------
|
||||
# Suggestions from Greg to fix Exodus possible build errors
|
||||
#
|
||||
# Add options to TPLs/seacas/TPL/netcdf/runcmake.sh
|
||||
#
|
||||
# cmake .. -DCMAKE_C_COMPILER:FILEPATH=${CC} \
|
||||
# -DENABLE_PNETCDF:BOOL=${MPI} \
|
||||
# ADD THESE OPTIONS:
|
||||
# -DENABLE_PLUGINS:BOOL=OFF \
|
||||
# -DENABLE_MULTIFILTERS:BOOL=NO \
|
||||
# -DENABLE_NCZARR_FILTERS:BOOL=OFF \
|
||||
# -DENABLE_TESTS:BOOL=OFF \
|
||||
#
|
||||
# FIX ERROR during lagrit build: routines or libs not found
|
||||
# Modify ../cmake-exodus to add curl for linux systems
|
||||
# Modify line (may leave curl off for some sytems, needed for linux)
|
||||
#
|
||||
# EXTRA_LIB="-DSeacas_EXTRA_LINK_FLAGS=z;dl -DSEACASExodus_ENABLE_SHARED:BOOL=OFF"
|
||||
# to add curl
|
||||
# EXTRA_LIB="-DSeacas_EXTRA_LINK_FLAGS=curl;z;dl -DSEACASExodus_ENABLE_SHARED:BOOL=OFF"
|
||||
# ----------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
# FIX TPL/netcdf/runcmake.sh and cmake-exodus as described above
|
||||
sed -i '69i \ -DENABLE_PLUGINS:BOOL=OFF \\\n -DENABLE_MULTIFILTERS:BOOL=NO \\\n -DENABLE_NCZARR_FILTERS:BOOL=OFF \\\n -DENABLE_TESTS:BOOL=OFF \\' TPL/netcdf/runcmake.sh
|
||||
sed -ie 's/DSeacas_EXTRA_LINK_FLAGS=z;dl/DSeacas_EXTRA_LINK_FLAGS=curl;z;dl/g' cmake-exodus
|
||||
|
||||
# Special handling for Cygwin
|
||||
if [[ `uname -s` == *"CYGWIN"* ]]; then
|
||||
BUILD=NO ./install-tpl.sh;
|
||||
sed -i 's/defined(_WIN32) || defined(__CYGWIN__)/defined(_WIN32)/g' `ls -t -d TPL/zlib-* | head -1`/gzguts.h;
|
||||
export DOWNLOAD=NO;
|
||||
fi;
|
||||
|
||||
# ==== INSTALL REQUIRED LIBRARIES ==================
|
||||
# Use seacas/install-tpl.sh
|
||||
# These flags are recommended for LaGriT
|
||||
CGNS=NO MATIO=NO GNU_PARALLEL=NO FMT=NO SHARED=NO NEEDS_ZLIB=YES ./install-tpl.sh
|
||||
|
||||
# Result: lib/libhdf5.a lib/libhdf5_hl.a lib/libhdf5_tools.a lib/libnetcdf.a
|
||||
#
|
||||
# ==== RUN CMAKE ====================================
|
||||
|
||||
cd $ACCESS
|
||||
mkdir build && cd build
|
||||
FORTRAN=YES SHARED=NO ../cmake-exodus
|
||||
|
||||
# result:
|
||||
# -- Build files have been written to: TPLs/seacas/build
|
||||
# HAVE_NETCDF: YES
|
||||
|
||||
# ==== BUILD and INSTALL EXODUS =====================
|
||||
# In directory seacas/build
|
||||
make && make install
|
||||
|
||||
# ==== SCRIPT DONE ==================================
|
||||
# CHECK: libs and files used by lagrit located in TPLs/seacas
|
||||
#
|
||||
# bsh% ls lib/*a
|
||||
# lib/libexodus.a lib/libexoIIv2for32.a lib/libhdf5_hl.a lib/libnetcdf.a
|
||||
# lib/libexodus_for.a lib/libhdf5.a lib/libhdf5_tools.a lib/libz.a
|
||||
#
|
||||
# bsh% ls include/exo*
|
||||
# include/exodus_config.h include/exodusII.h include/exodusII.inc include/exodusII_par.h
|
||||
# include/netcdf.h include/hdf5.h
|
||||
#
|
||||
# Once Exodus is installed, use the following commands to build lagrit executable:
|
||||
#
|
||||
# mkdir build/ && cd build/
|
||||
# cmake .. -DLAGRIT_BUILD_EXODUS=ON
|
||||
# make
|
||||
# or
|
||||
# make VERBOSE=1
|
||||
|
||||
Reference in New Issue
Block a user