Last active
December 31, 2015 02:59
-
-
Save geoff-nixon/7924384 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
ECLIPSEMAJORVER=4; DROP=S-4.4M3-201310302000; ECJVER=4.4M3; LZMASDKVER=922 | |
JDKREL=7u45; JDKBLD=b18; SRCREL=7u40; SRCBLD=b43; SRCDATE=26_aug_2013 | |
cd "$(dirname "$0")"; HUR="$(pwd)" | |
info(){ echo 'Aviary: Download and configure extras to use with avian.' | |
echo '' | |
echo ' aviary [patch] | [get [all] | [component ...]]' | |
echo '' | |
echo 'Options:' | |
echo ' patch: Apply makefile patch (but do not download anything).' | |
echo ' get: Download and configure component(s). Implies "patch".' | |
echo '' | |
echo 'Available components:' | |
echo '' | |
echo ' android ecj javah lzma openjdk' | |
echo '' ;} | |
case "$1" in | |
get) | |
case "$2" in | |
all) components=$(echo "$2" | sed -e \ | |
's/all/ecj javah lzma openjdk android/') ;; | |
android|ecj|javah|lzma|openjdk) components=$(echo "$@"|sed -e 's/get //') ;; | |
esac ;; | |
-h|-help|--help|help) | |
info; exit ;; | |
patch) components='' ;; | |
*) | |
info; exit 1; ;; | |
esac | |
getlzma(){ | |
mkdir lzma; cd lzma | |
echo 'Downloading LZMA SDK...' | |
curl -L http://downloads.sourceforge.net/sevenzip/lzma922.tar.bz2 | bsdtar x | |
rm -rf *.exe *.txt; chmod -x $(find . -type f); cd .. | |
echo 'Complete. Add "lzma=lzma" to your makeflags to add LZMA support.' ;} | |
getecj(){ echo 'Downloading ecj...' | |
ECJBASEURL=http://download.eclipse.org/eclipse/downloads/drops$ECLIPSEMAJORVER | |
curl -L $ECJBASEURL/$DROP/ecj-$ECJVER.jar > ecj.jar | |
echo 'Complete. Use "ecj-jar=ecj.jar" to compile with ecj instead of javac.' ;} | |
getjavah(){ echo 'Downloading javah...' | |
curl -L http://gist.github.com/raw/7282908 | openssl base64 -d > javah.jar | |
echo 'Complete. Add "javah-jar=javah.jar" to use this instead of JDK javah.';} | |
compilerflags(){ | |
if [ x"$CC" = x"" ]; then export CC=gcc; fi | |
if [ x"$CXX" = x"" ]; then export CXX=g++; fi | |
if [ x"$CFLAGS" = x"" ]; then export CFLAGS='-O3 -fPIC -g0 -w -DNDEBUG'; fi | |
if [ x"$CXXFLAGS" = x"" ]; then export CXXFLAGS='-O3 -fPIC -g0 -w -DNDEBUG'; fi | |
if [ x"$LDFLAGS" = x"" ]; then export LDFLAGS='-L/usr/local/lib'; fi | |
if [ x"$MAKEFLAGS" = x"" ]; then export MAKEFLAGS="-j3"; fi | |
if [ $(uname) = Darwin ]; then | |
if [ x"$CC" = x"gcc" ]; then export CC=clang; fi | |
if [ x"$CXX" = x"g++" ]; then export CXX=clang++; fi | |
export CFLAGS="$CFLAGS -flto -fgnu-keywords" | |
export CXXFLAGS="$CXXFLAGS -flto -fgnu-keywords -stdlib=libc++" | |
export LDFLAGS="$LDFLAGS -Wl,-S,-x,-w,-dead_strip,-dead_strip_dylibs" | |
export LDFLAGS="$LDFLAGS -Wl,-no_version_load_command,-search_paths_first" | |
export LDFLAGS="$LDFLAGS -Wl,-no_eh_labels,-export_dynamic" | |
fi ;} | |
darwing3ltobug(){ if [ $(uname) = Darwin ]; then cd $HUR; rm -rf makefile.bak; | |
mv makefile makefile.bak; sed -e 's/g3/g0/g' < makefile.bak > makefile; fi ;} | |
getandroid(){ | |
darwing3ltobug; compilerflags | |
mkdir -p android/system; mkdir -p android/external; cd android | |
echo 'Gathering android class library sources...' | |
git clone -q http://github.com/dicej/android-libcore64 libcore & | |
git clone -nq http://android.googlesource.com/platform/bionic & | |
git clone -nq http://android.googlesource.com/platform/system/core system/core & | |
git clone -nq http://android.googlesource.com/platform/libnativehelper & | |
wait | |
cd libnativehelper | |
git checkout -q cf5ac0ec696fce7fac6b324ec7d4d6da217e501c | |
cd .. | |
cd bionic | |
git checkout -q 84983592ade3ec7d72d082262fb6646849979bfc | |
cd .. | |
cd system/core | |
git checkout -q fafcabd0dd4432de3c7f5956edec23f6ed241b56 | |
cd ../.. | |
echo 'Gathering android class library supporting libraries...' | |
git clone -nq http://android.googlesource.com/platform/external/fdlibm \ | |
external/fdlibm & | |
git clone -nq http://android.googlesource.com/platform/external/icu4c \ | |
external/icu4c & | |
git clone -nq http://android.googlesource.com/platform/external/openssl \ | |
external/openssl & | |
git clone -nq http://android.googlesource.com/platform/external/zlib \ | |
external/zlib & | |
git clone -nq git://git.openssl.org/openssl.git openssl-upstream & | |
wait | |
cd external | |
curl -L http://oss.readytalk.com/avian/expat-2.1.0.tar.gz | bsdtar x | |
mv expat* expat | |
cd .. | |
cd external/fdlibm | |
git checkout -q 0da5f683c9ddc9442af3b389b4220e91ccffb320 | |
cd ../.. | |
cd external/icu4c | |
git checkout -q 8fd45e08f1054d80a356ef8aa05659a2ba84707c | |
cd ../.. | |
cd external/openssl | |
git checkout -q 7b972f1aa23172c4430ada7f3236fa1fd9b31756 | |
cd ../.. | |
cd external/zlib | |
git checkout -q 15b6223aa57a347ce113729253802cb2fdeb4ad0 | |
cd ../.. | |
cd openssl-upstream | |
git checkout -q OpenSSL_1_0_1e | |
cd .. | |
if [ $(uname) = Darwin ]; then | |
echo 'Building static C++ standard library...' | |
compile(){ clang++ -DNDEBUG -g0 -O3 -std=c++11 -nostdinc++ -Ilibc++/include \ | |
-Ilibc++abi/include -fexceptions -flto -fpic -frtti -fstrict-aliasing \ | |
-mmacosx-version-min=10.7 -w -c "$@" ;} | |
for i in libcxx libcxxabi; do git clone -q http://llvm.org/git/$i; done | |
mv libcxx libc++; mv libcxxabi libc++abi; for lib in libc++abi libc++; do | |
mkdir -p cxx/$lib; for file in $(ls $lib/src/*.cpp); do compile $file; done | |
mv *.o cxx/$lib; done; for obj in stdexcept.o typeinfo.o exception.o; do | |
ld -r -arch x86_64 $(find cxx -name $obj) -o cxx/libc++abi/$obj | |
rm -rf cxx/libc++/$obj; done; ar rc libc++.a $(find cxx -name '*.o') | |
rm -rf cxx libc++ libc++abi | |
export LDFLAGS="$LDFLAGS -L$HUR/android -stdlib=libc++ -lc++ -w" | |
fi | |
echo 'Building android class library supporting libraries...' | |
cd external/expat | |
./configure --enable-static --disable-shared --with-pic; make | |
cd ../.. | |
cd external/fdlibm | |
mv makefile.in Makefile.in || true | |
sh configure; make | |
cd ../.. | |
cd external/icu4c | |
echo 'H4sICLTKcVICA2ljdXBhdGNoAPPMS0mtsFJIzs/Nzc/TL80tLUmt0MvgsqUccOnq | |
6mKYq62tjSHm4KCga2qsoG1qpGOg4ODApauckpqWmZeqkJmXA6Qg8hZAeTOYfCnQ | |
0WkwaQDe0a6BwgAAAA==' | openssl base64 -d | gzcat | patch -p0 | |
./configure --disable-shared --enable-static; make | |
cd ../.. | |
cd openssl-upstream | |
export CFLAGS="$CFLAGS -fno-lto" | |
export MAKEFLAGS="$MAKEFLAGS -j1" | |
for x in progs handshake_cutthrough jsse channelid eng_dyn_dirs \ | |
fix_clang_build tls12_digests alpn; do | |
patch -p1 < ../external/openssl/patches/$x.patch | |
done | |
if [ $(uname) = Darwin ]; then | |
./Configure no-shared threads zlib darwin64-x86_64-cc; make | |
else | |
./config; make | |
fi | |
cd ../.. | |
echo 'Complete. Add "android=android" to use the android class library.' ;} | |
jdksetup(){ | |
JDKBASE=http://download.oracle.com/otn-pub/java/jdk/$JDKREL-$JDKBLD/ | |
SRCBASE=http://download.java.net/openjdk/jdk$SRCREL/promoted/$SRCBLD/ | |
JDKFILE=jdk-$JDKREL-$PLATFORM-$ARCH.$EXT; JDKURL=$JDKBASE$JDKFILE | |
FCSFILE=jdk-$FCSREL-fcs-bin-$FCSBLD-$PLATFORM-$FCSARCH-$FCSDATE.$EXT | |
SRCURL=$SRCBASE$SRCFILE; FCSURL=$FCSBASE$FCSFILE | |
SRCFILE=openjdk-$SRCREL-fcs-src-$SRCBLD-$SRCDATE.zip; JDKCOOKIE=gpw_e24=http | |
case $(uname -m) in *64*) ARCH=x64 ;; *86*) ARCH=i586 ;; | |
*) echo "Sorry, I can't figure out your system architecture." && exit 1 ;; | |
esac; case $(uname) in | |
Darwin) PLATFORM=macosx ; EXT=dmg ;; | |
Linux|*BSD|DragonFly) PLATFORM=linux ; EXT=tar.gz ;; | |
SunOS) PLATFORM=solaris ; EXT=tar.gz ;; | |
*GW*) PLATFORM=windows ; EXT=exe ;; | |
*) echo "Sorry, I can't figure out what OS you're running." && exit 1 ;; | |
esac | |
if [ $PLATFORM = macosx ]; then FCSARCH=x86_64; else FCSARCH=$ARCH; fi | |
if [ $PLATFORM = solaris ]; then | |
echo "Sorry, Illumos/Solaris support is not yet implemented." && exit 1 | |
elif [ $PLATFORM = windows ]; then | |
echo "Sorry, Windows support is not yet implemented." && exit 1 | |
elif [ $PLATFORM = macosx ]; then if [ $ARCH = i586 ]; then | |
echo "Sorry, 32-bit Mac OS X isn't supported." && exit 1; fi | |
fi ;} | |
macjdk(){ echo 'Extracting JDK from disk image...' | |
hdiutil makehybrid -iso -joliet jdk -o jdk; rm jdk; tar xf *.iso | |
xar -xf *.pkg; cp jdk*pkg/Payload /tmp; rm -rf *; PAYLOAD=/tmp/Payload | |
tar xf $PAYLOAD --strip-components 3 Contents/Home; rm -rf $PAYLOAD ;} | |
getjdk(){ jdksetup; case $PLATFORM in | |
linux) curl -Lb $JDKCOOKIE $JDKURL | bsdtar x --strip-components 1 ;; | |
macosx) curl -Lb $JDKCOOKIE $JDKURL > jdk; macjdk ;; | |
esac ;} | |
getjdksrc(){ curl -L $SRCURL | bsdtar x --strip-components 2 openjdk/jdk/src ;} | |
getopenjdk(){ darwing3ltobug; jdksetup; mkdir openjdk; cd openjdk | |
echo 'Downloading JDK...'; getjdk | |
echo 'Downloading JDK source files...'; getjdksrc | |
echo 'Patching JDK source files with latest updates...' | |
cd src; patchsrc; cd ../..; echo \ | |
'Complete. Add "openjdk=$PWD/openjdk openjdk-src=$PWD/openjdk/src" to use.';} | |
patchsrc(){ curl -L http://gist.github.com/raw/7286377 | openssl base64 -d | \ | |
bzcat | patch -p0 ;} | |
dopatch(){ if [ ! -e "$HUR/.patched" ]; then | |
echo 'Applying patch...'; echo ' | |
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 | |
8u83l83Oc+z6PrbzeUNvlkkk/CiIiJKLpuluu5wjV1kkk6xEQNjGDZ+c5g/RioAE | |
lgumhPJ5xEEQ3ERAWhC0IWhC0IWhC0IWhC0IWhC0IWhC0IWhC0IWhC0IWhC0IWhC | |
0IWhC0IWhC0IWhC0IWhC0cud/rSeO8fEi3jJJJ2iIiJjBs6dwxjGPet5Z2cRERJZ | |
bwQMDWfgLxjGM5kHLvBIEjuP1XSJ8T+cCodDOCpos+h4eFADpNZmDZNdPr25ddLl | |
stmuGWWWWWe3ERESUX8vn9T681b7lfR+h/Z7fuOju8lVYrzC94fhv4jDqoKTYfu+ | |
QUerq6u9yQBehiHMq1rERERERVaIxYtpnAvnC666Orhg8zvZOU1Co8826qasckJW | |
024ix1uoulmt6jY63UWOt1FtahUaR63Uba1CrekPDvXh7+8ncRbukkk88RESyyyW | |
zJLNcTW/v7463JmAAAADkTMwAClAAAAAAAAAAAAAAAJaAAABt4OYVVFVRzTE0emC | |
unn70PJq4nadoYgCvQCgp6DQWVFdO0iX6g67YL2mqA+Y7/LhcIAXr18mvzO2+Pe3 | |
vc+Ai3wSSSfBERFIQgSGZcDgldvVVVVUcoW9iDEIIiw5ikQWsI+jCQJFkMIsLqVR | |
BvCMi/JnrqE7sM43nwidvZ6T2QD1jUERYd/nO+wAryQht9HfUqqrf6uV+b6ZJK8U | |
knX2U24yElvTJJJ1iIiJKL4/pa18d6eHgzw5hm+K5FnaAs6nVeh5UJ4H3Y25u0i1 | |
1QqNzbqpqNzbqpqN26qajY1bCa9Sm7SLWzXu01KuIs2O2ZN1SLUXbNb1FmzXJqNj | |
3ZNRsfkpJJywnD4Sm7SLWzXu00tUKiyqFRopbMiUm0qeimqmo026qaiyqFRu3VTU | |
bt1U1FKLq7uyIjDInlB7oAgDWYOYM+mKIfEaWot7XJ1eNxgKUAAC0BAVVVVVXERT | |
IDxj6Q8YdHuEfV5dpCI/KbDQX/yt36/tq769Pq+nhzi3vaukkknqxISEhIQgSFNg | |
327keS20h5nw+AL9QJ55Ik0dBY3jXDhroMfzaVrXnvNe3nDtSU0B5t52klda9q1f | |
RXqxr6v2AA+aq+b6XKrnOVXG7duAAAAAAa4tTopJu5c6aa1knIkvUXdJN3K1wa4/ | |
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'| \ | |
openssl base64 -d|bzcat|patch -sp0; touch "$HUR/.patched"; fi ;} | |
dopatch | |
for component in $(echo $components); do | |
get$component | |
done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment