Index: tools/trusted_cross_toolchains/trusted-toolchain-creator.mipsel.squeeze.sh |
diff --git a/tools/trusted_cross_toolchains/trusted-toolchain-creator.mipsel.squeeze.sh b/tools/trusted_cross_toolchains/trusted-toolchain-creator.mipsel.squeeze.sh |
index 8037dd07d779e67754ac54a90f8543b41b10f16f..ead96203c25abbf3d1f9a8fa6e0b521309dddcbc 100755 |
--- a/tools/trusted_cross_toolchains/trusted-toolchain-creator.mipsel.squeeze.sh |
+++ b/tools/trusted_cross_toolchains/trusted-toolchain-creator.mipsel.squeeze.sh |
@@ -24,6 +24,8 @@ set -o nounset |
set -o errexit |
set -o xtrace |
+readonly SCRIPT_DIR=$(dirname $0) |
+ |
readonly MAKE_OPTS="-j8" |
readonly ARCH="mips32" |
@@ -54,6 +56,8 @@ readonly PATCH_MIPS32=$(readlink -f ../third_party/qemu/qemu-0.12.5.patch_mips) |
readonly JAIL_MIPS32=${INSTALL_ROOT}/sysroot |
+readonly CROSS_TARBALL="naclsdk_linux_mipsel-trusted" |
+ |
# These are simple compiler wrappers to force 32bit builds. |
readonly CC32=$(readlink -f pnacl/scripts/mygcc32) |
readonly CXX32=$(readlink -f pnacl/scripts/myg++32) |
@@ -76,9 +80,10 @@ SubBanner() { |
Usage() { |
echo |
- echo "$0 trusted_sdk" |
+ echo "$0 <nacl_sdk|chrome_sdk>" |
echo |
- echo "trusted_sdk - Build everything and package it" |
+ echo "nacl_sdk - Build nacl toolchain and package it" |
+ echo "chrome_sdk - Build chrome toolchain and package it" |
Mark Seaborn
2013/03/06 00:43:43
Nit: put only one space before "-" (be consistent)
petarj
2013/03/07 23:59:50
Done.
|
echo |
} |
@@ -183,6 +188,7 @@ SanityCheck() { |
ClearInstallDir() { |
Banner "clearing dirs in ${INSTALL_ROOT}" |
rm -rf ${INSTALL_ROOT}/* |
+ mkdir -p ${JAIL_MIPS32} |
} |
ClearBuildDir() { |
@@ -193,7 +199,7 @@ ClearBuildDir() { |
CreateTarBall() { |
local tarball=$1 |
Banner "creating tar ball ${tarball}" |
- tar cfz ${tarball}-mips.tgz -C ${INSTALL_ROOT} . |
+ tar cfz ${tarball}.tgz -C ${INSTALL_ROOT} . |
} |
@@ -468,25 +474,106 @@ InstallTrustedLinkerScript() { |
readonly REPO_DEBIAN=http://ftp.debian.org/debian |
readonly MIPS32_PACKAGES=${REPO_DEBIAN}/dists/squeeze/main/binary-mipsel/Packages.bz2 |
-readonly TMP_PACKAGELIST_MIPS32=${TMP}/../packagelist_mipsel.tmp |
+readonly TMP_BASE_PACKAGELIST_MIPS32=${SCRIPT_DIR}/packagelist.squeeze.mipsel.base |
+readonly TMP_EXTRA_PACKAGELIST_MIPS32=${SCRIPT_DIR}/packagelist.squeeze.mipsel.extra |
-# These are good enough for native client. |
+# Jail packages: these are good enough for native client |
+# NOTE: the package listing here should be updated using the |
+# GeneratePackageList() function below |
readonly BASE_PACKAGES="\ |
libssl0.9.8 \ |
libssl-dev \ |
- libx11-6 \ |
- libx11-dev \ |
- x11proto-core-dev \ |
- libxt6 \ |
- libxt-dev \ |
zlib1g \ |
- zlib1g-dev \ |
- libasound2 \ |
- libasound2-dev \ |
+ zlib1g-dev" |
+ |
+# Additional jail packages needed to build chrome |
+# NOTE: the package listing here should be updated using the |
+# GeneratePackageList() functions below |
+readonly EXTRA_PACKAGES="\ |
+ comerr-dev \ |
+ krb5-multidev \ |
libaa1 \ |
libaa1-dev \ |
+ libasound2 \ |
+ libasound2-dev \ |
+ libatk1.0-0 \ |
+ libatk1.0-dev \ |
+ libxau6 \ |
libxau-dev \ |
+ libavahi-client3 \ |
+ libavahi-client-dev \ |
+ libavahi-common3 \ |
+ libavahi-common-dev \ |
+ libbz2-1.0 \ |
+ libbz2-dev \ |
+ libcairo2 \ |
+ libcairo2-dev \ |
+ libcups2 \ |
+ libcups2-dev \ |
+ libdbus-1-3 \ |
+ libdbus-1-dev \ |
+ libdbus-glib-1-2 \ |
+ libdbus-glib-1-dev \ |
+ libcomerr2 \ |
+ libexpat1 \ |
+ libexpat1-dev \ |
+ libfontconfig1 \ |
+ libfontconfig1-dev \ |
+ libfreetype6 \ |
+ libfreetype6-dev \ |
+ libgconf2-4 \ |
+ libgconf2-dev \ |
+ libgcrypt11 \ |
+ libgcrypt11-dev \ |
+ libgnutls26 \ |
+ libgnutls-dev \ |
+ libgpg-error0 \ |
+ libgpg-error-dev \ |
+ libgssapi-krb5-2 \ |
+ libgtk2.0-0 \ |
+ libgtk2.0-dev \ |
+ libglib2.0-0 \ |
+ libglib2.0-dev \ |
+ libgnome-keyring-dev \ |
+ libjpeg62 \ |
+ libjpeg62-dev \ |
+ libk5crypto3 \ |
+ libkeyutils1 \ |
+ libkeyutils-dev \ |
+ libkrb5-3 \ |
+ libkrb5-dev \ |
+ libkrb5support0 \ |
+ libnspr4-0d \ |
+ libnspr4-dev \ |
+ libnss3-1d \ |
+ libnss3-dev \ |
+ liborbit2 \ |
+ liborbit2-dev \ |
+ libpam0g \ |
+ libpam0g-dev \ |
+ libpango1.0-0 \ |
+ libpango1.0-dev \ |
+ libpci3 \ |
+ libpci-dev \ |
+ libpcre3 \ |
+ libpcre3-dev \ |
+ libpixman-1-0 \ |
+ libpixman-1-dev \ |
+ libpng12-0 \ |
+ libpng12-dev \ |
+ libselinux1 \ |
+ libspeechd2 \ |
+ libspeechd-dev \ |
+ libtasn1-3 \ |
+ libtasn1-3-dev \ |
+ libudev0 \ |
+ libudev-dev \ |
+ libx11-6 \ |
+ libx11-dev \ |
+ libxext6 \ |
+ libxext-dev \ |
libxau6 \ |
+ libxau-dev \ |
libxcb1 \ |
libxcb1-dev \ |
libxcb-render0 \ |
@@ -495,25 +582,85 @@ readonly BASE_PACKAGES="\ |
libxcb-render-util0-dev \ |
libxcb-shm0 \ |
libxcb-shm0-dev \ |
+ libxcomposite1 \ |
+ libxcomposite-dev \ |
+ libxcursor1 \ |
+ libxcursor-dev \ |
+ libxdamage1 \ |
+ libxdamage-dev \ |
libxdmcp6 \ |
libxdmcp-dev \ |
+ libxfixes3 \ |
+ libxfixes-dev \ |
+ libxi6 \ |
+ libxi-dev \ |
+ libxinerama1 \ |
+ libxinerama-dev \ |
+ libxrandr2 \ |
+ libxrandr-dev \ |
+ libxrender1 \ |
+ libxrender-dev \ |
libxss1 \ |
- libxss-dev" |
+ libxss-dev \ |
+ libxt6 \ |
+ libxt-dev \ |
+ libxtst6 \ |
+ libxtst-dev \ |
+ python2.6 \ |
+ python2.6-dev \ |
+ x11proto-core-dev \ |
+ x11proto-composite-dev \ |
+ x11proto-damage-dev \ |
+ x11proto-fixes-dev \ |
+ x11proto-input-dev \ |
+ x11proto-kb-dev \ |
+ x11proto-randr-dev \ |
+ x11proto-record-dev \ |
+ x11proto-render-dev \ |
+ x11proto-scrnsaver-dev \ |
+ x11proto-xext-dev" |
GeneratePackageLists() { |
- Banner "generating package lists for mips32" |
- echo -n > ${TMP_PACKAGELIST_MIPS32} |
+ local sdk_target=$1 |
+ local packages= |
+ local TMP_PACKAGELIST= |
+ Banner "generating ${sdk_target} package lists for mips32" |
DownloadOrCopy ${MIPS32_PACKAGES} |
bzcat ${TMP}/Packages.bz2\ |
| egrep '^(Package:|Filename:)' > ${TMP}/Packages_mipsel |
- for pkg in ${BASE_PACKAGES} ; do |
+ |
+ if [ ${sdk_target} == "nacl_sdk" ] ; then |
+ echo -n > ${TMP_BASE_PACKAGELIST_MIPS32} |
+ TMP_PACKAGELIST=${TMP_BASE_PACKAGELIST_MIPS32} |
+ packages=${BASE_PACKAGES} |
+ elif [ ${sdk_target} == "chrome_sdk" ] ; then |
+ echo -n > ${TMP_EXTRA_PACKAGELIST_MIPS32} |
+ TMP_PACKAGELIST=${TMP_EXTRA_PACKAGELIST_MIPS32} |
+ packages=${BASE_PACKAGES}${EXTRA_PACKAGES} |
+ else |
+ Banner "ERROR: Packages for \"${sdk_taget}\" not defined." |
+ exit -1 |
+ fi |
+ |
+ for pkg in ${packages} ; do |
grep -A 1 "${pkg}\$" ${TMP}/Packages_mipsel\ |
- | egrep -o "pool/.*" >> ${TMP_PACKAGELIST_MIPS32} |
+ | egrep -o "pool/.*" >> ${TMP_PACKAGELIST} |
done |
} |
InstallMissingLibraries() { |
- readonly DEP_FILES_NEEDED_MIPS32=$(cat ${TMP_PACKAGELIST_MIPS32}) |
+ local sdk_target=$1 |
+ local DEP_FILES_NEEDED_MIPS32= |
+ |
+ if [ ${sdk_target} == "nacl_sdk" ] ; then |
+ DEP_FILES_NEEDED_MIPS32=$(cat ${TMP_BASE_PACKAGELIST_MIPS32}) |
+ elif [ ${sdk_target} == "chrome_sdk" ] ; then |
+ DEP_FILES_NEEDED_MIPS32=$(cat ${TMP_EXTRA_PACKAGELIST_MIPS32}) |
+ else |
+ Banner "ERROR: Target \"${sdk_taget}\" not defined." |
+ exit -1 |
+ fi |
+ |
for file in ${DEP_FILES_NEEDED_MIPS32} ; do |
local package="${TMP}/${file##*/}" |
Banner "installing ${file}" |
@@ -552,10 +699,24 @@ FixLibs() { |
rm -f libresolv.so |
ln -s ../../lib/libresolv.so.2 libresolv.so |
+ rm -f libglib-2.0.so |
+ ln -s ../../lib/libglib-2.0.so.0 libglib-2.0.so |
+ |
+ rm -f libudev.so |
+ ln -s ../../lib/libudev.so.0 libudev.so |
+ |
+ rm -f libcom_err.so |
+ ln -s ../../lib/libcom_err.so.2 libcom_err.so |
+ |
+ rm -f libXdmcp.so |
+ ln -s ../../lib/libXdmcp.so.6 libXdmcp.so |
+ |
+ rm -f libstdc++.so* |
ln -s ../../../mipsel-linux-gnu/lib/libstdc++.so.6.0.17 . |
ln -s libstdc++.so.6.0.17 libstdc++.so.6 |
ln -s libstdc++.so.6.0.17 libstdc++.so |
+ rm -f libgcc_s.so* |
ln -s ../../../mipsel-linux-gnu/lib/libgcc_s.so.1 . |
ln -s libgcc_s.so.1 libgcc_s.so |
} |
@@ -619,17 +780,21 @@ if [[ $# -eq 0 ]] ; then |
Usage |
exit -1 |
-elif [[ $1 == "trusted_sdk" ]]; then |
+elif [[ $1 == "nacl_sdk" || $1 == "chrome_sdk" ]] ; then |
mkdir -p ${TMP} |
SanityCheck |
ClearInstallDir |
ClearBuildDir |
DownloadOrCopyAndInstallToolchain |
- GeneratePackageLists |
- InstallMissingLibraries |
- InstallTrustedLinkerScript |
- BuildAndInstallQemu |
- CreateTarBall $1 |
+ GeneratePackageLists $1 |
+ InstallMissingLibraries $1 |
+ if [[ $1 == "nacl_sdk" ]] ; then |
+ InstallTrustedLinkerScript |
+ BuildAndInstallQemu |
+ CreateTarBall $1 |
+ else |
+ CreateTarBall ${CROSS_TARBALL} |
+ fi |
else |
Usage |