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.

189 lines
7.6KB

  1. #!/bin/bash
  2. set -e
  3. cd $(dirname ${0})
  4. PAWPAW_ROOT="${PWD}"
  5. # ---------------------------------------------------------------------------------------------------------------------
  6. target="${1}"
  7. if [ -z "${target}" ]; then
  8. echo "usage: ${0} <target>"
  9. exit 1
  10. fi
  11. # ---------------------------------------------------------------------------------------------------------------------
  12. ./bootstrap-common.sh "${target}"
  13. # ---------------------------------------------------------------------------------------------------------------------
  14. source setup/check_target.sh
  15. source setup/env.sh
  16. source setup/functions.sh
  17. source setup/versions.sh
  18. # ---------------------------------------------------------------------------------------------------------------------
  19. # fftw
  20. FFTW_EXTRAFLAGS="--disable-alloca --disable-fortran --with-our-malloc"
  21. if [ "${MACOS_UNIVERSAL}" -eq 0 ]; then
  22. FFTW_EXTRAFLAGS+=" --enable-sse2"
  23. fi
  24. # if [ "${WIN32}" -eq 0 ]; then
  25. # FFTW_EXTRAFLAGS+=" --enable-threads"
  26. # fi
  27. download fftw "${FFTW_VERSION}" "http://www.fftw.org"
  28. if [ "${MACOS_OLD}" -eq 1 ]; then
  29. patch_file fftw "${FFTW_VERSION}" "configure" 's/CFLAGS="$CFLAGS -Wl,-no_compact_unwind"/CFLAGS="$CFLAGS"/'
  30. patch_file fftw "${FFTW_VERSION}" "libbench2/timer.c" 's/#if defined(HAVE_GETTIMEOFDAY) && !defined(HAVE_TIMER)/#ifndef HAVE_TIMER/'
  31. fi
  32. build_autoconf fftw "${FFTW_VERSION}" "${FFTW_EXTRAFLAGS}"
  33. # ---------------------------------------------------------------------------------------------------------------------
  34. # fftwf
  35. FFTWF_EXTRAFLAGS="${FFTW_EXTRAFLAGS} --enable-single"
  36. copy_download fftw fftwf "${FFTW_VERSION}"
  37. if [ "${MACOS_OLD}" -eq 1 ]; then
  38. patch_file fftwf "${FFTW_VERSION}" "configure" 's/CFLAGS="$CFLAGS -Wl,-no_compact_unwind"/CFLAGS="$CFLAGS"/'
  39. patch_file fftwf "${FFTW_VERSION}" "libbench2/timer.c" 's/#if defined(HAVE_GETTIMEOFDAY) && !defined(HAVE_TIMER)/#ifndef HAVE_TIMER/'
  40. fi
  41. build_autoconf fftwf "${FFTW_VERSION}" "${FFTWF_EXTRAFLAGS}"
  42. # ---------------------------------------------------------------------------------------------------------------------
  43. # glib
  44. if [ "${MACOS}" -eq 1 ] || [ "${WIN32}" -eq 1 ]; then
  45. if [ "${WIN32}" -eq 1 ]; then
  46. GLIB_EXTRAFLAGS="--with-threads=win32"
  47. else
  48. GLIB_EXTRAFLAGS="--with-threads=posix"
  49. fi
  50. download glib ${GLIB_VERSION} "http://caesar.ftp.acc.umu.se/pub/GNOME/sources/glib/${GLIB_MVERSION}" "${GLIB_TAR_EXT}"
  51. if [ "${MACOS}" -eq 1 ]; then
  52. export EXTRA_LDFLAGS="-lresolv"
  53. patch_file glib ${GLIB_VERSION} "glib/gconvert.c" '/#error/g'
  54. if [ "${MACOS_UNIVERSAL}" -eq 1 ]; then
  55. patch_file glib ${GLIB_VERSION} "glib/gatomic.c" 's/G_ATOMIC_ARM/__aarch64__/'
  56. patch_file glib ${GLIB_VERSION} "glib/gatomic.c" 's/G_ATOMIC_X86_64/__SSE2__/'
  57. elif [ "${MACOS_OLD}" -eq 1 ]; then
  58. GLIB_EXTRAFLAGS+=" glib_cv_stack_grows=yes"
  59. GLIB_EXTRAFLAGS+=" glib_cv_rtldglobal_broken=no"
  60. GLIB_EXTRAFLAGS+=" glib_cv_uscore=no"
  61. GLIB_EXTRAFLAGS+=" ac_cv_func_posix_getpwuid_r=yes"
  62. GLIB_EXTRAFLAGS+=" ac_cv_func_posix_getgrgid_r=yes"
  63. patch_file glib ${GLIB_VERSION} "configure.in" 's/G_ATOMIC_I486/G_ATOMIC_I486_NOT/'
  64. fi
  65. fi
  66. build_autoconfgen glib ${GLIB_VERSION} "${GLIB_EXTRAFLAGS}"
  67. fi
  68. # ---------------------------------------------------------------------------------------------------------------------
  69. # liblo
  70. download liblo "${LIBLO_VERSION}" "http://download.sourceforge.net/liblo"
  71. build_autoconf liblo "${LIBLO_VERSION}" "--enable-threads --disable-examples --disable-tests --disable-tools"
  72. # ---------------------------------------------------------------------------------------------------------------------
  73. # lv2
  74. download lv2 "${LV2_VERSION}" "http://lv2plug.in/spec" "tar.bz2"
  75. build_waf lv2 "${LV2_VERSION}" "--lv2dir=${PAWPAW_PREFIX}/lib/lv2 --no-coverage --no-plugins"
  76. # ---------------------------------------------------------------------------------------------------------------------
  77. # serd
  78. download serd "${SERD_VERSION}" "http://download.drobilla.net/" "tar.bz2"
  79. build_waf serd "${SERD_VERSION}" "--static --no-shared"
  80. # ---------------------------------------------------------------------------------------------------------------------
  81. # sord
  82. download sord "${SORD_VERSION}" "http://download.drobilla.net/" "tar.bz2"
  83. build_waf sord "${SORD_VERSION}" "--static --no-shared --no-utils"
  84. # ---------------------------------------------------------------------------------------------------------------------
  85. # sratom
  86. download sratom "${SRATOM_VERSION}" "http://download.drobilla.net/" "tar.bz2"
  87. build_waf sratom "${SRATOM_VERSION}" "--static --no-shared"
  88. # ---------------------------------------------------------------------------------------------------------------------
  89. # lilv
  90. download lilv "${LILV_VERSION}" "http://download.drobilla.net/" "tar.bz2"
  91. build_waf lilv "${LILV_VERSION}" "--static --no-bash-completion --no-bindings --no-shared"
  92. # --static-progs
  93. # ---------------------------------------------------------------------------------------------------------------------
  94. # lv2lint
  95. if [ "${MACOS_OLD}" -eq 0 ] && [ "${CROSS_COMPILING}" -eq 0 ]; then
  96. download lv2lint "${LV2LINT_VERSION}" "https://gitlab.com/OpenMusicKontrollers/lv2lint/-/archive/${LV2LINT_VERSION}"
  97. build_meson lv2lint "${LV2LINT_VERSION}"
  98. # "-Donline-tests=true -Delf-tests=true"
  99. fi
  100. # ---------------------------------------------------------------------------------------------------------------------
  101. # fluidsynth
  102. FLUIDSYNTH_EXTRAFLAGS="-Denable-floats=ON"
  103. FLUIDSYNTH_EXTRAFLAGS+=" -Denable-alsa=OFF"
  104. FLUIDSYNTH_EXTRAFLAGS+=" -Denable-aufile=OFF"
  105. FLUIDSYNTH_EXTRAFLAGS+=" -Denable-coreaudio=OFF"
  106. FLUIDSYNTH_EXTRAFLAGS+=" -Denable-coremidi=OFF"
  107. FLUIDSYNTH_EXTRAFLAGS+=" -Denable-dbus=OFF"
  108. FLUIDSYNTH_EXTRAFLAGS+=" -Denable-debug=OFF"
  109. FLUIDSYNTH_EXTRAFLAGS+=" -Denable-fpe-check=OFF"
  110. FLUIDSYNTH_EXTRAFLAGS+=" -Denable-framework=OFF"
  111. FLUIDSYNTH_EXTRAFLAGS+=" -Denable-ipv6=OFF"
  112. FLUIDSYNTH_EXTRAFLAGS+=" -Denable-jack=OFF"
  113. FLUIDSYNTH_EXTRAFLAGS+=" -Denable-ladcca=OFF"
  114. FLUIDSYNTH_EXTRAFLAGS+=" -Denable-ladspa=OFF"
  115. FLUIDSYNTH_EXTRAFLAGS+=" -Denable-lash=OFF"
  116. FLUIDSYNTH_EXTRAFLAGS+=" -Denable-midishare=OFF"
  117. FLUIDSYNTH_EXTRAFLAGS+=" -Denable-oss=OFF"
  118. FLUIDSYNTH_EXTRAFLAGS+=" -Denable-portaudio=OFF"
  119. FLUIDSYNTH_EXTRAFLAGS+=" -Denable-profiling=OFF"
  120. FLUIDSYNTH_EXTRAFLAGS+=" -Denable-pulseaudio=OFF"
  121. FLUIDSYNTH_EXTRAFLAGS+=" -Denable-readline=OFF"
  122. FLUIDSYNTH_EXTRAFLAGS+=" -Denable-trap-on-fpe=OFF"
  123. download fluidsynth ${FLUIDSYNTH_VERSION} "https://github.com/FluidSynth/fluidsynth/archive"
  124. patch_file fluidsynth ${FLUIDSYNTH_VERSION} "CMakeLists.txt" 's/_init_lib_suffix "64"/_init_lib_suffix ""/'
  125. build_cmake fluidsynth ${FLUIDSYNTH_VERSION} "${FLUIDSYNTH_EXTRAFLAGS}"
  126. # touch src/fluidsynth
  127. # sed -i -e "s|-lfluidsynth|-lfluidsynth -lglib-2.0 -lgthread-2.0 -lsndfile -lFLAC -lvorbisenc -lvorbis -logg -lpthread -lm -liconv|" ${PREFIX}/lib/pkgconfig/fluidsynth.pc
  128. # ---------------------------------------------------------------------------------------------------------------------
  129. # mxml
  130. download mxml ${MXML_VERSION} "https://github.com/michaelrsweet/mxml/archive"
  131. build_autoconf mxml ${MXML_VERSION} "--disable-shared --prefix=${PAWPAW_PREFIX}"
  132. # ---------------------------------------------------------------------------------------------------------------------
  133. # zlib
  134. if [ "${MACOS}" -eq 0 ]; then
  135. download zlib ${ZLIB_VERSION} "https://github.com/madler/zlib/archive"
  136. build_conf zlib ${ZLIB_VERSION} "--static --prefix=${PAWPAW_PREFIX}"
  137. fi
  138. # ---------------------------------------------------------------------------------------------------------------------