summaryrefslogtreecommitdiff
path: root/docker-script
diff options
context:
space:
mode:
authorDamien Zammit <damien@zamaudio.com>2018-02-24 18:19:26 +1100
committerDamien Zammit <damien@zamaudio.com>2018-02-24 18:19:26 +1100
commit68b2969ce1d3258c98706d86f8b100cdf777dbd9 (patch)
tree9eef016db7ee747339aa5584702ef90a62782944 /docker-script
parentd3f15842edd1946d40a75742582fdcf2ab3066d1 (diff)
Cross compiling: Add build scripts for OSX/WIN/GNU using docker
Diffstat (limited to 'docker-script')
-rw-r--r--docker-script92
1 files changed, 92 insertions, 0 deletions
diff --git a/docker-script b/docker-script
new file mode 100644
index 0000000..d145b78
--- /dev/null
+++ b/docker-script
@@ -0,0 +1,92 @@
+#!/bin/bash
+set -e
+
+CPUS=${CPUS:-4}
+TRAVIS_TAG=${TRAVIS_TAG:-}
+
+rm -fr bin linux osx win32 win64
+
+# GNU/Linux
+export CC=gcc-4.8
+export CXX=g++-4.8
+export AR=ar
+export CXXFLAGS=
+export CFLAGS=
+export LDFLAGS=
+make clean
+rm -fr bin
+mkdir bin
+make -j${CPUS} LINUX=true
+mv bin linux
+
+# OSX
+mkdir bin
+export CC=i686-apple-darwin10-gcc
+export CXX=i686-apple-darwin10-g++
+export AR=i686-apple-darwin10-ar
+export PKG_CONFIG_PATH=/opt/local/lib/pkgconfig
+export CXXFLAGS="-I/opt/local/include"
+export CFLAGS="-I/opt/local/include"
+make clean
+touch dpf/utils/lv2_ttl_generator
+chmod a+x dpf/utils/lv2_ttl_generator
+make MACOS=true MACOS_OLD=true -j${CPUS}
+mv bin osx
+
+# WIN32
+mkdir bin
+export PATH=$PATH:/opt/mingw64/bin
+export CXXFLAGS="-m32 -I/opt/mingw64/x86_64-w64-mingw32/include -I/opt/mingw64/include"
+export CFLAGS="-m32 -I/opt/mingw64/x86_64-w64-mingw32/include -I/opt/mingw64/include"
+export LDFLAGS=-m32
+export PKG_CONFIG_PATH=/opt/mingw64/lib32/pkgconfig
+export CC=x86_64-w64-mingw32-gcc
+export CXX=x86_64-w64-mingw32-g++
+export AR=x86_64-w64-mingw32-ar
+make clean
+touch dpf/utils/lv2_ttl_generator.exe
+chmod a+x dpf/utils/lv2_ttl_generator.exe
+make WIN32=true -j${CPUS}
+mv bin win32
+
+# WIN64
+mkdir bin
+export CXXFLAGS="-I/opt/mingw64/x86_64-w64-mingw32/include -I/opt/mingw64/include"
+export CFLAGS="-I/opt/mingw64/x86_64-w64-mingw32/include -I/opt/mingw64/include"
+export LDFLAGS=
+export PKG_CONFIG_PATH=/opt/mingw64/lib/pkgconfig
+make clean
+touch dpf/utils/lv2_ttl_generator.exe
+chmod a+x dpf/utils/lv2_ttl_generator.exe
+make WIN32=true -j${CPUS}
+mv bin win64
+
+# Metadata for LV2
+mkdir bin
+cd linux
+for f in *.lv2; do cd $f; cp *.ttl ../../osx/$f/ ; cd .. ; done
+for f in *.lv2; do cd $f; cp *.ttl ../../win32/$f/ ; cd .. ; done
+for f in *.lv2; do cd $f; cp *.ttl ../../win64/$f/ ; cd .. ; done
+cd ../osx
+for f in *.lv2; do cd $f; perl -pi -e 's/\.so/\.dylib/g' manifest.ttl; perl -pi -e 's/X11UI/CocoaUI/g' manifest.ttl; cd .. ; done
+cd ../win32
+for f in *.lv2; do cd $f; perl -pi -e 's/\.so/\.dll/g' manifest.ttl; perl -pi -e 's/X11UI/WindowsUI/g' manifest.ttl; cd .. ; done
+cd ../win64
+for f in *.lv2; do cd $f; perl -pi -e 's/\.so/\.dll/g' manifest.ttl; perl -pi -e 's/X11UI/WindowsUI/g' manifest.ttl; cd .. ; done
+
+# Release
+cd ../linux
+zip -9 -r zam-plugins-$TRAVIS_TAG-linuxlv2.zip *.lv2
+mv *.zip ../bin
+cd ../osx
+zip -9 -r zam-plugins-$TRAVIS_TAG-osxlv2.zip *.lv2
+mv *.zip ../bin
+cd ../win32
+zip -9 -r zam-plugins-$TRAVIS_TAG-win32lv2.zip *.lv2
+mv *.zip ../bin
+cd ../win64
+zip -9 -r zam-plugins-$TRAVIS_TAG-win64lv2.zip *.lv2
+mv *.zip ../bin
+cd ../bin
+ls -l
+echo "ALL DONE!!!"