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.

160 lines
5.0KB

  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. export PAWPAW_SKIP_LTO=1
  15. source setup/check_target.sh
  16. source setup/env.sh
  17. source setup/functions.sh
  18. source setup/versions.sh
  19. # ---------------------------------------------------------------------------------------------------------------------
  20. # run bootstrap dependencies
  21. ./bootstrap-common.sh "${target}"
  22. ./bootstrap-jack2.sh "${target}"
  23. ./bootstrap-plugins.sh "${target}"
  24. ./bootstrap-python.sh "${target}"
  25. ./bootstrap-qt.sh "${target}"
  26. # ---------------------------------------------------------------------------------------------------------------------
  27. # merged usr mode
  28. mkdir -p "${PAWPAW_PREFIX}/usr"
  29. if [ ! -e "${PAWPAW_PREFIX}/usr/bin" ]; then
  30. ln -s ../bin "${PAWPAW_PREFIX}/usr/bin"
  31. fi
  32. if [ ! -e "${PAWPAW_PREFIX}/usr/docs" ]; then
  33. ln -s ../docs "${PAWPAW_PREFIX}/usr/docs"
  34. fi
  35. if [ ! -e "${PAWPAW_PREFIX}/usr/etc" ]; then
  36. ln -s ../etc "${PAWPAW_PREFIX}/usr/etc"
  37. fi
  38. if [ ! -e "${PAWPAW_PREFIX}/usr/include" ]; then
  39. ln -s ../include "${PAWPAW_PREFIX}/usr/include"
  40. fi
  41. if [ ! -e "${PAWPAW_PREFIX}/usr/lib" ]; then
  42. ln -s ../lib "${PAWPAW_PREFIX}/usr/lib"
  43. fi
  44. if [ ! -e "${PAWPAW_PREFIX}/usr/share" ]; then
  45. ln -s ../share "${PAWPAW_PREFIX}/usr/share"
  46. fi
  47. # ---------------------------------------------------------------------------------------------------------------------
  48. # merged usr mode (host)
  49. mkdir -p "${PAWPAW_PREFIX}-host/usr"
  50. if [ ! -e "${PAWPAW_PREFIX}-host/usr/bin" ]; then
  51. ln -s ../bin "${PAWPAW_PREFIX}-host/usr/bin"
  52. fi
  53. # ---------------------------------------------------------------------------------------------------------------------
  54. # jack2
  55. JACK2_EXTRAFLAGS=""
  56. if [ "${CROSS_COMPILING}" -eq 1 ]; then
  57. if [ "${LINUX}" -eq 1 ]; then
  58. JACK2_EXTRAFLAGS+=" --platform=linux"
  59. elif [ "${MACOS}" -eq 1 ]; then
  60. JACK2_EXTRAFLAGS+=" --platform=darwin"
  61. elif [ "${WIN32}" -eq 1 ]; then
  62. JACK2_EXTRAFLAGS+=" --platform=win32"
  63. fi
  64. fi
  65. if [ "${WIN32}" -eq 1 ]; then
  66. JACK2_EXTRAFLAGS+=" --static"
  67. fi
  68. JACK2_VERSION="250420381b1a6974798939ad7104ab1a4b9a9994"
  69. JACK2_URL="https://github.com/jackaudio/jack2.git"
  70. download jack2 "${JACK2_VERSION}" "${JACK2_URL}" "" "git"
  71. build_waf jack2 "${JACK2_VERSION}" "${JACK2_EXTRAFLAGS}"
  72. # patch pkg-config file for static win32 builds
  73. if [ "${WIN32}" -eq 1 ]; then
  74. if [ "${WIN64}" -eq 1 ]; then
  75. s="64"
  76. else
  77. s=""
  78. fi
  79. sed -i -e "s/-L\${libdir} -ljack${s}/-L\${libdir} -Wl,-Bdynamic -ljackserver${s} -Wl,-Bstatic/" "${PAWPAW_PREFIX}/lib/pkgconfig/jack.pc"
  80. fi
  81. # ---------------------------------------------------------------------------------------------------------------------
  82. # hylia
  83. HYLIA_VERSION="6421909123974ffd431ace47589975f5929bc746"
  84. HYLIA_URL="https://github.com/falkTX/hylia.git"
  85. HYLIA_EXTRAFLAGS="NOOPT=true"
  86. download hylia "${HYLIA_VERSION}" "${HYLIA_URL}" "" "git"
  87. build_make hylia "${HYLIA_VERSION}" "${HYLIA_EXTRAFLAGS}"
  88. # ---------------------------------------------------------------------------------------------------------------------
  89. # aggdraw
  90. AGGDRAW_VERSION="1.3.11"
  91. if [ "${WIN32}" -eq 1 ]; then
  92. export AGGDRAW_FREETYPE_ROOT="${PAWPAW_PREFIX}"
  93. export EXTRA_CFLAGS="$(${PAWPAW_PREFIX}/bin/pkg-config --cflags python3 freetype2 libpng)"
  94. export EXTRA_LDFLAGS="-shared $(${PAWPAW_PREFIX}/bin/pkg-config --libs python3 freetype2 libpng) -lgdi32 -lkernel32 -luser32"
  95. export LDSHARED="${TARGET_CXX}"
  96. fi
  97. download aggdraw "${AGGDRAW_VERSION}" "https://files.pythonhosted.org/packages/ef/29/fddf555c68920bb0aff977425af786226db2a78379e706951ff32b4492ef"
  98. build_python aggdraw "${AGGDRAW_VERSION}"
  99. if [ "${WIN32}" -eq 1 ]; then
  100. unset AGGDRAW_FREETYPE_ROOT
  101. unset LDSHARED
  102. fi
  103. if [ "${WIN32}" -eq 1 ] && [ "${CROSS_COMPILING}" -eq 1 ]; then
  104. PYTHONPATH="${PAWPAW_PREFIX}/lib/python3.8/site-packages"
  105. if [ ! -e "${PYTHONPATH}/aggdraw.pyd" ]; then
  106. ln -sv "${PYTHONPATH}"/aggdraw-*.egg/*.so "${PYTHONPATH}/aggdraw.pyd"
  107. fi
  108. unset PYTHONPATH
  109. fi
  110. # ---------------------------------------------------------------------------------------------------------------------
  111. # tornado
  112. TORNADO_VERSION="4.3"
  113. download tornado "${TORNADO_VERSION}" "https://files.pythonhosted.org/packages/21/29/e64c97013e97d42d93b3d5997234a6f17455f3744847a7c16289289f8fa6"
  114. build_python tornado "${TORNADO_VERSION}"
  115. if [ "${WIN32}" -eq 1 ] && [ "${CROSS_COMPILING}" -eq 1 ]; then
  116. PYTHONPATH="${PAWPAW_PREFIX}/lib/python3.8/site-packages"
  117. if [ ! -e "${PYTHONPATH}/tornado" ]; then
  118. ln -sv "${PYTHONPATH}"/tornado-*.egg/tornado "${PYTHONPATH}/tornado"
  119. fi
  120. unset PYTHONPATH
  121. fi
  122. # ---------------------------------------------------------------------------------------------------------------------