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.

572 lines
19KB

  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. # skip fluidsynth if glib is not wanted (fluidsynth requires glib)
  14. if [ -n "${PAWPAW_SKIP_GLIB}" ]; then
  15. PAWPAW_SKIP_FLUIDSYNTH=1
  16. fi
  17. # ---------------------------------------------------------------------------------------------------------------------
  18. # run bootstrap dependencies
  19. ./bootstrap-common.sh "${target}"
  20. # ---------------------------------------------------------------------------------------------------------------------
  21. # source setup code
  22. source setup/check_target.sh
  23. source setup/env.sh
  24. source setup/functions.sh
  25. source setup/versions.sh
  26. # ---------------------------------------------------------------------------------------------------------------------
  27. # libpng
  28. if [ "${MACOS}" -eq 0 ]; then
  29. # fix build
  30. export EXTRA_CPPFLAGS="-I${PAWPAW_PREFIX}/include"
  31. if [ -z "${PAWPAW_SKIP_LTO}" ] || [ "${PAWPAW_SKIP_LTO}" -eq 0 ]; then
  32. export EXTRA_CPPFLAGS+=" -fno-lto"
  33. fi
  34. fi
  35. download libpng "${LIBPNG_VERSION}" "${LIBPNG_URL}" "tar.xz"
  36. build_autoconf libpng "${LIBPNG_VERSION}" "${LIBPNG_EXTRAFLAGS}"
  37. if [ "${CROSS_COMPILING}" -eq 0 ]; then
  38. run_make libpng "${LIBPNG_VERSION}" "check -j 1"
  39. fi
  40. if [ "${MACOS}" -eq 1 ] && [ ! -e "${PAWPAW_PREFIX}/lib/pkgconfig/libpng16.pc-e" ]; then
  41. sed -i -e '/Requires.private: zlib/d' "${PAWPAW_PREFIX}/lib/pkgconfig/libpng16.pc"
  42. touch "${PAWPAW_PREFIX}/lib/pkgconfig/libpng16.pc-e"
  43. fi
  44. # ---------------------------------------------------------------------------------------------------------------------
  45. # libxml2
  46. if [ "${MACOS}" -eq 0 ]; then
  47. LIBXML2_EXTRAFLAGS=""
  48. # ensure no system paths are used
  49. LIBXML2_EXTRAFLAGS+=" -DZLIB_INCLUDE_DIR:PATH=${PAWPAW_PREFIX}/include"
  50. LIBXML2_EXTRAFLAGS+=" -DZLIB_LIBRARY=${PAWPAW_PREFIX}/lib/libz.a"
  51. # disable stuff typically not needed for plugins
  52. LIBXML2_EXTRAFLAGS+=" -DLIBXML2_WITH_HTML=OFF"
  53. LIBXML2_EXTRAFLAGS+=" -DLIBXML2_WITH_HTTP=OFF"
  54. LIBXML2_EXTRAFLAGS+=" -DLIBXML2_WITH_ICONV=OFF"
  55. LIBXML2_EXTRAFLAGS+=" -DLIBXML2_WITH_LZMA=OFF"
  56. LIBXML2_EXTRAFLAGS+=" -DLIBXML2_WITH_MODULES=OFF"
  57. LIBXML2_EXTRAFLAGS+=" -DLIBXML2_WITH_PROGRAMS=OFF"
  58. LIBXML2_EXTRAFLAGS+=" -DLIBXML2_WITH_PYTHON=OFF"
  59. LIBXML2_EXTRAFLAGS+=" -DLIBXML2_WITH_THREADS=OFF"
  60. download libxml2 "${LIBXML2_VERSION}" "${LIBXML2_URL}" "tar.xz"
  61. build_cmake libxml2 "${LIBXML2_VERSION}" "${LIBXML2_EXTRAFLAGS}"
  62. fi # !MACOS
  63. # ---------------------------------------------------------------------------------------------------------------------
  64. # pixman
  65. download pixman "${PIXMAN_VERSION}" "${PIXMAN_URL}"
  66. build_autoconf pixman "${PIXMAN_VERSION}"
  67. if [ "${CROSS_COMPILING}" -eq 0 ]; then
  68. run_make pixman "${PIXMAN_VERSION}" check
  69. fi
  70. # ---------------------------------------------------------------------------------------------------------------------
  71. # freetype
  72. FREETYPE_EXTRAFLAGS=""
  73. FREETYPE_EXTRAFLAGS+=" -DFT_REQUIRE_PNG=TRUE"
  74. FREETYPE_EXTRAFLAGS+=" -DFT_REQUIRE_ZLIB=TRUE"
  75. FREETYPE_EXTRAFLAGS+=" -DFT_DISABLE_BROTLI=TRUE"
  76. FREETYPE_EXTRAFLAGS+=" -DFT_DISABLE_BZIP2=TRUE"
  77. FREETYPE_EXTRAFLAGS+=" -DFT_DISABLE_HARFBUZZ=TRUE"
  78. # ensure no system paths are used
  79. # FREETYPE_EXTRAFLAGS+=" -DBROTLIDEC_INCLUDE_DIRS:PATH=${PAWPAW_PREFIX}/include"
  80. # FREETYPE_EXTRAFLAGS+=" -DFREETYPE_INCLUDE_DIRS:PATH=${PAWPAW_PREFIX}/include"
  81. # FREETYPE_EXTRAFLAGS+=" -DHarfBuzz_INCLUDE_DIR:PATH=${PAWPAW_PREFIX}/include/harfbuzz"
  82. FREETYPE_EXTRAFLAGS+=" -DPNG_PNG_INCLUDE_DIR:PATH=${PAWPAW_PREFIX}/include"
  83. if [ "${MACOS}" -eq 0 ]; then
  84. FREETYPE_EXTRAFLAGS+=" -DZLIB_INCLUDE_DIR:PATH=${PAWPAW_PREFIX}/include"
  85. fi
  86. download freetype "${FREETYPE_VERSION}" "${FREETYPE_URL}" "tar.xz"
  87. build_cmake freetype "${FREETYPE_VERSION}" "${FREETYPE_EXTRAFLAGS}"
  88. if [ ! -e "${PAWPAW_PREFIX}/lib/pkgconfig/freetype2.pc-e" ]; then
  89. sed -i -e 's/, libbrotlidec//' "${PAWPAW_PREFIX}/lib/pkgconfig/freetype2.pc"
  90. if [ "${MACOS}" -eq 1 ]; then
  91. sed -i -e 's/Requires: zlib,/Requires:/' "${PAWPAW_PREFIX}/lib/pkgconfig/freetype2.pc"
  92. fi
  93. touch "${PAWPAW_PREFIX}/lib/pkgconfig/freetype2.pc-e"
  94. fi
  95. # ---------------------------------------------------------------------------------------------------------------------
  96. # fontconfig
  97. FONTCONFIG_EXTRAFLAGS="--disable-iconv"
  98. if [ "${MACOS}" -eq 0 ]; then
  99. FONTCONFIG_EXTRAFLAGS+=" --enable-libxml2"
  100. fi
  101. download fontconfig "${FONTCONFIG_VERSION}" "${FONTCONFIG_URL}"
  102. build_autoconf fontconfig "${FONTCONFIG_VERSION}" "${FONTCONFIG_EXTRAFLAGS}"
  103. # tests fail on stable release, see https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/177
  104. # if [ "${CROSS_COMPILING}" -eq 0 ]; then
  105. # run_make fontconfig "${FONTCONFIG_VERSION}" check
  106. # fi
  107. # ---------------------------------------------------------------------------------------------------------------------
  108. # cairo
  109. CAIRO_EXTRAFLAGS="--disable-gtk-doc"
  110. CAIRO_EXTRAFLAGS+=" --disable-qt"
  111. CAIRO_EXTRAFLAGS+=" --disable-os2"
  112. CAIRO_EXTRAFLAGS+=" --disable-beos"
  113. CAIRO_EXTRAFLAGS+=" --disable-drm"
  114. CAIRO_EXTRAFLAGS+=" --disable-gallium"
  115. CAIRO_EXTRAFLAGS+=" --disable-gl"
  116. CAIRO_EXTRAFLAGS+=" --disable-glesv2"
  117. CAIRO_EXTRAFLAGS+=" --disable-glesv3"
  118. CAIRO_EXTRAFLAGS+=" --disable-cogl"
  119. CAIRO_EXTRAFLAGS+=" --disable-directfb"
  120. CAIRO_EXTRAFLAGS+=" --disable-vg"
  121. CAIRO_EXTRAFLAGS+=" --disable-egl"
  122. CAIRO_EXTRAFLAGS+=" --disable-glx"
  123. CAIRO_EXTRAFLAGS+=" --disable-wgl"
  124. CAIRO_EXTRAFLAGS+=" --disable-script"
  125. CAIRO_EXTRAFLAGS+=" --disable-ps"
  126. CAIRO_EXTRAFLAGS+=" --disable-svg"
  127. CAIRO_EXTRAFLAGS+=" --disable-test-surfaces"
  128. CAIRO_EXTRAFLAGS+=" --disable-svg"
  129. CAIRO_EXTRAFLAGS+=" --disable-tee"
  130. CAIRO_EXTRAFLAGS+=" --disable-xml"
  131. CAIRO_EXTRAFLAGS+=" --disable-gobject"
  132. CAIRO_EXTRAFLAGS+=" --disable-full-testing"
  133. CAIRO_EXTRAFLAGS+=" --disable-interpreter"
  134. CAIRO_EXTRAFLAGS+=" --enable-png"
  135. CAIRO_EXTRAFLAGS+=" --enable-ft"
  136. CAIRO_EXTRAFLAGS+=" --enable-pthread"
  137. # TESTING
  138. CAIRO_EXTRAFLAGS+=" --disable-symbol-lookup"
  139. CAIRO_EXTRAFLAGS+=" --disable-trace"
  140. if [ "${LINUX}" -eq 1 ]; then
  141. CAIRO_EXTRAFLAGS+=" --enable-fc"
  142. CAIRO_EXTRAFLAGS+=" --enable-xlib"
  143. CAIRO_EXTRAFLAGS+=" --enable-xlib-xrender"
  144. # TODO
  145. # CAIRO_EXTRAFLAGS+=" --enable-xcb"
  146. # CAIRO_EXTRAFLAGS+=" --enable-xlib-xcb"
  147. # CAIRO_EXTRAFLAGS+=" --enable-xcb-shm"
  148. CAIRO_EXTRAFLAGS+=" --disable-xcb"
  149. CAIRO_EXTRAFLAGS+=" --disable-xlib-xcb"
  150. CAIRO_EXTRAFLAGS+=" --disable-xcb-shm"
  151. if [ "${LINUX_TARGET}" = "linux-riscv64" ]; then
  152. CAIRO_EXTRAFLAGS+=" ax_cv_c_float_words_bigendian=yes"
  153. else
  154. CAIRO_EXTRAFLAGS+=" ax_cv_c_float_words_bigendian=no"
  155. fi
  156. else
  157. CAIRO_EXTRAFLAGS+=" --disable-fc"
  158. CAIRO_EXTRAFLAGS+=" --disable-xlib"
  159. CAIRO_EXTRAFLAGS+=" --disable-xlib-xrender"
  160. CAIRO_EXTRAFLAGS+=" --disable-xcb"
  161. CAIRO_EXTRAFLAGS+=" --disable-xlib-xcb"
  162. CAIRO_EXTRAFLAGS+=" --disable-xcb-shm"
  163. fi
  164. if [ "${MACOS}" -eq 1 ]; then
  165. CAIRO_EXTRAFLAGS+=" --enable-quartz"
  166. CAIRO_EXTRAFLAGS+=" --enable-quartz-font"
  167. CAIRO_EXTRAFLAGS+=" --enable-quartz-image"
  168. else
  169. CAIRO_EXTRAFLAGS+=" --disable-quartz"
  170. CAIRO_EXTRAFLAGS+=" --disable-quartz-font"
  171. CAIRO_EXTRAFLAGS+=" --disable-quartz-image"
  172. fi
  173. if [ "${WIN32}" -eq 1 ]; then
  174. CAIRO_EXTRAFLAGS+=" --enable-win32"
  175. CAIRO_EXTRAFLAGS+=" --enable-win32-font"
  176. CAIRO_EXTRAFLAGS+=" ax_cv_c_float_words_bigendian=no"
  177. else
  178. CAIRO_EXTRAFLAGS+=" --disable-win32"
  179. CAIRO_EXTRAFLAGS+=" --disable-win32-font"
  180. fi
  181. if [ "${MACOS}" -eq 1 ]; then
  182. # fix link of test suite
  183. export EXTRA_LDFLAGS="-framework CoreFoundation -framework CoreGraphics"
  184. fi
  185. download cairo "${CAIRO_VERSION}" "${CAIRO_URL}" "tar.xz"
  186. build_autoconf cairo "${CAIRO_VERSION}" "${CAIRO_EXTRAFLAGS}"
  187. # FIXME tests are failing :(
  188. # if [ "${CROSS_COMPILING}" -eq 0 ]; then
  189. # run_make cairo "${CAIRO_VERSION}" "check -j 1"
  190. # fi
  191. # ---------------------------------------------------------------------------------------------------------------------
  192. # fftw
  193. if [ -z "${PAWPAW_SKIP_FFTW}" ]; then
  194. # fftw is not compatible with LTO
  195. if [ -z "${PAWPAW_SKIP_LTO}" ] || [ "${PAWPAW_SKIP_LTO}" -eq 0 ]; then
  196. export EXTRA_CFLAGS="-fno-lto"
  197. export EXTRA_LDFLAGS="-fno-lto"
  198. fi
  199. FFTW_EXTRAFLAGS="--disable-alloca --disable-fortran --with-our-malloc"
  200. if [ "${LINUX}" -eq 1 ]; then
  201. if [ "${LINUX_TARGET}" = "linux-aarch64" ]; then
  202. FFTW_EXTRAFLAGS+=" --with-slow-timer --enable-neon"
  203. elif [ "${LINUX_TARGET}" = "linux-armhf" ]; then
  204. FFTW_EXTRAFLAGS+=" --with-slow-timer"
  205. elif [ "${LINUX_TARGET}" = "linux-riscv64" ]; then
  206. FFTW_EXTRAFLAGS+=" --with-slow-timer"
  207. fi
  208. elif [ "${WASM}" -eq 1 ]; then
  209. FFTW_EXTRAFLAGS+=" --with-slow-timer"
  210. # FIXME macos-universal proper optimizations
  211. # https://github.com/DISTRHO/PawPaw/issues/3
  212. elif [ "${MACOS_UNIVERSAL}" -eq 0 ]; then
  213. FFTW_EXTRAFLAGS+=" --enable-sse2"
  214. fi
  215. download fftw "${FFTW_VERSION}" "${FFTW_URL}"
  216. build_autoconf fftw "${FFTW_VERSION}" "${FFTW_EXTRAFLAGS}"
  217. if [ "${CROSS_COMPILING}" -eq 0 ]; then
  218. run_make fftw "${FFTW_VERSION}" check
  219. fi
  220. fi # PAWPAW_SKIP_FFTW
  221. # ---------------------------------------------------------------------------------------------------------------------
  222. # fftwf
  223. if [ -z "${PAWPAW_SKIP_FFTW}" ]; then
  224. # fftw is not compatible with LTO
  225. if [ -z "${PAWPAW_SKIP_LTO}" ] || [ "${PAWPAW_SKIP_LTO}" -eq 0 ]; then
  226. export EXTRA_CFLAGS="-fno-lto"
  227. export EXTRA_LDFLAGS="-fno-lto"
  228. fi
  229. FFTWF_EXTRAFLAGS="${FFTW_EXTRAFLAGS} --enable-single"
  230. if [ "${LINUX}" -eq 1 ] && [ "${LINUX_TARGET}" = "linux-armhf" ]; then
  231. FFTWF_EXTRAFLAGS+=" --enable-neon"
  232. fi
  233. copy_download fftw fftwf "${FFTW_VERSION}"
  234. build_autoconf fftwf "${FFTW_VERSION}" "${FFTWF_EXTRAFLAGS}"
  235. if [ "${CROSS_COMPILING}" -eq 0 ]; then
  236. run_make fftwf "${FFTW_VERSION}" check
  237. fi
  238. fi # PAWPAW_SKIP_FFTW
  239. # ---------------------------------------------------------------------------------------------------------------------
  240. # pcre
  241. if [ "${MACOS}" -eq 1 ] || [ -n "${TOOLCHAIN_PREFIX}" ]; then
  242. download pcre "${PCRE_VERSION}" "${PCRE_URL}"
  243. build_autoconf pcre "${PCRE_VERSION}"
  244. fi
  245. # ---------------------------------------------------------------------------------------------------------------------
  246. # libffi
  247. if [ "${WIN32}" -eq 1 ]; then
  248. LIBFFI_EXTRAFLAGS="--disable-multi-os-directory --disable-raw-api"
  249. download libffi "${LIBFFI_VERSION}" "${LIBFFI_URL}"
  250. build_autoconf libffi "${LIBFFI_VERSION}" "${LIBFFI_EXTRAFLAGS}"
  251. fi
  252. # ---------------------------------------------------------------------------------------------------------------------
  253. # glib
  254. if [ -z "${PAWPAW_SKIP_GLIB}" ]; then
  255. if [ "${MACOS}" -eq 1 ] || [ "${WASM}" -eq 1 ] || [ "${WIN32}" -eq 1 ]; then
  256. GLIB_EXTRAFLAGS="--disable-rebuilds"
  257. if [ "${WIN32}" -eq 1 ]; then
  258. GLIB_EXTRAFLAGS+=" --with-threads=win32"
  259. else
  260. GLIB_EXTRAFLAGS+=" --with-threads=posix"
  261. fi
  262. if [ "${WASM}" -eq 1 ]; then
  263. GLIB_EXTRAFLAGS+=" ac_cv_lib_socket_socket=no ac_cv_func_posix_getgrgid_r=no ac_cv_func_posix_getpwuid_r=no glib_cv_stack_grows=no glib_cv_uscore=no"
  264. fi
  265. if [ "${MACOS}" -eq 1 ]; then
  266. export EXTRA_LDFLAGS="-lresolv"
  267. elif [ "${WIN32}" -eq 1 ]; then
  268. export EXTRA_CFLAGS="-Wno-format -Wno-format-overflow"
  269. fi
  270. download glib ${GLIB_VERSION} "${GLIB_URL}" "${GLIB_TAR_EXT}"
  271. if [ "${MACOS}" -eq 1 ]; then
  272. patch_file glib ${GLIB_VERSION} "glib/gconvert.c" '/#error/g'
  273. patch_file glib ${GLIB_VERSION} "glib/gatomic.c" 's/G_ATOMIC_ARM/__aarch64__/'
  274. patch_file glib ${GLIB_VERSION} "glib/gatomic.c" 's/G_ATOMIC_X86_64/__SSE2__/'
  275. elif [ "${WASM}" -eq 1 ]; then
  276. patch_file glib ${GLIB_VERSION} "glib/gatomic.c" 's/G_ATOMIC_X86_64/_G_ATOMIC_NOT_X86_64/'
  277. fi
  278. build_autoconfgen glib ${GLIB_VERSION} "${GLIB_EXTRAFLAGS}"
  279. fi
  280. fi # PAWPAW_SKIP_GLIB
  281. # ---------------------------------------------------------------------------------------------------------------------
  282. # liblo
  283. LIBLO_EXTRAFLAGS="--enable-threads --disable-examples --disable-tools"
  284. if [ "${CROSS_COMPILING}" -eq 1 ]; then
  285. LIBLO_EXTRAFLAGS+=" --disable-tests"
  286. fi
  287. # auto-detection fails
  288. if [ "${MACOS}" -eq 1 ]; then
  289. LIBLO_EXTRAFLAGS+=" ac_cv_func_select=yes ac_cv_func_poll=yes ac_cv_func_setvbuf=yes"
  290. if [ "${MACOS_UNIVERSAL}" -eq 1 ]; then
  291. LIBLO_EXTRAFLAGS+=" ac_cv_c_bigendian=universal"
  292. fi
  293. fi
  294. download liblo "${LIBLO_VERSION}" "${LIBLO_URL}"
  295. build_autoconf liblo "${LIBLO_VERSION}" "${LIBLO_EXTRAFLAGS}"
  296. # FIXME tests fail on macOS
  297. if [ "${CROSS_COMPILING}" -eq 0 ] && [ "${MACOS}" -eq 0 ]; then
  298. run_make liblo "${LIBLO_VERSION}" check
  299. fi
  300. # ---------------------------------------------------------------------------------------------------------------------
  301. # serd
  302. if [ -z "${PAWPAW_SKIP_LV2}" ]; then
  303. if [ "${CROSS_COMPILING}" -eq 1 ] && [ "${LINUX}" -eq 0 ] && [ -z "${EXE_WRAPPER}" ]; then
  304. SERD_EXTRAFLAGS="-Dtools=disabled"
  305. fi
  306. download serd "${SERD_VERSION}" "${SERD_URL}" "tar.xz"
  307. build_meson serd "${SERD_VERSION}" "-Ddefault_library=static -Ddocs=disabled ${SERD_EXTRAFLAGS}"
  308. fi # PAWPAW_SKIP_LV2
  309. # ---------------------------------------------------------------------------------------------------------------------
  310. # sord
  311. if [ -z "${PAWPAW_SKIP_LV2}" ]; then
  312. if [ "${CROSS_COMPILING}" -eq 1 ] && [ "${LINUX}" -eq 0 ] && [ -z "${EXE_WRAPPER}" ]; then
  313. SORD_EXTRAFLAGS="-Dtools=disabled"
  314. fi
  315. download sord "${SORD_VERSION}" "${SORD_URL}" "tar.xz"
  316. build_meson sord "${SORD_VERSION}" "-Ddefault_library=static -Ddocs=disabled ${SORD_EXTRAFLAGS}"
  317. fi # PAWPAW_SKIP_LV2
  318. # ---------------------------------------------------------------------------------------------------------------------
  319. # lv2
  320. if [ -z "${PAWPAW_SKIP_LV2}" ]; then
  321. git_clone lv2 "${LV2_VERSION}" "${LV2_URL}"
  322. build_meson lv2 "${LV2_VERSION}" "-Dlv2dir=${PAWPAW_PREFIX}/lib/lv2 -Dplugins=disabled"
  323. fi # PAWPAW_SKIP_LV2
  324. # ---------------------------------------------------------------------------------------------------------------------
  325. # sratom
  326. if [ -z "${PAWPAW_SKIP_LV2}" ]; then
  327. download sratom "${SRATOM_VERSION}" "${SRATOM_URL}" "tar.xz"
  328. build_meson sratom "${SRATOM_VERSION}" "-Ddefault_library=static -Ddocs=disabled"
  329. fi # PAWPAW_SKIP_LV2
  330. # ---------------------------------------------------------------------------------------------------------------------
  331. # lilv
  332. if [ -z "${PAWPAW_SKIP_LV2}" ]; then
  333. if [ "${CROSS_COMPILING}" -eq 1 ] && [ "${LINUX}" -eq 0 ]; then
  334. LILV_EXTRAFLAGS="-Dtests=disabled -Dtools=disabled"
  335. fi
  336. download lilv "${LILV_VERSION}" "${LILV_URL}" "tar.xz"
  337. build_meson lilv "${LILV_VERSION}" "-Ddefault_library=static -Dbindings_py=disabled -Ddocs=disabled ${LILV_EXTRAFLAGS}"
  338. fi # PAWPAW_SKIP_LV2
  339. # ---------------------------------------------------------------------------------------------------------------------
  340. # lv2lint
  341. if [ -z "${PAWPAW_SKIP_LV2}" ]; then
  342. if [ "${LV2LINT_SUPPORTED}" -eq 1 ]; then
  343. download lv2lint "${LV2LINT_VERSION}" "${LV2LINT_URL}"
  344. build_meson lv2lint "${LV2LINT_VERSION}"
  345. # "-Donline-tests=true -Delf-tests=true"
  346. fi
  347. fi # PAWPAW_SKIP_LV2
  348. # ---------------------------------------------------------------------------------------------------------------------
  349. # kxstudio lv2 extensions
  350. if [ -z "${PAWPAW_SKIP_LV2}" ]; then
  351. git_clone kxstudio-lv2-extensions "${KXSTUDIO_LV2_EXTENSIONS_VERSION}" "${KXSTUDIO_LV2_EXTENSIONS_URL}"
  352. build_make kxstudio-lv2-extensions "${KXSTUDIO_LV2_EXTENSIONS_VERSION}"
  353. fi # PAWPAW_SKIP_LV2
  354. # ---------------------------------------------------------------------------------------------------------------------
  355. # MOD lv2 extensions
  356. if [ -z "${PAWPAW_SKIP_LV2}" ]; then
  357. git_clone mod-sdk "${MOD_SDK_VERSION}" "${MOD_SDK_URL}"
  358. build_make mod-sdk "${MOD_SDK_VERSION}"
  359. fi # PAWPAW_SKIP_LV2
  360. # ---------------------------------------------------------------------------------------------------------------------
  361. # fluidsynth
  362. if [ -z "${PAWPAW_SKIP_FLUIDSYNTH}" ]; then
  363. FLUIDSYNTH_EXTRAFLAGS="-Denable-floats=ON"
  364. FLUIDSYNTH_EXTRAFLAGS+=" -Denable-alsa=OFF"
  365. FLUIDSYNTH_EXTRAFLAGS+=" -Denable-aufile=OFF"
  366. FLUIDSYNTH_EXTRAFLAGS+=" -Denable-coreaudio=OFF"
  367. FLUIDSYNTH_EXTRAFLAGS+=" -Denable-coremidi=OFF"
  368. FLUIDSYNTH_EXTRAFLAGS+=" -Denable-dbus=OFF"
  369. FLUIDSYNTH_EXTRAFLAGS+=" -Denable-debug=OFF"
  370. FLUIDSYNTH_EXTRAFLAGS+=" -Denable-fpe-check=OFF"
  371. FLUIDSYNTH_EXTRAFLAGS+=" -Denable-framework=OFF"
  372. FLUIDSYNTH_EXTRAFLAGS+=" -Denable-ipv6=OFF"
  373. FLUIDSYNTH_EXTRAFLAGS+=" -Denable-jack=OFF"
  374. FLUIDSYNTH_EXTRAFLAGS+=" -Denable-ladcca=OFF"
  375. FLUIDSYNTH_EXTRAFLAGS+=" -Denable-ladspa=OFF"
  376. FLUIDSYNTH_EXTRAFLAGS+=" -Denable-lash=OFF"
  377. FLUIDSYNTH_EXTRAFLAGS+=" -Denable-midishare=OFF"
  378. FLUIDSYNTH_EXTRAFLAGS+=" -Denable-oss=OFF"
  379. FLUIDSYNTH_EXTRAFLAGS+=" -Denable-portaudio=OFF"
  380. FLUIDSYNTH_EXTRAFLAGS+=" -Denable-profiling=OFF"
  381. FLUIDSYNTH_EXTRAFLAGS+=" -Denable-pulseaudio=OFF"
  382. FLUIDSYNTH_EXTRAFLAGS+=" -Denable-readline=OFF"
  383. FLUIDSYNTH_EXTRAFLAGS+=" -Denable-trap-on-fpe=OFF"
  384. git_clone fluidsynth "${FLUIDSYNTH_VERSION}" "${FLUIDSYNTH_URL}"
  385. build_cmake fluidsynth "${FLUIDSYNTH_VERSION}" "${FLUIDSYNTH_EXTRAFLAGS}"
  386. if [ ! -e "${PAWPAW_PREFIX}/lib/pkgconfig/fluidsynth.pc-e" ]; then
  387. FLUIDSYNTH_EXTRALIBS="-lglib-2.0 -lgthread-2.0 -lsndfile -lFLAC -lvorbisenc -lvorbis -lopus -logg -lpthread -lm"
  388. if [ "${MACOS}" -eq 1 ]; then
  389. FLUIDSYNTH_EXTRALIBS+=" -liconv"
  390. elif [ "${WIN32}" -eq 1 ]; then
  391. FLUIDSYNTH_EXTRALIBS+=" -lole32 -lws2_32"
  392. fi
  393. sed -i -e "s/-L\${libdir} -lfluidsynth/-L\${libdir} -lfluidsynth ${FLUIDSYNTH_EXTRALIBS}/" "${PAWPAW_PREFIX}/lib/pkgconfig/fluidsynth.pc"
  394. touch "${PAWPAW_PREFIX}/lib/pkgconfig/fluidsynth.pc-e"
  395. fi
  396. fi # PAWPAW_SKIP_FLUIDSYNTH
  397. # ---------------------------------------------------------------------------------------------------------------------
  398. # mxml
  399. git_clone mxml "${MXML_VERSION}" "${MXML_URL}"
  400. build_autoconf mxml "${MXML_VERSION}"
  401. # ---------------------------------------------------------------------------------------------------------------------
  402. # carla (backend only)
  403. if [ "${CROSS_COMPILING}" -eq 0 ] || [ "${LINUX}" -eq 1 ]; then
  404. CARLA_EXTRAFLAGS="CAN_GENERATE_LV2_TTL=false"
  405. CARLA_EXTRAFLAGS+=" EXTERNAL_PLUGINS=false"
  406. CARLA_EXTRAFLAGS+=" HAVE_ALSA=false"
  407. CARLA_EXTRAFLAGS+=" HAVE_JACK=false"
  408. CARLA_EXTRAFLAGS+=" HAVE_PULSEAUDIO=false"
  409. CARLA_EXTRAFLAGS+=" HAVE_DGL=false"
  410. CARLA_EXTRAFLAGS+=" HAVE_HYLIA=false"
  411. CARLA_EXTRAFLAGS+=" HAVE_X11=false"
  412. CARLA_EXTRAFLAGS+=" HAVE_FFMPEG=false"
  413. CARLA_EXTRAFLAGS+=" HAVE_FLUIDSYNTH=false"
  414. CARLA_EXTRAFLAGS+=" HAVE_LIBLO=false"
  415. CARLA_EXTRAFLAGS+=" HAVE_LIBMAGIC=false"
  416. CARLA_EXTRAFLAGS+=" HAVE_PYQT=false"
  417. CARLA_EXTRAFLAGS+=" HAVE_QT=false"
  418. CARLA_EXTRAFLAGS+=" HAVE_QT4=false"
  419. CARLA_EXTRAFLAGS+=" HAVE_QT5=false"
  420. CARLA_EXTRAFLAGS+=" HAVE_SDL=false"
  421. CARLA_EXTRAFLAGS+=" HAVE_SNDFILE=false"
  422. CARLA_EXTRAFLAGS+=" NOOPT=true"
  423. CARLA_EXTRAFLAGS+=" USING_JUCE=false"
  424. CARLA_EXTRAFLAGS+=" USING_JUCE_AUDIO_DEVICES=false"
  425. CARLA_EXTRAFLAGS+=" USING_JUCE_GUI_EXTRA=false"
  426. CARLA_EXTRAFLAGS+=" USING_RTAUDIO=false"
  427. git_clone carla "${CARLA_VERSION}" "${CARLA_URL}"
  428. build_make carla "${CARLA_VERSION}" "${CARLA_EXTRAFLAGS}"
  429. fi
  430. # ---------------------------------------------------------------------------------------------------------------------
  431. # wine bootstrap (needed for cross-compilation)
  432. if [ "${EXE_WRAPPER}" = "wine" ]; then
  433. wineboot -u
  434. fi
  435. # ---------------------------------------------------------------------------------------------------------------------