From 7a508aed2ac3fe64b307cf05df9989e41e7f6630 Mon Sep 17 00:00:00 2001 From: Raphael Date: Tue, 1 Feb 2011 12:48:48 -0800 Subject: [PATCH] SDK: fix win-sdk build errors, make future errors fatal. Firs this fixes a cp/rm errors that were logged when building the Windows SDK. There errors happens because the secondary sdk/tools/patch_windows_sdk.sh was run twice. Next the shell script is changed to make any error fatal and actually break the build, like it should. In the makefile, merge Ying's fix to correctly pass showcommands. Change-Id: Iee75e42b0b0bbba3c26858c82c933660dc6d74ae --- build/tools/patch_windows_sdk.sh | 28 ++++++++++++++-------------- build/tools/windows_sdk.mk | 2 +- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/build/tools/patch_windows_sdk.sh b/build/tools/patch_windows_sdk.sh index b849c8992..17424b74f 100755 --- a/build/tools/patch_windows_sdk.sh +++ b/build/tools/patch_windows_sdk.sh @@ -5,7 +5,8 @@ # - development/tools/build/path_windows_sdk.sh to process the # platform-dependent folders and files. # - sdk/build/patch_windows_sdk.sh to process folder and files which -# depend on the sdk.git repo. This file will be invoked by this one. +# depend on the sdk.git repo. This file is invoked by the makefile +# at development/tools/build/windows_sdk.mk. # # Input arguments: # -q = Optional arg to make this silent. Must be given first. @@ -16,13 +17,17 @@ # $3 = An optional replacement for $TOPDIR (inherited from the Android # build system), which is the top directory where Android is located. +set -e # any error stops the build + # Verbose by default. Use -q to make more silent. -V="-v" +V="" Q="" if [[ "$1" == "-q" ]]; then Q="$1" - V="" shift +else + echo "Win SDK: $0 $*" + set -x # show bash commands; no need for V=-v fi TEMP_SDK_DIR=$1 @@ -30,17 +35,16 @@ WIN_OUT_DIR=$2 TOPDIR=${TOPDIR:-$3} # The unix2dos is provided by the APT package "tofrodos". However -# as of ubuntu lucid, the package renamed the command to "todos". -UNIX2DOS=`which unix2dos` +# as for ubuntu lucid, the package renamed the command to "todos". +UNIX2DOS=$(which unix2dos || true) if [[ ! -x $UNIX2DOS ]]; then - UNIX2DOS=`which todos` + UNIX2DOS=$(which todos || true) fi PLATFORMS=( $TEMP_SDK_DIR/platforms/* ) if [[ ${#PLATFORMS[@]} != 1 ]]; then echo "Error: Too many platforms found in $TEMP_SDK_DIR" - echo "Only one was expected." - echo "Instead, found: ${PLATFORMS[@]}" + echo "Expected one. Instead, found: ${PLATFORMS[@]}" exit 1 fi @@ -54,7 +58,6 @@ TOOLS=$TEMP_SDK_DIR/tools PLATFORM_TOOLS=$TEMP_SDK_DIR/platform-tools LIB=$TEMP_SDK_DIR/tools/lib rm $V $TOOLS/{dmtracedump,etc1tool,hprof-conv,sqlite3,zipalign} -rm $V $TOOLS/proguard/bin/*.sh rm $V $LIB/*/swt.jar rm $V $PLATFORM_TOOLS/{adb,aapt,aidl,dx,dexdump,llvm-rs-cc} @@ -107,11 +110,8 @@ if [[ -x $UNIX2DOS ]]; then find $TEMP_SDK_DIR -maxdepth 3 -name "*.bat" -type f -print0 | xargs -0 $UNIX2DOS fi -# Execute the packaging script in the sdk directory -${TOPDIR}sdk/build/patch_windows_sdk.sh $Q ${TEMP_SDK_DIR} ${WIN_OUT_DIR} ${TOPDIR} - -# Just to make it easier on the build servers, we want fastboot and adb (and its DLLs) -# next to the new SDK, so up one dir. +# Just to make it easier on the build servers, we want fastboot and adb +# (and its DLLs) next to the new SDK. for i in fastboot.exe adb.exe AdbWinApi.dll AdbWinUsbApi.dll; do cp -f $V $WIN_OUT_DIR/host/windows-x86/bin/$i $TEMP_SDK_DIR/../$i done diff --git a/build/tools/windows_sdk.mk b/build/tools/windows_sdk.mk index 4b734a8a7..91033a63f 100644 --- a/build/tools/windows_sdk.mk +++ b/build/tools/windows_sdk.mk @@ -76,7 +76,7 @@ win_sdk: $(WIN_SDK_ZIP) winsdk-tools: $(WIN_BUILD_PREREQ) $(call winsdk-banner,Build Windows Tools) - $(hide) USE_MINGW=1 $(MAKE) PRODUCT-$(TARGET_PRODUCT)-$(strip $(WIN_TARGETS)) + $(hide) USE_MINGW=1 $(MAKE) PRODUCT-$(TARGET_PRODUCT)-$(strip $(WIN_TARGETS)) $(if $(hide),,showcommands) $(WIN_SDK_ZIP): winsdk-tools sdk $(call winsdk-banner,Build $(WIN_SDK_NAME))