b1d236ee16
Some installed files are not recognized when we create the massage tar, for example $PREFIX/opt/OpenFOAM-v2106/src/OpenFOAM/memory/tmp/tmp.H. The compiled files work just find without them, but if we want to compile another variant of openfoam on device then they are necessary. Copying straight into the massage dir fixes the issue.
92 lines
3.1 KiB
Bash
92 lines
3.1 KiB
Bash
TERMUX_PKG_HOMEPAGE=https://www.openfoam.com
|
|
TERMUX_PKG_DESCRIPTION="OpenFOAM is a CFD software written in C++"
|
|
TERMUX_PKG_MAINTAINER="Henrik Grimler @Grimler91"
|
|
TERMUX_PKG_LICENSE="GPL-3.0"
|
|
TERMUX_PKG_VERSION=2106
|
|
TERMUX_PKG_SRCURL=https://develop.openfoam.com/Development/openfoam/-/archive/OpenFOAM-v${TERMUX_PKG_VERSION}/openfoam-OpenFOAM-v${TERMUX_PKG_VERSION}.tar.gz
|
|
TERMUX_PKG_SHA256=f8be6743ed4c534a54024a6837a22e3a7392a454e29e1a4655ae6a009064d64a
|
|
TERMUX_PKG_DEPENDS="openmpi, flex, boost, cgal, fftw, readline, libc++"
|
|
TERMUX_PKG_RM_AFTER_INSTALL="opt/OpenFOAM-v${TERMUX_PKG_VERSION}/build"
|
|
TERMUX_PKG_BUILD_IN_SRC=true
|
|
TERMUX_PKG_HOSTBUILD=true
|
|
|
|
termux_step_host_build() {
|
|
(
|
|
cd $TERMUX_PKG_SRCDIR
|
|
set +u
|
|
source etc/bashrc WM_ARCH_OPTION=32 || true
|
|
cd wmake/src
|
|
make
|
|
source ../../etc/bashrc WM_ARCH_OPTION=64 || true
|
|
set -u
|
|
make
|
|
)
|
|
mkdir -p platforms/tools
|
|
mv $TERMUX_PKG_SRCDIR/platforms/tools/linuxGcc platforms/tools/
|
|
mv $TERMUX_PKG_SRCDIR/platforms/tools/linux64Gcc platforms/tools/
|
|
}
|
|
|
|
termux_step_pre_configure() {
|
|
if [ "$TERMUX_ARCH" == "aarch64" ]; then
|
|
ARCH_FOLDER=linuxARM64Clang
|
|
TERMUX_COMPILER_PREFIX="aarch64-linux-android"
|
|
ARCH=aarch64
|
|
elif [ "$TERMUX_ARCH" == "arm" ]; then
|
|
ARCH_FOLDER=linuxARM7Clang
|
|
TERMUX_COMPILER_PREFIX="arm-linux-androideabi"
|
|
ARCH=armv7l
|
|
elif [ "$TERMUX_ARCH" == "i686" ]; then
|
|
ARCH_FOLDER=linuxClang
|
|
TERMUX_COMPILER_PREFIX="i686-linux-android"
|
|
ARCH=i686
|
|
elif [ "$TERMUX_ARCH" == "x86_64" ]; then
|
|
ARCH_FOLDER=linux64Clang
|
|
TERMUX_COMPILER_PREFIX="x86_64-linux-android"
|
|
ARCH=x86_64
|
|
fi
|
|
sed -i "s%\@TERMUX_COMPILER_PREFIX\@%${TERMUX_COMPILER_PREFIX}%g" "$TERMUX_PKG_SRCDIR/wmake/rules/General/Clang/c"
|
|
sed -i "s%\@TERMUX_COMPILER_PREFIX\@%${TERMUX_COMPILER_PREFIX}%g" "$TERMUX_PKG_SRCDIR/wmake/rules/General/Clang/c++"
|
|
sed -i "s%\@TERMUX_COMPILER_PREFIX\@%${TERMUX_COMPILER_PREFIX}%g" "$TERMUX_PKG_SRCDIR/wmake/rules/General/general"
|
|
|
|
mkdir -p platforms/tools
|
|
cp -r $TERMUX_PKG_HOSTBUILD_DIR/platforms/tools/linux64Gcc platforms/tools/${ARCH_FOLDER}
|
|
if [ $TERMUX_ARCH_BITS = 32 ]; then
|
|
cp -r $TERMUX_PKG_HOSTBUILD_DIR/platforms/tools/linuxGcc platforms/tools/${ARCH_FOLDER}
|
|
else
|
|
cp -r $TERMUX_PKG_HOSTBUILD_DIR/platforms/tools/linux64Gcc platforms/tools/${ARCH_FOLDER}
|
|
fi
|
|
}
|
|
|
|
termux_step_make() {
|
|
# Set ARCH here again so that continued builds work
|
|
if [ "$TERMUX_ARCH" == "aarch64" ]; then
|
|
ARCH=aarch64
|
|
elif [ "$TERMUX_ARCH" == "arm" ]; then
|
|
ARCH=armv7l
|
|
elif [ "$TERMUX_ARCH" == "i686" ]; then
|
|
ARCH=i686
|
|
elif [ "$TERMUX_ARCH" == "x86_64" ]; then
|
|
ARCH=x86_64
|
|
fi
|
|
|
|
# Lots and lots of unset env. variables that "set -u"
|
|
# complains about, so disable exit on error temporarily
|
|
set +u
|
|
source "$TERMUX_PKG_SRCDIR"/etc/bashrc || true
|
|
set -u
|
|
unset LD_LIBRARY_PATH
|
|
./Allwmake
|
|
cd wmake/src
|
|
make clean
|
|
make
|
|
}
|
|
|
|
termux_step_make_install() {
|
|
mkdir -p $TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/opt
|
|
cp -a $TERMUX_PKG_SRCDIR $TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/opt/OpenFOAM-v${TERMUX_PKG_VERSION}
|
|
}
|
|
|
|
termux_step_post_make_install() {
|
|
sed -i 's%$ARCH%$(uname -m)%g' $TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/opt/OpenFOAM-v${TERMUX_PKG_VERSION}/etc/config.sh/settings
|
|
}
|