Audio plugin host https://kx.studio/carla
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.

215 lines
5.2KB

  1. #!/bin/bash
  2. # ---------------------------------------------------------------------------------------------------------------------
  3. # check dependencies
  4. if ! which debootstrap > /dev/null; then
  5. echo "debootstrap not found, please install it"
  6. exit 1
  7. fi
  8. # ---------------------------------------------------------------------------------------------------------------------
  9. # stop on error
  10. set -e
  11. # ---------------------------------------------------------------------------------------------------------------------
  12. # cd to correct path
  13. cd $(dirname $0)
  14. # ---------------------------------------------------------------------------------------------------------------------
  15. # set variables
  16. source common.env
  17. CHROOT_CARLA_DIR="/tmp/carla-src"
  18. # ---------------------------------------------------------------------------------------------------------------------
  19. # function to remove old stuff
  20. cleanup()
  21. {
  22. rm -rf ${TARGETDIR}/chroot32/
  23. rm -rf ${TARGETDIR}/chroot64/
  24. }
  25. # ---------------------------------------------------------------------------------------------------------------------
  26. # create chroots
  27. if [ ! -d ${TARGETDIR}/chroot32 ]; then
  28. sudo debootstrap --arch=i386 lucid ${TARGETDIR}/chroot32 http://old-releases.ubuntu.com/ubuntu/
  29. fi
  30. if [ ! -d ${TARGETDIR}/chroot64 ]; then
  31. sudo debootstrap --arch=amd64 lucid ${TARGETDIR}/chroot64 http://old-releases.ubuntu.com/ubuntu/
  32. fi
  33. # ---------------------------------------------------------------------------------------------------------------------
  34. # setup chroots
  35. chroot_setup()
  36. {
  37. CHROOT_DIR=${TARGETDIR}/chroot${ARCH}
  38. cat <<EOF | sudo chroot ${CHROOT_DIR}
  39. mount -t proc none /proc/
  40. mount -t sysfs none /sys/
  41. mount -t devpts none /dev/pts
  42. export HOME=/root
  43. export LANG=C
  44. export LC_ALL=C
  45. unset LC_TIME
  46. set -e
  47. if [ ! -f /tmp/setup-repo ]; then
  48. apt-get update
  49. apt-get install -y python-software-properties wget
  50. add-apt-repository ppa:kxstudio-debian/libs
  51. add-apt-repository ppa:kxstudio-debian/toolchain
  52. apt-get update
  53. touch /tmp/setup-repo
  54. fi
  55. if [ ! -f /tmp/setup-repo-list ]; then
  56. echo '
  57. deb http://old-releases.ubuntu.com/ubuntu/ lucid main restricted universe multiverse
  58. deb http://old-releases.ubuntu.com/ubuntu/ lucid-updates main restricted universe multiverse
  59. deb http://old-releases.ubuntu.com/ubuntu/ lucid-backports main restricted universe multiverse
  60. ' > /etc/apt/sources.list
  61. apt-get update
  62. touch /tmp/setup-repo-list
  63. fi
  64. if [ ! -f /tmp/setup-repo-upgrade ]; then
  65. apt-get dist-upgrade
  66. touch /tmp/setup-repo-upgrade
  67. fi
  68. if [ ! -f /tmp/setup-repo-packages ]; then
  69. apt-get install -y build-essential libglib2.0-dev uuid-dev git-core
  70. apt-get install -y autoconf libtool
  71. apt-get install -y bison flex libxml-libxml-perl libxml-parser-perl
  72. apt-get clean
  73. rm /usr/lib/libuuid.so
  74. touch /tmp/setup-repo-packages
  75. fi
  76. if [ ! -d ${CHROOT_CARLA_DIR} ]; then
  77. git clone git://github.com/falkTX/Carla --depth=1 ${CHROOT_CARLA_DIR}
  78. chmod -R 777 ${CHROOT_CARLA_DIR}/data/linux/
  79. fi
  80. cd ${CHROOT_CARLA_DIR}
  81. git checkout .
  82. git pull
  83. # might be updated by git pull
  84. chmod 777 data/linux/*.sh
  85. chmod 777 data/linux/common.env
  86. EOF
  87. }
  88. export ARCH=32
  89. chroot_setup
  90. export ARCH=64
  91. chroot_setup
  92. # ---------------------------------------------------------------------------------------------------------------------
  93. # build base libs
  94. chroot_build_deps()
  95. {
  96. CHROOT_DIR=${TARGETDIR}/chroot${ARCH}
  97. cp build-deps.sh common.env ${CHROOT_DIR}${CHROOT_CARLA_DIR}/data/linux/
  98. cat <<EOF | sudo chroot ${CHROOT_DIR}
  99. export HOME=/root
  100. export LANG=C
  101. export LC_ALL=C
  102. unset LC_TIME
  103. set -e
  104. if [ ! -f /tmp/setup-repo-packages-extra1 ]; then
  105. if [ x"${ARCH}" != x"32" ]; then
  106. apt-get install -y g++-4.8-multilib ia32-libs
  107. apt-get clean
  108. fi
  109. touch /tmp/setup-repo-packages-extra1
  110. fi
  111. ${CHROOT_CARLA_DIR}/data/linux/build-deps.sh ${ARCH}
  112. if [ ! -f /tmp/setup-repo-packages-extra2 ]; then
  113. apt-get install -y --no-install-recommends libasound2-dev libgtk2.0-dev libqt4-dev libx11-dev
  114. apt-get install -y --no-install-recommends pyqt4-dev-tools python3-pyqt4.qtopengl python3-liblo python3-rdflib python3-sip
  115. apt-get install -y cx-freeze-python3 zip
  116. apt-get clean
  117. touch /tmp/setup-repo-packages-extra2
  118. fi
  119. EOF
  120. }
  121. export ARCH=32
  122. chroot_build_deps
  123. export ARCH=64
  124. chroot_build_deps
  125. # ---------------------------------------------------------------------------------------------------------------------
  126. # build carla
  127. chroot_build_carla()
  128. {
  129. CHROOT_DIR=${TARGETDIR}/chroot${ARCH}
  130. cat <<EOF | sudo chroot ${CHROOT_DIR}
  131. export HOME=/root
  132. export LANG=C
  133. export LC_ALL=C
  134. unset LC_TIME
  135. set -e
  136. export CFLAGS="-I${TARGETDIR}/carla${ARCH}/include"
  137. export CXXFLAGS=${CFLAGS}
  138. export LDFLAGS="-L${TARGETDIR}/carla${ARCH}/lib"
  139. export PKG_CONFIG_PATH=${TARGETDIR}/carla${ARCH}/lib/pkgconfig
  140. export RCC_QT4=/usr/bin/rcc
  141. export LINUX="true"
  142. cd ${CHROOT_CARLA_DIR}
  143. make EXTERNAL_PLUGINS=false ${MAKE_ARGS}
  144. if [ x"${ARCH}" != x"32" ]; then
  145. export CFLAGS="-I${TARGETDIR}/carla32/include -m32"
  146. export CXXFLAGS=${CFLAGS}
  147. export LDFLAGS="-L${TARGETDIR}/carla32/lib -m32"
  148. export PKG_CONFIG_PATH=${TARGETDIR}/carla32/lib/pkgconfig
  149. make posix32 ${MAKE_ARGS}
  150. fi
  151. EOF
  152. }
  153. export ARCH=32
  154. chroot_build_carla
  155. export ARCH=64
  156. chroot_build_carla
  157. # ---------------------------------------------------------------------------------------------------------------------