#!/bin/bash set -e if [[ "${TARGET_PRODUCT}" != "aosp_arm" ]]; then # Some of the include paths below assume that this is an arm 32bit configure # run. echo "Run 'lunch aosp_arm-eng' and build the current version first." >&2 exit 1 fi T="${ANDROID_BUILD_TOP}" cd $(dirname "$0") # Build all the dependencies we'll need, so we can find them under # /system/lib in the out directory. source ${T}/build/envsetup.sh mm HOST="arm-linux-androideabi" CLANG_VERSION="$(exec ${T}/build/soong/scripts/get_clang_version.py)" export CC="${T}/prebuilts/clang/host/linux-x86/${CLANG_VERSION}/bin/clang" export LD="${T}/prebuilts/clang/host/linux-x86/${CLANG_VERSION}/bin/lld" CFLAGS=( # We don't have an NDK sysroot prebuilt in AOSP, so we'll have use # soong's. "--sysroot ${T}/out/soong/ndk/sysroot/" # We also need zlib. (We don't have to do anything for boringssl here, # because we provide that path directly on the configure command line.) "-I${T}/external/zlib/" # We don't have target-specific clang binaries like the NDK, so provide # a target. The "34" here is arbitrary. "--target=armv7a-linux-androideabi34" ) CFLAGS="${CFLAGS[@]}" LDFLAGS=( # We need the device zlib and openssl/boringssl libraries, so tell ld # where they are. "-L${ANDROID_PRODUCT_OUT}/system/lib/" ) LDFLAGS="${LDFLAGS[@]}" CONFIGURE_ARGS=( --host="${HOST}" CFLAGS="${CFLAGS}" CPPFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" # Disable NTLM delegation to winbind's ntlm_auth. --disable-ntlm-wb ### Disable many protocols unused in Android systems: --disable-telnet --disable-tftp --disable-smb --disable-gopher # Disable FTP and FTPS support. --disable-ftp # Disable LDAP and LDAPS support. --disable-ldap --disable-ldaps # Disable mail protocols (IMAP, POP3). --disable-pop3 --disable-imap --disable-smtp # Disable RTSP support (RFC 2326 / 7826). --disable-rtsp # Disable DICT support (RFC 2229). --disable-dict ### Enable HTTP and FILE explicitly. These are enabled by default but # listed here as documentation. --enable-http --enable-file --enable-proxy # Enabled IPv6. --enable-ipv6 --with-ssl="${T}/external/boringssl" --with-zlib --with-ca-path="/system/etc/security/cacerts" ) # Show the commands on the terminal. set -x ./buildconf ./configure "${CONFIGURE_ARGS[@]}" # Apply local changes to the default configure output. patch -p1 --no-backup-if-mismatch < local-configure.patch