Cross-Platform build scripts for audio plugins
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

110 lines
3.5KB

  1. #!/bin/bash
  2. set -e
  3. cd $(dirname ${0})
  4. PAWPAW_ROOT="${PWD}"
  5. # ---------------------------------------------------------------------------------------------------------------------
  6. # check target
  7. target="${1}"
  8. if [ -z "${target}" ]; then
  9. echo "usage: ${0} <target>"
  10. exit 1
  11. fi
  12. # ---------------------------------------------------------------------------------------------------------------------
  13. # source setup code
  14. source setup/check_target.sh
  15. source setup/env.sh
  16. source setup/functions.sh
  17. source setup/versions.sh
  18. # ---------------------------------------------------------------------------------------------------------------------
  19. # run bootstrap dependencies
  20. ./bootstrap-common.sh "${target}"
  21. ./bootstrap-jack2.sh "${target}"
  22. ./bootstrap-plugins.sh "${target}"
  23. ./bootstrap-python.sh "${target}"
  24. # ---------------------------------------------------------------------------------------------------------------------
  25. # jack2
  26. JACK2_EXTRAFLAGS=""
  27. if [ "${CROSS_COMPILING}" -eq 1 ]; then
  28. if [ "${LINUX}" -eq 1 ]; then
  29. JACK2_EXTRAFLAGS+=" --platform=linux"
  30. elif [ "${MACOS}" -eq 1 ]; then
  31. JACK2_EXTRAFLAGS+=" --platform=darwin"
  32. elif [ "${WIN32}" -eq 1 ]; then
  33. JACK2_EXTRAFLAGS+=" --platform=win32"
  34. fi
  35. fi
  36. if [ "${WIN32}" -eq 1 ]; then
  37. JACK2_EXTRAFLAGS+=" --static"
  38. fi
  39. JACK2_VERSION="250420381b1a6974798939ad7104ab1a4b9a9994"
  40. JACK2_URL="https://github.com/jackaudio/jack2.git"
  41. download jack2 "${JACK2_VERSION}" "${JACK2_URL}" "" "git"
  42. build_waf jack2 "${JACK2_VERSION}" "${JACK2_EXTRAFLAGS}"
  43. # patch pkg-config file for static win32 builds in regular prefix
  44. if [ "${WIN32}" -eq 1 ]; then
  45. if [ "${WIN64}" -eq 1 ]; then
  46. s="64"
  47. else
  48. s=""
  49. fi
  50. sed -i -e "s/-L\${libdir} -ljack${s}/-L\${libdir} -Wl,-Bdynamic -ljack${s} -Wl,-Bstatic/" "${PAWPAW_PREFIX}/lib/pkgconfig/jack.pc"
  51. fi
  52. # ---------------------------------------------------------------------------------------------------------------------
  53. # aggdraw
  54. AGGDRAW_VERSION="1.3.11"
  55. if [ "${WIN32}" -eq 1 ]; then
  56. export AGGDRAW_FREETYPE_ROOT="${PAWPAW_PREFIX}"
  57. export EXTRA_CFLAGS="$(${PAWPAW_PREFIX}/bin/pkg-config --cflags python3 freetype2 libpng)"
  58. export EXTRA_LDFLAGS="-shared $(${PAWPAW_PREFIX}/bin/pkg-config --libs python3 freetype2 libpng) -lgdi32 -lkernel32 -luser32"
  59. fi
  60. download aggdraw "${AGGDRAW_VERSION}" "https://files.pythonhosted.org/packages/ef/29/fddf555c68920bb0aff977425af786226db2a78379e706951ff32b4492ef"
  61. build_python aggdraw "${AGGDRAW_VERSION}"
  62. unset AGGDRAW_FREETYPE_ROOT
  63. if [ "${WIN32}" -eq 1 ] && [ "${CROSS_COMPILING}" -eq 1 ]; then
  64. PYTHONPATH="${PAWPAW_PREFIX}/lib/python3.8/site-packages"
  65. if [ ! -e "${PYTHONPATH}/aggdraw.pyd" ]; then
  66. ln -sv "${PYTHONPATH}"/aggdraw-*.egg/*.so "${PYTHONPATH}/aggdraw.pyd"
  67. fi
  68. unset PYTHONPATH
  69. fi
  70. # ---------------------------------------------------------------------------------------------------------------------
  71. # tornado
  72. TORNADO_VERSION="4.3"
  73. download tornado "${TORNADO_VERSION}" "https://files.pythonhosted.org/packages/21/29/e64c97013e97d42d93b3d5997234a6f17455f3744847a7c16289289f8fa6"
  74. build_python tornado "${TORNADO_VERSION}"
  75. if [ "${WIN32}" -eq 1 ] && [ "${CROSS_COMPILING}" -eq 1 ]; then
  76. PYTHONPATH="${PAWPAW_PREFIX}/lib/python3.8/site-packages"
  77. if [ ! -e "${PYTHONPATH}/tornado" ]; then
  78. ln -sv "${PYTHONPATH}"/tornado-*.egg/tornado "${PYTHONPATH}/tornado"
  79. fi
  80. unset PYTHONPATH
  81. fi
  82. # ---------------------------------------------------------------------------------------------------------------------