build.sh 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #!/bin/bash
  2. echo Starting build.sh
  3. PATH=/usr/local/bin:$PATH:$HOME/bin
  4. SCRIPTPATH=$(cd -P -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd -P)
  5. echo Building from from $SCRIPTPATH
  6. cd $SCRIPTPATH
  7. # exit when any command fails
  8. set -e
  9. ### Dependencies ###
  10. if [ ! -f ../BeefySysLib/third_party/libffi/Makefile ]; then
  11. echo Building libffi...
  12. cd ../BeefySysLib/third_party/libffi
  13. ./configure
  14. make
  15. cd $SCRIPTPATH
  16. fi
  17. if [ ! -d ../extern/llvm_linux_8_0_0/bin ]; then
  18. echo Building LLVM...
  19. cd ../extern
  20. ./llvm_build.sh
  21. cd $SCRIPTPATH
  22. fi
  23. ### LIBS ###
  24. cd ..
  25. if [ ! -d jbuild_d ]; then
  26. mkdir jbuild_d
  27. mkdir jbuild
  28. fi
  29. cd jbuild_d
  30. cmake -DCMAKE_BUILD_TYPE=Debug ../
  31. cmake --build .
  32. cd ../jbuild
  33. cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ../
  34. cmake --build .
  35. cd ../IDE/dist
  36. if [[ "$OSTYPE" == "darwin"* ]]; then
  37. LIBEXT=dylib
  38. LINKOPTS="-Wl,-no_compact_unwind -Wl,-rpath -Wl,@executable_path"
  39. else
  40. LIBEXT=so
  41. LINKOPTS="-ldl -lpthread -Wl,-rpath -Wl,\$ORIGIN"
  42. fi
  43. if [ ! -L libBeefRT_d.a ]; then
  44. ln -s ../../jbuild_d/Debug/bin/libBeefRT_d.a libBeefRT_d.a
  45. ln -s ../../jbuild_d/Debug/bin/libBeefySysLib_d.$LIBEXT libBeefySysLib_d.$LIBEXT
  46. ln -s ../../jbuild_d/Debug/bin/libIDEHelper_d.$LIBEXT libIDEHelper_d.$LIBEXT
  47. ln -s ../../jbuild/Release/bin/libBeefRT.a libBeefRT.a
  48. ln -s ../../jbuild/Release/bin/libBeefySysLib.$LIBEXT libBeefySysLib.$LIBEXT
  49. ln -s ../../jbuild/Release/bin/libIDEHelper.$LIBEXT libIDEHelper.$LIBEXT
  50. fi
  51. ### DEBUG ###
  52. echo Building BeefBuild_bootd
  53. ../../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"
  54. echo Building BeefBuild_d
  55. ./BeefBuild_bootd -clean -proddir=../../BeefBuild -config=Debug
  56. echo Testing IDEHelper/Tests in BeefBuild_d
  57. ./BeefBuild_d -proddir=../../IDEHelper/Tests -test
  58. ### RELEASE ###
  59. echo Building BeefBuild_boot
  60. ../../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"
  61. echo Building BeefBuild
  62. ./BeefBuild_boot -clean -proddir=../../BeefBuild -config=Release
  63. echo Testing IDEHelper/Tests in BeefBuild
  64. ./BeefBuild -proddir=../../IDEHelper/Tests -test