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.

86 lines
2.1KB

  1. #!/bin/bash
  2. CROSS_COMPILING=0
  3. INVALID_TARGET=0
  4. LINUX=0
  5. MACOS=0
  6. MACOS_UNIVERSAL=0
  7. WIN32=0
  8. WIN64=0
  9. function check_target() {
  10. case "${target}" in
  11. "macos"|"Darwin")
  12. MACOS=1
  13. ;;
  14. "macos-universal")
  15. MACOS=1
  16. MACOS_UNIVERSAL=1
  17. ;;
  18. "win32"|"MINGW32"*)
  19. WIN32=1
  20. CROSS_COMPILING=1
  21. if [ "$(uname -o)" != "Msys" ] && [ "$(uname -o)" != "Cygwin" ]; then
  22. CROSS_COMPILING=1
  23. fi
  24. ;;
  25. "win64"|"MINGW64"*)
  26. WIN32=1
  27. WIN64=1
  28. if [ "$(uname -o)" != "Msys" ] && [ "$(uname -o)" != "Cygwin" ]; then
  29. CROSS_COMPILING=1
  30. fi
  31. ;;
  32. "CYGWIN"*|"MSYS"*)
  33. WIN32=1
  34. if [ "$(uname -m)" = "x86_64" ]; then
  35. WIN64=1
  36. fi
  37. ;;
  38. "linux"|"Linux")
  39. LINUX=1
  40. ;;
  41. "linux-aarch64")
  42. LINUX=1
  43. CROSS_COMPILING=1
  44. TOOLCHAIN_PREFIX="aarch64-linux-gnu"
  45. TOOLCHAIN_PREFIX_="${TOOLCHAIN_PREFIX}-"
  46. ;;
  47. "linux-armhf")
  48. LINUX=1
  49. CROSS_COMPILING=1
  50. TOOLCHAIN_PREFIX="arm-linux-gnueabihf"
  51. TOOLCHAIN_PREFIX_="${TOOLCHAIN_PREFIX}-"
  52. ;;
  53. "linux-i686")
  54. LINUX=1
  55. EXTRA_FLAGS="-m32"
  56. # TOOLCHAIN_PREFIX="i686-linux-gnu"
  57. # TOOLCHAIN_PREFIX_="${TOOLCHAIN_PREFIX}-"
  58. ;;
  59. "native")
  60. target=$(uname -s)
  61. check_target
  62. if [ "${target}" = "Darwin" ] && [ "$(uname -m)" = "arm64" ]; then
  63. MACOS_UNIVERSAL=1
  64. fi
  65. ;;
  66. default|*)
  67. echo "Invalid target '${target}', possible values are:"
  68. echo "\tmacos"
  69. echo "\tmacos-old"
  70. echo "\tmacos-universal"
  71. echo "\twin32"
  72. echo "\twin64"
  73. echo "\tnative"
  74. if [ -z "${SOURCING_FILES}" ]; then
  75. exit 2
  76. else
  77. INVALID_TARGET=1
  78. fi
  79. ;;
  80. esac
  81. }
  82. check_target