79 lines
2.3 KiB
Bash
79 lines
2.3 KiB
Bash
cd ./src/main/c
|
|
|
|
LIB_ENDING=".so"
|
|
BASE_INCLUDE_DIR=""
|
|
OS_INCLUDE_DIR=""
|
|
|
|
#determine os
|
|
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
|
|
#linux
|
|
LIB_ENDING=".so"
|
|
BASE_INCLUDE_DIR="${JAVA_HOME}/include"
|
|
OS_INCLUDE_DIR="${JAVA_HOME}/include/linux"
|
|
elif [[ "$OSTYPE" == "darwin"* ]]; then
|
|
# Mac OSX
|
|
LIB_ENDING=".so"
|
|
elif [[ "$OSTYPE" == "cygwin" ]]; then
|
|
# POSIX compatibility layer and Linux environment emulation for Windows
|
|
LIB_ENDING=".dll"
|
|
elif [[ "$OSTYPE" == "msys" ]]; then
|
|
# Lightweight shell and GNU utilities compiled for Windows (part of MinGW)
|
|
LIB_ENDING=".dll"
|
|
BASE_INCLUDE_DIR="${JAVA_HOME}/include"
|
|
OS_INCLUDE_DIR="${JAVA_HOME}/include/win32"
|
|
elif [[ "$OSTYPE" == "win32" ]]; then
|
|
# I'm not sure this can happen.
|
|
LIB_ENDING=".dll"
|
|
elif [[ "$OSTYPE" == "freebsd"* ]]; then
|
|
# ...
|
|
LIB_ENDING=".so"
|
|
else
|
|
# Unknown.
|
|
LIB_ENDING=".so"
|
|
fi
|
|
|
|
# echo $PWD
|
|
|
|
#clean compile dir
|
|
rm -f ./*.o
|
|
rm -f ./*.so
|
|
rm -f ./*.dll
|
|
|
|
|
|
#compile object files
|
|
# COMPILE_FLAGS="-c -fPIC -m64 -mavx -mavx2 -march=native -Ofast -msse -msse2 -msse3 -mmmx -m3dnow"
|
|
# INPUT_FILES="./densitystep.c"
|
|
# OUTPUT_FILE="./densitystep.o"
|
|
# gcc $COMPILE_FLAGS -I"$BASE_INCLUDE_DIR" -I"$OS_INCLUDE_DIR" $INPUT_FILES -o $OUTPUT_FILE
|
|
|
|
# COMPILE_FLAGS="-c -fPIC -m64 -mavx -mavx2 -march=native -Ofast -msse -msse2 -msse3 -mmmx -m3dnow"
|
|
# INPUT_FILES="./velocitystep.c"
|
|
# OUTPUT_FILE="./velocitystep.o"
|
|
# gcc $COMPILE_FLAGS -I"$BASE_INCLUDE_DIR" -I"$OS_INCLUDE_DIR" $INPUT_FILES -o $OUTPUT_FILE
|
|
|
|
COMPILE_FLAGS="-c -fPIC -m64 -mavx -mavx2 -march=native -Ofast -msse -msse2 -msse3 -mmmx -m3dnow"
|
|
INPUT_FILES="./javainterface.c"
|
|
OUTPUT_FILE="./javainterface.o"
|
|
gcc $COMPILE_FLAGS -I"$BASE_INCLUDE_DIR" -I"$OS_INCLUDE_DIR" $INPUT_FILES -o $OUTPUT_FILE
|
|
|
|
COMPILE_FLAGS="-c -fPIC -m64 -mavx -mavx2 -march=native -Ofast -msse -msse2 -msse3 -mmmx -m3dnow"
|
|
INPUT_FILES="./fluidsim.c"
|
|
OUTPUT_FILE="./fluidsim.o"
|
|
gcc $COMPILE_FLAGS -I"$BASE_INCLUDE_DIR" -I"$OS_INCLUDE_DIR" $INPUT_FILES -o $OUTPUT_FILE
|
|
|
|
|
|
|
|
#compile shared object file
|
|
OUTPUT_FILE="libfluidsim$LIB_ENDING"
|
|
COMPILE_FLAGS="-shared"
|
|
INPUT_FILES="fluidsim.o javainterface.o"
|
|
gcc $COMPILE_FLAGS $INPUT_FILES -o $OUTPUT_FILE
|
|
|
|
#move to resources
|
|
mkdir -p ../../../shared-folder
|
|
mv "./libfluidsim$LIB_ENDING" "../../../shared-folder/"
|
|
|
|
#clean compile dir
|
|
rm -f ./*.o
|
|
rm -f ./*.so
|
|
rm -f ./*.dll |