Chromium Code Reviews| 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 |