1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-08 11:38:21 +02:00
Beef/bin/build.sh

92 lines
3.3 KiB
Bash
Raw Normal View History

2019-08-23 11:56:54 -07:00
#!/bin/bash
echo Starting build.sh
PATH=/usr/local/bin:$PATH:$HOME/bin
2020-05-21 09:21:35 -07:00
SCRIPTPATH=$(cd -P -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd -P)
2020-06-30 12:13:20 -07:00
ROOTPATH="$(dirname "$SCRIPTPATH")"
2020-05-21 09:21:35 -07:00
echo Building from from $SCRIPTPATH
cd $SCRIPTPATH
2019-08-23 11:56:54 -07:00
USE_NINJA=""
if command -v ninja >/dev/null 2>&1 ; then
USE_NINJA="-GNinja"
fi
2019-08-23 11:56:54 -07:00
# exit when any command fails
set -e
2019-08-24 08:01:43 -07:00
### Dependencies ###
if [ ! -f ../BeefySysLib/third_party/libffi/Makefile ]; then
echo Building libffi...
cd ../BeefySysLib/third_party/libffi
./configure
2020-05-21 09:21:35 -07:00
make
cd $SCRIPTPATH
2019-08-24 08:01:43 -07:00
fi
2022-02-08 10:38:02 -08:00
if [ ! -f ../extern/llvm_linux_13_0_1/_Done.txt ]; then
2019-08-24 08:01:43 -07:00
echo Building LLVM...
cd ../extern
./llvm_build.sh
cd $SCRIPTPATH
2019-08-24 08:01:43 -07:00
fi
2019-08-23 11:56:54 -07:00
### LIBS ###
cd ..
if [ ! -d jbuild_d ]; then
mkdir jbuild_d
mkdir jbuild
fi
cd jbuild_d
cmake $USE_NINJA -DCMAKE_BUILD_TYPE=Debug ../
2019-08-23 11:56:54 -07:00
cmake --build .
cd ../jbuild
cmake $USE_NINJA -DCMAKE_BUILD_TYPE=RelWithDebInfo ../
2019-08-23 11:56:54 -07:00
cmake --build .
cd ../IDE/dist
if [[ "$OSTYPE" == "darwin"* ]]; then
LIBEXT=dylib
2020-05-21 13:30:30 -07:00
LINKOPTS="-Wl,-no_compact_unwind -Wl,-rpath -Wl,@executable_path"
else
2020-05-21 13:30:30 -07:00
LIBEXT=so
2020-05-21 06:58:26 -07:00
LINKOPTS="-ldl -lpthread -Wl,-rpath -Wl,\$ORIGIN"
fi
2020-06-30 12:13:20 -07:00
ln -s -f $ROOTPATH/jbuild_d/Debug/bin/libBeefRT_d.a libBeefRT_d.a
ln -s -f $ROOTPATH/jbuild_d/Debug/bin/libBeefySysLib_d.$LIBEXT libBeefySysLib_d.$LIBEXT
ln -s -f $ROOTPATH/jbuild_d/Debug/bin/libIDEHelper_d.$LIBEXT libIDEHelper_d.$LIBEXT
2020-06-30 12:13:20 -07:00
ln -s -f $ROOTPATH/jbuild/Release/bin/libBeefRT.a libBeefRT.a
ln -s -f $ROOTPATH/jbuild/Release/bin/libBeefySysLib.$LIBEXT libBeefySysLib.$LIBEXT
ln -s -f $ROOTPATH/jbuild/Release/bin/libIDEHelper.$LIBEXT libIDEHelper.$LIBEXT
2019-08-23 11:56:54 -07:00
2021-12-03 15:09:43 -08:00
ln -s -f $ROOTPATH/jbuild_d/Debug/bin/libBeefRT_d.a ../../BeefLibs/Beefy2D/dist/libBeefRT_d.a
ln -s -f $ROOTPATH/jbuild_d/Debug/bin/libBeefySysLib_d.$LIBEXT ../../BeefLibs/Beefy2D/dist/libBeefySysLib_d.$LIBEXT
ln -s -f $ROOTPATH/jbuild_d/Debug/bin/libIDEHelper_d.$LIBEXT ../../BeefLibs/Beefy2D/dist/libIDEHelper_d.$LIBEXT
2021-12-03 14:53:32 -08:00
ln -s -f $ROOTPATH/jbuild/Release/bin/libBeefRT.a ../../BeefLibs/Beefy2D/dist/libBeefRT.a
ln -s -f $ROOTPATH/jbuild/Release/bin/libBeefySysLib.$LIBEXT ../../BeefLibs/Beefy2D/dist/libBeefySysLib.$LIBEXT
ln -s -f $ROOTPATH/jbuild/Release/bin/libIDEHelper.$LIBEXT ../../BeefLibs/Beefy2D/dist/libIDEHelper.$LIBEXT
2019-08-23 11:56:54 -07:00
### DEBUG ###
echo Building BeefBuild_bootd
../../jbuild_d/Debug/bin/BeefBoot --out="BeefBuild_bootd" --src=../src --src=../../BeefBuild/src --src=../../BeefLibs/corlib/src --src=../../BeefLibs/Beefy2D/src --define=CLI --define=DEBUG --startup=BeefBuild.Program --linkparams="./libBeefRT_d.a ./libIDEHelper_d.$LIBEXT ./libBeefySysLib_d.$LIBEXT $(< ../../IDE/dist/IDEHelper_libs_d.txt) $LINKOPTS"
2019-08-23 11:56:54 -07:00
echo Building BeefBuild_d
2019-10-15 17:27:09 -07:00
./BeefBuild_bootd -clean -proddir=../../BeefBuild -config=Debug
2019-08-23 11:56:54 -07:00
echo Testing IDEHelper/Tests in BeefBuild_d
./BeefBuild_d -proddir=../../IDEHelper/Tests -test
### RELEASE ###
echo Building BeefBuild_boot
../../jbuild/Release/bin/BeefBoot --out="BeefBuild_boot" --src=../src --src=../../BeefBuild/src --src=../../BeefLibs/corlib/src --src=../../BeefLibs/Beefy2D/src --define=CLI --startup=BeefBuild.Program --linkparams="./libBeefRT.a ./libIDEHelper.$LIBEXT ./libBeefySysLib.$LIBEXT $(< ../../IDE/dist/IDEHelper_libs.txt) $LINKOPTS"
2020-03-08 14:47:17 +05:30
echo Building BeefBuild
2019-10-15 17:27:09 -07:00
./BeefBuild_boot -clean -proddir=../../BeefBuild -config=Release
2019-08-23 11:56:54 -07:00
echo Testing IDEHelper/Tests in BeefBuild
./BeefBuild -proddir=../../IDEHelper/Tests -test