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.

132 lines
4.1KB

  1. #!/bin/bash
  2. # ---------------------------------------------------------------------------------------------------------------------
  3. # OS setup
  4. if [ "${MACOS}" -eq 1 ]; then
  5. CMAKE_SYSTEM_NAME="Darwin"
  6. if [ "${MACOS_OLD}" -eq 1 ]; then
  7. PAWPAW_TARGET="macos-old"
  8. else
  9. PAWPAW_TARGET="macos"
  10. fi
  11. elif [ "${WIN32}" -eq 1 ]; then
  12. CMAKE_SYSTEM_NAME="Windows"
  13. if [ "${WIN64}" -eq 1 ]; then
  14. PAWPAW_TARGET="win64"
  15. else
  16. PAWPAW_TARGET="win32"
  17. fi
  18. elif [ "${LINUX}" -eq 1 ]; then
  19. CMAKE_SYSTEM_NAME="Linux"
  20. PAWPAW_TARGET="linux"
  21. else
  22. echo "Unknown target '${target}'"
  23. exit 4
  24. fi
  25. # ---------------------------------------------------------------------------------------------------------------------
  26. # PawPaw setup
  27. PAWPAW_DIR="${HOME}/PawPawBuilds"
  28. PAWPAW_DOWNLOADDIR="${PAWPAW_DIR}/downloads"
  29. PAWPAW_BUILDDIR="${PAWPAW_DIR}/builds/${PAWPAW_TARGET}"
  30. PAWPAW_PREFIX="${PAWPAW_DIR}/targets/${PAWPAW_TARGET}"
  31. PAWPAW_TMPDIR="/tmp"
  32. # ---------------------------------------------------------------------------------------------------------------------
  33. # build environment
  34. ## build flags
  35. BUILD_FLAGS="-O2 -pipe -I${PAWPAW_PREFIX}/include"
  36. BUILD_FLAGS="${BUILD_FLAGS} -mtune=generic -msse -msse2 -mfpmath=sse -ffast-math"
  37. BUILD_FLAGS="${BUILD_FLAGS} -fPIC -DPIC -DNDEBUG"
  38. BUILD_FLAGS="${BUILD_FLAGS} -fdata-sections -ffunction-sections -fno-common -fvisibility=hidden"
  39. if [ "${MACOS}" -eq 1 ]; then
  40. if [ "${MACOS_OLD}" -eq 1 ]; then
  41. BUILD_FLAGS="${BUILD_FLAGS} -mmacosx-version-min=10.5"
  42. # BUILD_FLAGS="${BUILD_FLAGS} -I/usr/lib/apple/SDKs/MacOSX10.5.sdk/usr/include"
  43. else
  44. BUILD_FLAGS="${BUILD_FLAGS} -mmacosx-version-min=10.8 -stdlib=libc++ -Wno-deprecated-declarations"
  45. fi
  46. elif [ "${WIN32}" -eq 1 ]; then
  47. BUILD_FLAGS="${BUILD_FLAGS} -DPTW32_STATIC_LIB -mstackrealign"
  48. # -DWIN32_LEAN_AND_MEAN
  49. fi
  50. # -DFLUIDSYNTH_NOT_A_DLL
  51. TARGET_CFLAGS="${BUILD_FLAGS}"
  52. TARGET_CXXFLAGS="${BUILD_FLAGS} -fvisibility-inlines-hidden"
  53. ## link flags
  54. LINK_FLAGS="-L${PAWPAW_PREFIX}/lib"
  55. LINK_FLAGS="${LINK_FLAGS} -fdata-sections -ffunction-sections"
  56. if [ "${MACOS}" -eq 1 ]; then
  57. LINK_FLAGS="${LINK_FLAGS} -Wl,-dead_strip -Wl,-dead_strip_dylibs"
  58. if [ "${MACOS_OLD}" -eq 1 ]; then
  59. LINK_FLAGS="${LINK_FLAGS} -mmacosx-version-min=10.5"
  60. # LINK_FLAGS="${LINK_FLAGS} -L/usr/lib/apple/SDKs/MacOSX10.5.sdk/usr/lib"
  61. else
  62. LINK_FLAGS="${LINK_FLAGS} -mmacosx-version-min=10.8 -stdlib=libc++"
  63. fi
  64. else
  65. LINK_FLAGS="${LINK_FLAGS} -Wl,-O1 -Wl,--as-needed -Wl,--gc-sections -Wl,--no-undefined -Wl,--strip-all"
  66. if [ "${WIN32}" -eq 1 ]; then
  67. LINK_FLAGS="${LINK_FLAGS} -static"
  68. fi
  69. fi
  70. TARGET_LDFLAGS="${LINK_FLAGS}"
  71. ## toolchain
  72. if [ "${CROSS_COMPILING}" -eq 1 ]; then
  73. if [ "${MACOS}" -eq 1 ]; then
  74. TOOLCHAIN_PREFIX="i686-apple-darwin10"
  75. TOOLCHAIN_PREFIX_="${TOOLCHAIN_PREFIX}-"
  76. elif [ "${WIN64}" -eq 1 ]; then
  77. TOOLCHAIN_PREFIX="x86_64-w64-mingw32"
  78. TOOLCHAIN_PREFIX_="${TOOLCHAIN_PREFIX}-"
  79. elif [ "${WIN32}" -eq 1 ]; then
  80. TOOLCHAIN_PREFIX="i686-w64-mingw32"
  81. TOOLCHAIN_PREFIX_="${TOOLCHAIN_PREFIX}-"
  82. fi
  83. fi
  84. TARGET_AR="${TOOLCHAIN_PREFIX_}ar"
  85. TARGET_CC="${TOOLCHAIN_PREFIX_}gcc"
  86. TARGET_CXX="${TOOLCHAIN_PREFIX_}g++"
  87. TARGET_LD="${TOOLCHAIN_PREFIX_}ld"
  88. TARGET_STRIP="${TOOLCHAIN_PREFIX_}strip"
  89. TARGET_PATH="${PAWPAW_PREFIX}/bin:/usr/${TOOLCHAIN_PREFIX}/bin:${PATH}"
  90. TARGET_PKG_CONFIG="${PAWPAW_PREFIX}/bin/pkg-config --static"
  91. TARGET_PKG_CONFIG_PATH="${PAWPAW_PREFIX}/lib/pkgconfig"
  92. # ---------------------------------------------------------------------------------------------------------------------
  93. # other
  94. # "-j 2"
  95. MAKE_ARGS=""
  96. if [ "${CROSS_COMPILING}" -eq 1 ]; then
  97. MAKE_ARGS="${MAKE_ARGS} CROSS_COMPILING=true"
  98. fi
  99. if [ "${MACOS}" -eq 1 ]; then
  100. MAKE_ARGS="${MAKE_ARGS} MACOS=true"
  101. if [ "${MACOS_OLD}" -eq 1 ]; then
  102. MAKE_ARGS="${MAKE_ARGS} MACOS_OLD=true"
  103. fi
  104. elif [ "${WIN32}" -eq 1 ]; then
  105. MAKE_ARGS="${MAKE_ARGS} WIN32=true WINDOWS=true"
  106. fi
  107. # ---------------------------------------------------------------------------------------------------------------------