Home | History | Annotate | Download | only in tools
      1 #!/bin/sh
      2 #
      3 # Copyright (C) 2011 The Android Open Source Project
      4 #
      5 # Licensed under the Apache License, Version 2.0 (the "License");
      6 # you may not use this file except in compliance with the License.
      7 # You may obtain a copy of the License at
      8 #
      9 #      http://www.apache.org/licenses/LICENSE-2.0
     10 #
     11 # Unless required by applicable law or agreed to in writing, software
     12 # distributed under the License is distributed on an "AS IS" BASIS,
     13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14 # See the License for the specific language governing permissions and
     15 # limitations under the License.
     16 #
     17 # Build the host version of the sed executable and place it
     18 # at the right location
     19 
     20 PROGDIR=$(dirname $0)
     21 . $PROGDIR/prebuilt-common.sh
     22 
     23 PROGRAM_PARAMETERS=""
     24 PROGRAM_DESCRIPTION=\
     25 "Rebuild the host sed tool used by the NDK."
     26 
     27 register_try64_option
     28 register_canadian_option
     29 register_jobs_option
     30 
     31 NDK_DIR=$ANDROID_NDK_ROOT
     32 register_var_option "--ndk-dir=<path>" NDK_DIR "Specify NDK install directory"
     33 
     34 PACKAGE_DIR=
     35 register_var_option "--package-dir=<path>" PACKAGE_DIR "Archive to package directory"
     36 
     37 GNUMAKE=make
     38 register_var_option "--make=<path>" GNUMAKE "Specify GNU Make program"
     39 
     40 extract_parameters "$@"
     41 
     42 SUBDIR=$(get_prebuilt_host_exec sed)
     43 OUT=$NDK_DIR/$(get_prebuilt_host_exec sed)
     44 
     45 SED_VERSION=4.2.1
     46 SED_SRCDIR=$ANDROID_NDK_ROOT/sources/host-tools/sed-$SED_VERSION
     47 if [ ! -d "$SED_SRCDIR" ]; then
     48     echo "ERROR: Can't find sed-$SED_VERSION source tree: $SED_SRCDIR"
     49     exit 1
     50 fi
     51 
     52 log "Using sources from: $SED_SRCDIR"
     53 
     54 prepare_abi_configure_build
     55 prepare_host_build
     56 
     57 BUILD_DIR=$NDK_TMPDIR
     58 
     59 log "Configuring the build"
     60 mkdir -p $BUILD_DIR && rm -rf $BUILD_DIR/*
     61 prepare_canadian_toolchain $BUILD_DIR
     62 cd $BUILD_DIR &&
     63 CFLAGS=$HOST_CFLAGS" -O2 -s" &&
     64 export CC CFLAGS &&
     65 run $SED_SRCDIR/configure \
     66     --disable-nls \
     67     --disable-rpath \
     68     --disable-i18n \
     69     --disable-acl \
     70     --host=$ABI_CONFIGURE_HOST \
     71     --build=$ABI_CONFIGURE_BUILD
     72 fail_panic "Failed to configure the sed-$SED_VERSION build!"
     73 
     74 log "Building sed (lib/ and sed/ only)"
     75 run $GNUMAKE -j $NUM_JOBS -C lib
     76 run $GNUMAKE -j $NUM_JOBS -C sed
     77 fail_panic "Failed to build the sed-$SED_VERSION executable!"
     78 
     79 log "Copying executable to prebuilt location"
     80 run mkdir -p $(dirname "$OUT") && cp sed/$(get_host_exec_name sed) $OUT
     81 fail_panic "Could not copy executable to: $OUT"
     82 
     83 if [ "$PACKAGE_DIR" ]; then
     84     ARCHIVE=ndk-sed-$HOST_TAG.tar.bz2
     85     dump "Packaging: $ARCHIVE"
     86     mkdir -p "$PACKAGE_DIR" &&
     87     pack_archive "$PACKAGE_DIR/$ARCHIVE" "$NDK_DIR" "$SUBDIR"
     88     fail_panic "Could not package archive: $PACKAGE_DIR/$ARCHIVE"
     89 fi
     90 
     91 log "Cleaning up"
     92 rm -rf $BUILD_DIR
     93 
     94 log "Done."
     95 
     96