diff --git a/Allwmake b/Allwmake index 31eab2d..5402470 100755 --- a/Allwmake +++ b/Allwmake @@ -26,7 +26,37 @@ then : "${DRAGON_LIBS:=$dragon_libs}" fi -export RADEX_DIR SMARTREDIS_DIR DRAGON_LIBS DRAGON_INCLUDES +find_lib_dir() { + local install_dir="$1" + local lib="$2" + + local dir=$( + find "$install_dir" -type f \( \ + -name "${lib}.so" -o \ + -name "${lib}.dylib" -o \ + -name "${lib}.a" \ + \) -exec dirname {} \; -quit + ) + + if [[ -z "$dir" ]]; then + printf 'Error: could not find %s under %s\n' "$lib" "$root" >&2 + return 1 + fi + + echo "$dir" +} + +RADEX_INCLUDE_DIR="${RADEX_DIR}/include" +RADEX_LIB_DIR="$(find_lib_dir ${RADEX_DIR} libradex)" +SMARTREDIS_INCLUDE_DIR="${SMARTREDIS_DIR}/include" +SMARTREDIS_LIB_DIR="$(find_lib_dir ${SMARTREDIS_DIR} libsmartredis)" + +export DRAGON_INCLUDES \ + DRAGON_LIBS \ + RADEX_INCLUDE_DIR \ + RADEX_LIB_DIR \ + SMARTREDIS_INCLUDE_DIR \ + SMARTREDIS_LIB_DIR # Create the $FOAM_USER_LIBBIN if not existing. # - This happens with a fresh OpenFOAM installation. @@ -59,4 +89,4 @@ then exit 1 fi -python3 -m pip install . \ No newline at end of file +python3 -m pip install . diff --git a/src/openFOAM/Allwmake b/src/openFOAM/Allwmake index 2664641..e4b2ad2 100644 --- a/src/openFOAM/Allwmake +++ b/src/openFOAM/Allwmake @@ -26,7 +26,37 @@ then : "${DRAGON_LIBS:=$dragon_libs}" fi -export RADEX_DIR SMARTREDIS_DIR DRAGON_LIBS DRAGON_INCLUDES +find_lib_dir() { + local install_dir="$1" + local lib="$2" + + local dir=$( + find "$install_dir" -type f \( \ + -name "${lib}.so" -o \ + -name "${lib}.dylib" -o \ + -name "${lib}.a" \ + \) -exec dirname {} \; -quit + ) + + if [[ -z "$dir" ]]; then + printf 'Error: could not find %s under %s\n' "$lib" "$root" >&2 + return 1 + fi + + echo "$dir" +} + +RADEX_INCLUDE_DIR="${RADEX_DIR}/include" +RADEX_LIB_DIR="$(find_lib_dir ${RADEX_DIR} libradex)" +SMARTREDIS_INCLUDE_DIR="${SMARTREDIS_DIR}/include" +SMARTREDIS_LIB_DIR="$(find_lib_dir ${SMARTREDIS_DIR} libsmartredis)" + +export DRAGON_INCLUDES \ + DRAGON_LIBS \ + RADEX_INCLUDE_DIR \ + RADEX_LIB_DIR \ + SMARTREDIS_INCLUDE_DIR \ + SMARTREDIS_LIB_DIR # Create the $FOAM_USER_LIBBIN if not existing. # - This happens with a fresh OpenFOAM installation. @@ -40,4 +70,4 @@ fi wmake libso radexIO wmake libso functionObjects/radexBase wmake libso functionObjects/radexWrite -wmake libso functionObjects/radexRead \ No newline at end of file +wmake libso functionObjects/radexRead diff --git a/src/openFOAM/functionObjects/radexBase/Make/options b/src/openFOAM/functionObjects/radexBase/Make/options index 5133bb7..1fd92a3 100644 --- a/src/openFOAM/functionObjects/radexBase/Make/options +++ b/src/openFOAM/functionObjects/radexBase/Make/options @@ -1,15 +1,17 @@ -RADEX_DIR ?= +RADEX_INCLUDE_DIR ?= +RADEX_LIB_DIR ?= DRAGON_LIBS ?= DRAGON_INCLUDES ?= -SMARTREDIS_DIR ?= +SMARTREDIS_INCLUDE_DIR ?= +SMARTREDIS_LIB_DIR ?= EXE_INC = \ -std=c++17 \ -I../../radexIO/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/meshTools/lnInclude \ - -I$(RADEX_DIR)/include \ - -I$(SMARTREDIS_DIR)/include \ + -I$(RADEX_INCLUDE_DIR) \ + -I$(SMARTREDIS_INCLUDE_DIR) \ $(DRAGON_INCLUDES) LIB_LIBS = \ @@ -17,10 +19,10 @@ LIB_LIBS = \ -lmeshTools \ -L$(FOAM_USER_LIBBIN) \ -lradexIO \ - -L$(RADEX_DIR)/lib \ + -L$(RADEX_LIB_DIR) \ -lradex \ - -Wl,-rpath,$(RADEX_DIR)/lib \ - -L$(SMARTREDIS_DIR)/lib \ + -Wl,-rpath,$(RADEX_LIB_DIR) \ + -L$(SMARTREDIS_LIB_DIR) \ -lsmartredis \ $(DRAGON_LIBS) \ -Wl,-rpath,/Users/ashao/dev/hpc-pe-dragon-dragon/src/dragon/lib diff --git a/src/openFOAM/functionObjects/radexRead/Make/options b/src/openFOAM/functionObjects/radexRead/Make/options index 9d8a0eb..9a434fd 100644 --- a/src/openFOAM/functionObjects/radexRead/Make/options +++ b/src/openFOAM/functionObjects/radexRead/Make/options @@ -1,7 +1,9 @@ -RADEX_DIR ?= +RADEX_INCLUDE_DIR ?= +RADEX_LIB_DIR ?= DRAGON_LIBS ?= DRAGON_INCLUDES ?= -SMARTREDIS_DIR ?= +SMARTREDIS_INCLUDE_DIR ?= +SMARTREDIS_LIB_DIR ?= EXE_INC = \ -std=c++17 \ @@ -9,8 +11,8 @@ EXE_INC = \ -I../../radexIO/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/meshTools/lnInclude \ - -I$(RADEX_DIR)/include \ - -I$(SMARTREDIS_DIR)/include \ + -I$(RADEX_INCLUDE_DIR) \ + -I$(SMARTREDIS_INCLUDE_DIR) \ $(DRAGON_INCLUDES) LIB_LIBS = \ @@ -19,10 +21,10 @@ LIB_LIBS = \ -L$(FOAM_USER_LIBBIN) \ -lradexIO \ -lradexBase \ - -L$(RADEX_DIR)/lib \ + -L$(RADEX_LIB_DIR) \ -lradex \ - -Wl,-rpath,$(RADEX_DIR)/lib \ - -L$(SMARTREDIS_DIR)/lib \ + -Wl,-rpath,$(RADEX_LIB_DIR) \ + -L$(SMARTREDIS_LIB_DIR) \ -lsmartredis \ $(DRAGON_LIBS) \ -Wl,-rpath,/Users/ashao/dev/hpc-pe-dragon-dragon/src/dragon/lib diff --git a/src/openFOAM/functionObjects/radexWrite/Make/options b/src/openFOAM/functionObjects/radexWrite/Make/options index 9d8a0eb..9a434fd 100644 --- a/src/openFOAM/functionObjects/radexWrite/Make/options +++ b/src/openFOAM/functionObjects/radexWrite/Make/options @@ -1,7 +1,9 @@ -RADEX_DIR ?= +RADEX_INCLUDE_DIR ?= +RADEX_LIB_DIR ?= DRAGON_LIBS ?= DRAGON_INCLUDES ?= -SMARTREDIS_DIR ?= +SMARTREDIS_INCLUDE_DIR ?= +SMARTREDIS_LIB_DIR ?= EXE_INC = \ -std=c++17 \ @@ -9,8 +11,8 @@ EXE_INC = \ -I../../radexIO/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/meshTools/lnInclude \ - -I$(RADEX_DIR)/include \ - -I$(SMARTREDIS_DIR)/include \ + -I$(RADEX_INCLUDE_DIR) \ + -I$(SMARTREDIS_INCLUDE_DIR) \ $(DRAGON_INCLUDES) LIB_LIBS = \ @@ -19,10 +21,10 @@ LIB_LIBS = \ -L$(FOAM_USER_LIBBIN) \ -lradexIO \ -lradexBase \ - -L$(RADEX_DIR)/lib \ + -L$(RADEX_LIB_DIR) \ -lradex \ - -Wl,-rpath,$(RADEX_DIR)/lib \ - -L$(SMARTREDIS_DIR)/lib \ + -Wl,-rpath,$(RADEX_LIB_DIR) \ + -L$(SMARTREDIS_LIB_DIR) \ -lsmartredis \ $(DRAGON_LIBS) \ -Wl,-rpath,/Users/ashao/dev/hpc-pe-dragon-dragon/src/dragon/lib diff --git a/src/openFOAM/radexIO/Make/options b/src/openFOAM/radexIO/Make/options index b15c51b..47c7c2c 100644 --- a/src/openFOAM/radexIO/Make/options +++ b/src/openFOAM/radexIO/Make/options @@ -1,23 +1,25 @@ -RADEX_DIR ?= +RADEX_INCLUDE_DIR ?= +RADEX_LIB_DIR ?= DRAGON_LIBS ?= DRAGON_INCLUDES ?= -SMARTREDIS_DIR ?= +SMARTREDIS_INCLUDE_DIR ?= +SMARTREDIS_LIB_DIR ?= EXE_INC = \ -std=c++17 \ -I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/meshTools/lnInclude \ - -I$(RADEX_DIR)/include \ - -I$(SMARTREDIS_DIR)/include \ + -I$(RADEX_INCLUDE_DIR) \ + -I$(SMARTREDIS_INCLUDE_DIR) \ $(DRAGON_INCLUDES) LIB_LIBS = \ -lfiniteVolume \ -lmeshTools \ - -L$(RADEX_DIR)/lib \ + -L$(RADEX_LIB_DIR) \ -lradex \ - -Wl,-rpath,$(RADEX_DIR)/lib \ - -L$(SMARTREDIS_DIR)/lib \ + -Wl,-rpath,$(RADEX_LIB_DIR) \ + -L$(SMARTREDIS_LIB_DIR) \ -lsmartredis \ $(DRAGON_LIBS) \ -Wl,-rpath,/Users/ashao/dev/hpc-pe-dragon-dragon/src/dragon/lib