1*6236dae4SAndroid Build Coastguard Worker#!/bin/bash 2*6236dae4SAndroid Build Coastguard Worker 3*6236dae4SAndroid Build Coastguard Workerset -e 4*6236dae4SAndroid Build Coastguard Worker 5*6236dae4SAndroid Build Coastguard Workerif [[ "${TARGET_PRODUCT}" != "aosp_arm" ]]; then 6*6236dae4SAndroid Build Coastguard Worker # Some of the include paths below assume that this is an arm 32bit configure 7*6236dae4SAndroid Build Coastguard Worker # run. 8*6236dae4SAndroid Build Coastguard Worker echo "Run 'lunch aosp_arm-trunk_staging-eng'." >&2 9*6236dae4SAndroid Build Coastguard Worker exit 1 10*6236dae4SAndroid Build Coastguard Workerfi 11*6236dae4SAndroid Build Coastguard Worker 12*6236dae4SAndroid Build Coastguard Workerm ndk 13*6236dae4SAndroid Build Coastguard Worker 14*6236dae4SAndroid Build Coastguard WorkerT="${ANDROID_BUILD_TOP}" 15*6236dae4SAndroid Build Coastguard Workercd $(dirname "$0") 16*6236dae4SAndroid Build Coastguard Worker 17*6236dae4SAndroid Build Coastguard Worker# Build all the dependencies we'll need, so we can find them under 18*6236dae4SAndroid Build Coastguard Worker# /system/lib in the out directory. 19*6236dae4SAndroid Build Coastguard Workermm 20*6236dae4SAndroid Build Coastguard Worker 21*6236dae4SAndroid Build Coastguard WorkerHOST="arm-linux-androideabi" 22*6236dae4SAndroid Build Coastguard WorkerCLANG_VERSION="$(exec ${T}/build/soong/scripts/get_clang_version.py)" 23*6236dae4SAndroid Build Coastguard Workerexport CC="${T}/prebuilts/clang/host/linux-x86/${CLANG_VERSION}/bin/clang" 24*6236dae4SAndroid Build Coastguard Workerexport LD="${T}/prebuilts/clang/host/linux-x86/${CLANG_VERSION}/bin/lld" 25*6236dae4SAndroid Build Coastguard Worker 26*6236dae4SAndroid Build Coastguard WorkerCFLAGS=( 27*6236dae4SAndroid Build Coastguard Worker # We don't have an NDK sysroot prebuilt in AOSP, so we'll have use 28*6236dae4SAndroid Build Coastguard Worker # soong's. 29*6236dae4SAndroid Build Coastguard Worker "--sysroot ${T}/out/soong/ndk/sysroot/" 30*6236dae4SAndroid Build Coastguard Worker # We also need zlib. (We don't have to do anything for boringssl here, 31*6236dae4SAndroid Build Coastguard Worker # because we provide that path directly on the configure command line.) 32*6236dae4SAndroid Build Coastguard Worker "-I${T}/external/zlib/" 33*6236dae4SAndroid Build Coastguard Worker # We don't have target-specific clang binaries like the NDK, so provide 34*6236dae4SAndroid Build Coastguard Worker # a target. The "34" here is arbitrary. 35*6236dae4SAndroid Build Coastguard Worker "--target=armv7a-linux-androideabi34" 36*6236dae4SAndroid Build Coastguard Worker) 37*6236dae4SAndroid Build Coastguard WorkerCFLAGS="${CFLAGS[@]}" 38*6236dae4SAndroid Build Coastguard Worker 39*6236dae4SAndroid Build Coastguard WorkerLDFLAGS=( 40*6236dae4SAndroid Build Coastguard Worker # We need the device zlib and openssl/boringssl libraries, so tell ld 41*6236dae4SAndroid Build Coastguard Worker # where they are. 42*6236dae4SAndroid Build Coastguard Worker "-L${ANDROID_PRODUCT_OUT}/system/lib/" 43*6236dae4SAndroid Build Coastguard Worker) 44*6236dae4SAndroid Build Coastguard WorkerLDFLAGS="${LDFLAGS[@]}" 45*6236dae4SAndroid Build Coastguard Worker 46*6236dae4SAndroid Build Coastguard WorkerCONFIGURE_ARGS=( 47*6236dae4SAndroid Build Coastguard Worker --host="${HOST}" 48*6236dae4SAndroid Build Coastguard Worker CFLAGS="${CFLAGS}" 49*6236dae4SAndroid Build Coastguard Worker CPPFLAGS="${CFLAGS}" 50*6236dae4SAndroid Build Coastguard Worker LDFLAGS="${LDFLAGS}" 51*6236dae4SAndroid Build Coastguard Worker 52*6236dae4SAndroid Build Coastguard Worker # Disable NTLM delegation to winbind's ntlm_auth. 53*6236dae4SAndroid Build Coastguard Worker --disable-ntlm-wb 54*6236dae4SAndroid Build Coastguard Worker 55*6236dae4SAndroid Build Coastguard Worker ### Disable many protocols unused in Android systems: 56*6236dae4SAndroid Build Coastguard Worker --disable-telnet 57*6236dae4SAndroid Build Coastguard Worker --disable-tftp 58*6236dae4SAndroid Build Coastguard Worker --disable-smb 59*6236dae4SAndroid Build Coastguard Worker --disable-gopher 60*6236dae4SAndroid Build Coastguard Worker 61*6236dae4SAndroid Build Coastguard Worker # Disable FTP and FTPS support. 62*6236dae4SAndroid Build Coastguard Worker --disable-ftp 63*6236dae4SAndroid Build Coastguard Worker 64*6236dae4SAndroid Build Coastguard Worker # Disable LDAP and LDAPS support. 65*6236dae4SAndroid Build Coastguard Worker --disable-ldap 66*6236dae4SAndroid Build Coastguard Worker --disable-ldaps 67*6236dae4SAndroid Build Coastguard Worker 68*6236dae4SAndroid Build Coastguard Worker # Disable mail protocols (IMAP, POP3). 69*6236dae4SAndroid Build Coastguard Worker --disable-pop3 70*6236dae4SAndroid Build Coastguard Worker --disable-imap 71*6236dae4SAndroid Build Coastguard Worker --disable-smtp 72*6236dae4SAndroid Build Coastguard Worker 73*6236dae4SAndroid Build Coastguard Worker # Disable RTSP support (RFC 2326 / 7826). 74*6236dae4SAndroid Build Coastguard Worker --disable-rtsp 75*6236dae4SAndroid Build Coastguard Worker 76*6236dae4SAndroid Build Coastguard Worker # Disable DICT support (RFC 2229). 77*6236dae4SAndroid Build Coastguard Worker --disable-dict 78*6236dae4SAndroid Build Coastguard Worker 79*6236dae4SAndroid Build Coastguard Worker ### Enable HTTP and FILE explicitly. These are enabled by default but 80*6236dae4SAndroid Build Coastguard Worker # listed here as documentation. 81*6236dae4SAndroid Build Coastguard Worker --enable-http 82*6236dae4SAndroid Build Coastguard Worker --enable-file 83*6236dae4SAndroid Build Coastguard Worker --enable-proxy 84*6236dae4SAndroid Build Coastguard Worker 85*6236dae4SAndroid Build Coastguard Worker # Enabled IPv6. 86*6236dae4SAndroid Build Coastguard Worker --enable-ipv6 87*6236dae4SAndroid Build Coastguard Worker 88*6236dae4SAndroid Build Coastguard Worker --with-ssl="${T}/external/boringssl" 89*6236dae4SAndroid Build Coastguard Worker --with-zlib 90*6236dae4SAndroid Build Coastguard Worker --with-ca-path="/system/etc/security/cacerts" 91*6236dae4SAndroid Build Coastguard Worker 92*6236dae4SAndroid Build Coastguard Worker --without-libpsl 93*6236dae4SAndroid Build Coastguard Worker 94*6236dae4SAndroid Build Coastguard Worker #While bionic has this, the host libcs don't. 95*6236dae4SAndroid Build Coastguard Worker ac_cv_header_netinet_in6_h=no 96*6236dae4SAndroid Build Coastguard Worker 97*6236dae4SAndroid Build Coastguard Worker ac_cv_func_SSL_set_quic_use_legacy_codepoint=no 98*6236dae4SAndroid Build Coastguard Worker) 99*6236dae4SAndroid Build Coastguard Worker 100*6236dae4SAndroid Build Coastguard Worker# Show the commands on the terminal. 101*6236dae4SAndroid Build Coastguard Workerset -x 102*6236dae4SAndroid Build Coastguard Worker 103*6236dae4SAndroid Build Coastguard Worker./buildconf 104*6236dae4SAndroid Build Coastguard Worker./configure "${CONFIGURE_ARGS[@]}" 105*6236dae4SAndroid Build Coastguard Worker 106*6236dae4SAndroid Build Coastguard Worker# Apply local changes to the default configure output. 107*6236dae4SAndroid Build Coastguard Workerpatch -p1 --no-backup-if-mismatch < local-configure.patch 108