• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/bin/bash
2
3set -e
4
5if [[ "${TARGET_PRODUCT}" != "aosp_arm" ]]; then
6  # Some of the include paths below assume that this is an arm 32bit configure
7  # run.
8  echo "Run 'lunch aosp_arm-eng' and build the current version first." >&2
9  exit 1
10fi
11
12cd $(dirname "$0")
13
14HOST="arm-linux-androideabi"
15T="${ANDROID_BUILD_TOP}"
16export CC="${T}/prebuilts/clang/host/linux-x86/clang-r399163/bin/clang"
17export LD="${T}/prebuilts/clang/host/linux-x86/clang-r399163/bin/lld"
18
19CFLAGS=(
20  "-isystem ${T}/external/libcxx/include"
21  "-isystem ${T}/bionic/libc/include/"
22  "-isystem ${T}/bionic/libc/arch-arm/include"
23  "-isystem ${T}/bionic/libc/kernel/uapi/"
24  "-isystem ${T}/bionic/libc/kernel/android/uapi/"
25  "-isystem ${T}/bionic/libm/include"
26  "-fno-exceptions"
27  "-ffunction-sections"
28  "-fdata-sections"
29  "-fstack-protector"
30  "-fno-short-enums"
31  "-no-canonical-prefixes"
32  "-fmessage-length=0"
33  "-fomit-frame-pointer"
34  "-fPIC"
35  "-fno-strict-aliasing"
36  "-nostdlib"
37)
38CFLAGS="${CFLAGS[@]}"
39
40CONFIGURE_ARGS=(
41  --host="${HOST}"
42  CFLAGS="${CFLAGS}"
43  LIBS="-lc"
44  CPPFLAGS="${CFLAGS} -I${T}/external/zlib/src"
45  LDFLAGS="-L${ANDROID_PRODUCT_OUT}/system/lib/"
46
47  # Disable NTLM delegation to winbind's ntlm_auth.
48  --disable-ntlm-wb
49
50  ### Disable many protocols unused in Android systems:
51  --disable-telnet
52  --disable-tftp
53  --disable-smb
54  --disable-gopher
55
56  # Disable FTP and FTPS support.
57  --disable-ftp
58
59  # Disable LDAP and LDAPS support.
60  --disable-ldap
61  --disable-ldaps
62
63  # Disable mail protocols (IMAP, POP3).
64  --disable-pop3
65  --disable-imap
66  --disable-smtp
67
68  # Disable RTSP support (RFC 2326 / 7826).
69  --disable-rtsp
70
71  # Disable DICT support (RFC 2229).
72  --disable-dict
73
74
75  ### Enable HTTP and FILE explicitly. These are enabled by default but
76  # listed here as documentation.
77  --enable-http
78  --enable-file
79  --enable-proxy
80
81  # Enabled IPv6.
82  --enable-ipv6
83
84  --with-ssl="${T}/external/boringssl"
85  --with-zlib
86  --with-ca-path="/system/etc/security/cacerts"
87)
88
89# Show the commands on the terminal.
90set -x
91
92./buildconf
93./configure "${CONFIGURE_ARGS[@]}"
94
95# Apply local changes to the default configure output.
96patch -p1 --no-backup-if-mismatch < local-configure.patch
97