summaryrefslogtreecommitdiff
path: root/data/buildscripts
diff options
context:
space:
mode:
authorRuben Rodriguez <ruben@gnu.org>2015-03-09 21:19:42 +0100
committerRuben Rodriguez <ruben@gnu.org>2015-03-09 21:19:42 +0100
commit09622311aa51487cd9cd98e8cbd8da5987bcad18 (patch)
tree6ebd99d77b373c843015a53e0428a06736ed35c5 /data/buildscripts
parent0d17f6aeab217192675591b771f472802ae52e3d (diff)
Tune-up build scripts for multi-platform batch building
Diffstat (limited to 'data/buildscripts')
-rw-r--r--data/buildscripts/build-android.sh6
-rw-r--r--data/buildscripts/build-gnulinux.sh20
-rw-r--r--data/buildscripts/build-mac.sh12
-rw-r--r--data/buildscripts/build-windows.sh3
-rw-r--r--data/buildscripts/buildall.sh43
-rw-r--r--data/buildscripts/mozconfig-android21
-rw-r--r--data/buildscripts/mozconfig-common12
-rw-r--r--data/buildscripts/mozconfig-gnulinux9
-rw-r--r--data/buildscripts/mozconfig-mac5
-rw-r--r--data/buildscripts/mozconfig-windows15
-rw-r--r--data/buildscripts/toolchain-gnulinux.sh2
-rw-r--r--data/buildscripts/toolchain-mac.sh (renamed from data/buildscripts/toolchain-mac)9
-rw-r--r--data/buildscripts/toolchain-windows.sh5
13 files changed, 113 insertions, 49 deletions
diff --git a/data/buildscripts/build-android.sh b/data/buildscripts/build-android.sh
index 6fc08ec..d042d15 100644
--- a/data/buildscripts/build-android.sh
+++ b/data/buildscripts/build-android.sh
@@ -16,7 +16,9 @@ apt-get -q -y --force-yes install zip unzip yasm
rm -rf obj-android
-cp ../../data/buildscripts/mozconfig-android .mozconfig
+cp ../../data/buildscripts/mozconfig-common .mozconfig
+cat ../../data/buildscripts/mozconfig-android >> .mozconfig
+
rm extensions/gnu/abouticecat* -rf
@@ -31,3 +33,5 @@ done
popd
./mach package
+
+pkill adb
diff --git a/data/buildscripts/build-gnulinux.sh b/data/buildscripts/build-gnulinux.sh
new file mode 100644
index 0000000..a844af9
--- /dev/null
+++ b/data/buildscripts/build-gnulinux.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+set -e
+
+apt-get -q -y --force-yes build-dep firefox
+
+cp ../../data/buildscripts/mozconfig-common .mozconfig
+cat ../../data/buildscripts/mozconfig-gnulinux >> .mozconfig
+
+rm -rf obj-gnulinux
+
+./mach build
+./mach package
+
+[ $(arch) = "x86_64" ] || exit 0
+cd obj-gnulinux/browser/locales
+for locale in $(ls ../../../l10n/ -1); do
+ make langpack-$locale LOCALE_MERGEDIR=.
+done
+
+
diff --git a/data/buildscripts/build-mac.sh b/data/buildscripts/build-mac.sh
index fa467d5..43920eb 100644
--- a/data/buildscripts/build-mac.sh
+++ b/data/buildscripts/build-mac.sh
@@ -3,13 +3,13 @@ set -e
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
-apt-get -q -y --force-yes install zip unzip yasm
+apt-get -q -y --force-yes install zip unzip yasm mkisofs
-rm -rf obj-macos
+rm -rf obj-mac
-cp ../../data/buildscripts/mozconfig-macos .mozconfig
+cp ../../data/buildscripts/mozconfig-common .mozconfig
+cat ../../data/buildscripts/mozconfig-mac >> .mozconfig
-./mach build 2>&1 |tee mach-macos-build.log
-
-./mach package 2>&1 |tee mach-macos-package.log
+./mach build
+./mach package
diff --git a/data/buildscripts/build-windows.sh b/data/buildscripts/build-windows.sh
index 723ce26..10c5c29 100644
--- a/data/buildscripts/build-windows.sh
+++ b/data/buildscripts/build-windows.sh
@@ -7,7 +7,8 @@ apt-get -q -y --force-yes install zip unzip yasm
rm -rf obj-windows
-cp ../../data/buildscripts/mozconfig-windows .mozconfig
+cp ../../data/buildscripts/mozconfig-common .mozconfig
+cat ../../data/buildscripts/mozconfig-windows >> .mozconfig
./mach build
./mach package
diff --git a/data/buildscripts/buildall.sh b/data/buildscripts/buildall.sh
new file mode 100644
index 0000000..bd91542
--- /dev/null
+++ b/data/buildscripts/buildall.sh
@@ -0,0 +1,43 @@
+#!/bin/bash
+
+set -e
+set -x
+
+if [ $# != 1 ]; then
+ echo E: pass the source dir as parameter
+ exit 1
+fi
+
+SRCDIR=$PWD/$1
+
+function buildpackage(){
+cat << EOF > $SRCDIR/run.sh
+set -e
+set -x
+mkdir -p $HOME/ccache/$1-$3 || true
+export CCACHE_DIR=$HOME/ccache/$1-$3
+mkdir $SRCDIR/../../toolchains || true
+cd $SRCDIR/../../toolchains
+sh ../data/buildscripts/toolchain-${1}.sh
+cd $SRCDIR
+sh ../../data/buildscripts/build-${1}.sh
+EOF
+
+env -i TERM=screen eatmydata sudo HOME=/home/ruben BUILDDIST=$2 ARCH=$3 pbuilder execute $SRCDIR/run.sh
+}
+
+buildpackage windows belenos amd64 |tee windows.log 2>&1
+buildpackage mac belenos amd64 |tee mac.log 2>&1
+buildpackage gnulinux toutatis i386 |tee gnulinux-i386.log 2>&1
+mv $SRCDIR/obj-gnulinux $SRCDIR/obj-gnulinux-i386
+buildpackage gnulinux toutatis amd64 |tee gnulinux-amd64.log 2>&1
+mv $SRCDIR/obj-gnulinux $SRCDIR/obj-gnulinux-amd64
+buildpackage android belenos i386 |tee android.log 2>&1
+
+rm binaries -rf
+mkdir binaries/langpacks -p
+cp $1/obj-windows/dist/icecat*.zip binaries
+cp $1/obj-mac/dist/icecat/icecat*.dmg binaries
+cp $1/obj-gnulinux*/dist/icecat*.bz2 binaries
+cp $1/obj-android/dist/icecat*.apk binaries
+cp $1/obj-gnulinux-amd64/dist/linux-x86_64/xpi/* binaries/langpacks
diff --git a/data/buildscripts/mozconfig-android b/data/buildscripts/mozconfig-android
index 82bd17f..e1d0b6f 100644
--- a/data/buildscripts/mozconfig-android
+++ b/data/buildscripts/mozconfig-android
@@ -1,4 +1,3 @@
-# Build Firefox for Android:
ac_add_options --enable-application=mobile/android
ac_add_options --target=arm-linux-androideabi
mk_add_options MOZ_OBJDIR=./obj-android
@@ -6,26 +5,16 @@ ac_add_options --with-android-version=9
ac_add_options --enable-update-channel=gnuzilla
-ac_add_options --disable-updater
-ac_add_options --disable-crashreporter
-ac_add_options --disable-maintenance-service
-ac_add_options --disable-tests
-
#ac_add_options --enable-elf-hack
#ac_add_options --enable-stdcxx-compat
#ac_add_options --with-system-zlib
#ac_add_options --with-android-gnu-compiler-version=4.7
-#mk_add_options 'export MOZ_CHROME_MULTILOCALE=en-US cs da de es-ES fi fr ja ko it nb-NO nl pl pt-BR pt-PT ru sk sv-SE zh-CN zh-TW'
-mk_add_options 'export MOZ_CHROME_MULTILOCALE=es-ES'
-
-mk_add_options 'export L10NBASEDIR=/home/ruben/git/gnuzilla/output/icecat-31.5.0/l10n'
-ac_add_options --with-l10n-base=/home/ruben/git/gnuzilla/output/icecat-31.5.0/l10n
+mk_add_options 'export MOZ_CHROME_MULTILOCALE=en-US cs da de es-ES fi fr ja ko it nb-NO nl pl pt-BR pt-PT ru sk sv-SE zh-CN zh-TW'
-#ac_add_options --with-android-sdk="$HOME/android-build/android-sdk-linux/platforms/android-21/"
-ac_add_options --with-android-sdk="$HOME/android-build/android-sdk-linux/platforms/android-16/"
-ac_add_options --with-android-ndk="$HOME/android-build/android-ndk-r8e"
+mk_add_options 'export L10NBASEDIR=$PWD/l10n'
+ac_add_options --with-l10n-base=$PWD/l10n
-mk_add_options MOZ_MAKE_FLAGS=-j8
-ac_add_options --with-ccache
+ac_add_options --with-android-sdk=$PWD/../../toolchains/android-build/android-sdk-linux/platforms/android-16/
+ac_add_options --with-android-ndk=$PWD/../../toolchains/android-build/android-ndk-r8e
diff --git a/data/buildscripts/mozconfig-common b/data/buildscripts/mozconfig-common
new file mode 100644
index 0000000..0de372d
--- /dev/null
+++ b/data/buildscripts/mozconfig-common
@@ -0,0 +1,12 @@
+ac_add_options --with-l10n-base=$PWD/l10n
+ac_add_options --enable-official-branding
+ac_add_options --with-distribution-id=org.gnu
+mk_add_options MOZ_MAKE_FLAGS=-j7
+ac_add_options --with-ccache=/usr/bin/ccache
+
+ac_add_options --disable-debug
+ac_add_options --disable-optimize
+ac_add_options --disable-tests
+ac_add_options --disable-updater
+ac_add_options --disable-crashreporter
+ac_add_options --disable-maintenance-service
diff --git a/data/buildscripts/mozconfig-gnulinux b/data/buildscripts/mozconfig-gnulinux
new file mode 100644
index 0000000..e6e859a
--- /dev/null
+++ b/data/buildscripts/mozconfig-gnulinux
@@ -0,0 +1,9 @@
+ac_add_options --enable-application=browser
+mk_add_options MOZ_OBJDIR=./obj-gnulinux
+
+ac_add_options --disable-webrtc
+ac_add_options --without-intl-api
+
+ac_add_options --disable-gnomevfs
+ac_add_options --enable-gio
+ac_add_options --enable-gstreamer=0.10
diff --git a/data/buildscripts/mozconfig-mac b/data/buildscripts/mozconfig-mac
index a6be1b0..2fbe366 100644
--- a/data/buildscripts/mozconfig-mac
+++ b/data/buildscripts/mozconfig-mac
@@ -24,7 +24,7 @@ AS=$ROOTDIR/x86_64-apple-darwin10-as
LD=$ROOTDIR/x86_64-apple-darwin10-ld
STRIP=$ROOTDIR/x86_64-apple-darwin10-strip
-mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-macos
+mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-mac
mk_add_options MOZ_APP_DISPLAYNAME="IceCat"
mk_add_options MOZILLA_OFFICIAL=1
mk_add_options BUILD_OFFICIAL=1
@@ -49,6 +49,3 @@ ac_add_options --disable-tests
# ac_add_options --disable-ctypes
ac_add_options --without-intl-api
-
-mk_add_options MOZ_MAKE_FLAGS=-j8
-ac_add_options --with-ccache
diff --git a/data/buildscripts/mozconfig-windows b/data/buildscripts/mozconfig-windows
index 4b7193c..1b50a57 100644
--- a/data/buildscripts/mozconfig-windows
+++ b/data/buildscripts/mozconfig-windows
@@ -1,23 +1,8 @@
-#Specify the cross compile
export CROSS_COMPILE=1
ac_add_options --enable-application=browser
ac_add_options --target=i686-w64-mingw32
ac_add_options --enable-default-toolkit=cairo-windows
mk_add_options MOZ_OBJDIR=./obj-windows
-ac_add_options --disable-debug
-ac_add_options --disable-optimize
-ac_add_options --disable-tests
-
-ac_add_options --disable-updater
-ac_add_options --disable-crashreporter
-ac_add_options --disable-maintenance-service
ac_add_options --disable-webrtc
ac_add_options --without-intl-api
-
-# ac_add_options --disable-accessibility # uncomment if you don't have widl installed
-
-# Use parallel build. Adjust number of processes for your setup.
-mk_add_options MOZ_MAKE_FLAGS=-j8
-ac_add_options --with-ccache
-
diff --git a/data/buildscripts/toolchain-gnulinux.sh b/data/buildscripts/toolchain-gnulinux.sh
new file mode 100644
index 0000000..27a97da
--- /dev/null
+++ b/data/buildscripts/toolchain-gnulinux.sh
@@ -0,0 +1,2 @@
+
+# nothing to do :)
diff --git a/data/buildscripts/toolchain-mac b/data/buildscripts/toolchain-mac.sh
index 20cb31c..422bb2c 100644
--- a/data/buildscripts/toolchain-mac
+++ b/data/buildscripts/toolchain-mac.sh
@@ -1,6 +1,11 @@
set -e
-WD=macos-build
+WD=mac-build
+
+#export CCACHE_DIR=$HOME/ccache/mac-amd64
+#export CC="ccache gcc"
+#export CXX="ccache g++"
+
apt-get -q -y --force-yes install cmake rsync zlib1g-dev libssl-dev mkisofs
rm -rf $WD
@@ -38,4 +43,4 @@ git am ../tor-browser-bundle/gitian/patches/libdmg.patch
cmake CMakeLists.txt
cd dmg
make
-
+cp dmg /usr/local/bin
diff --git a/data/buildscripts/toolchain-windows.sh b/data/buildscripts/toolchain-windows.sh
index d885831..18073a0 100644
--- a/data/buildscripts/toolchain-windows.sh
+++ b/data/buildscripts/toolchain-windows.sh
@@ -7,7 +7,6 @@ apt-get -q -y --yes --force-yes install libmpfrc++-dev libmpc-dev zlib1g-dev
WD=$HOME/mingw-w64-build
rm -rf $WD
mkdir $WD
-cp spec $WD/msvcr100.spec
cd $WD
wget http://ftp.gnu.org/gnu/binutils/binutils-2.24.tar.bz2
@@ -41,14 +40,12 @@ make install
# First stage of gcc compilation
cd $WD
-# We don't want to link against msvcrt.dll due to bug 9084.
-sed 's/msvcrt/msvcr100/' -i $WD/msvcr100.spec
# Linking libgcc against msvcrt is hard-coded...
sed 's/msvcrt/msvcr100/' -i $WD/gcc-4.9.1/gcc/config/i386/t-mingw-w32 $WD/gcc-4.9.1/libgcc/config/i386/t-mingw32
mkdir gcc-4.9.1-mingw32 && cd gcc-4.9.1-mingw32
# LDFLAGS_FOR_TARGET does not work for some reason. Thus, we take
# CFLAGS_FOR_TARGET.
-export CFLAGS_FOR_TARGET="-specs=$WD/msvcr100.spec -Wl,--nxcompat -Wl,--dynamicbase"
+export CFLAGS_FOR_TARGET="-Wl,--nxcompat -Wl,--dynamicbase"
../gcc-4.9.1/configure --prefix=/usr/local/ --target=i686-w64-mingw32 --with-gnu-ld --with-gnu-as --enable-languages=c,c++ --disable-multilib
make all-gcc -j7
make install-gcc