1 # NOTE: Needs to be built with clang.
2 TERMUX_PKG_HOMEPAGE
=http
://elinux.org
/Android_aapt
3 TERMUX_PKG_DESCRIPTION
="Android Asset Packaging Tool"
4 TERMUX_PKG_VERSION
=7.0.0
5 TERMUX_PKG_BUILD_IN_SRC
=yes
6 TERMUX_PKG_DEPENDS
="libexpat, libpng"
8 termux_step_make_install
() {
9 local _TAGNAME
=${TERMUX_PKG_VERSION}_r1
11 SYSTEM_CORE_INCLUDE_TARFILE
=$TERMUX_PKG_CACHEDIR/system_core_include_
${_TAGNAME}.
tar.gz
12 test ! -f
$SYSTEM_CORE_INCLUDE_TARFILE && termux_download \
13 "https://android.googlesource.com/platform/system/core/+archive/android-$_TAGNAME/include.tar.gz" \
14 $SYSTEM_CORE_INCLUDE_TARFILE
16 ANDROIDFW_INCLUDE_TARFILE
=$TERMUX_PKG_CACHEDIR/androidfw_include_
${_TAGNAME}.
tar.gz
17 test ! -f
$ANDROIDFW_INCLUDE_TARFILE && curl
-o
$ANDROIDFW_INCLUDE_TARFILE \
18 "https://android.googlesource.com/platform/frameworks/base/+archive/android-$_TAGNAME/include/androidfw.tar.gz"
20 ANDROID_BASE_INCLUDE_TARFILE
=$TERMUX_PKG_CACHEDIR/android_base_include_
${_TAGNAME}.
tar.gz
21 test ! -f
$ANDROID_BASE_INCLUDE_TARFILE && termux_download \
22 "https://android.googlesource.com/platform/system/core/+archive/android-$_TAGNAME/base/include/android-base.tar.gz" \
23 $ANDROID_BASE_INCLUDE_TARFILE
25 local AOSP_INCLUDE_DIR
=$TERMUX_PREFIX/include
/aosp
26 mkdir
-p
$AOSP_INCLUDE_DIR
29 tar xf
$SYSTEM_CORE_INCLUDE_TARFILE
32 tar xf
$ANDROIDFW_INCLUDE_TARFILE
36 tar xf
$ANDROID_BASE_INCLUDE_TARFILE
38 mkdir
-p
$TERMUX_PKG_SRCDIR/{libcutils
,androidfw
}
39 cd $TERMUX_PKG_SRCDIR/libcutils
40 LIBCUTILS_TARFILE
=$TERMUX_PKG_CACHEDIR/libcutils_
${_TAGNAME}.
tar.gz
41 test ! -f
$LIBCUTILS_TARFILE && curl
-o
$LIBCUTILS_TARFILE "https://android.googlesource.com/platform/system/core/+archive/android-$_TAGNAME/libcutils.tar.gz"
42 tar xf
$LIBCUTILS_TARFILE
43 $CXX -isystem
$AOSP_INCLUDE_DIR -c
-o sockets.o sockets.cpp
44 $CXX -isystem
$AOSP_INCLUDE_DIR -c
-o sockets_unix.o sockets_unix.cpp
45 sed -i
's%include <sys/_system_properties.h>%include <sys/system_properties.h>%' properties.c
47 libcutils_common_sources
="\
64 libcutils_nonwindows_sources
="\
67 socket_inaddr_any_server_unix.c \
68 socket_local_client_unix.c \
69 socket_local_server_unix.c \
70 socket_loopback_client_unix.c \
71 socket_loopback_server_unix.c \
72 socket_network_client_unix.c \
78 -isystem
$AOSP_INCLUDE_DIR \
79 $libcutils_common_sources \
80 $libcutils_nonwindows_sources \
84 -o
$TERMUX_PREFIX/lib
/libcutils.so
86 ANDROIDFW_TARFILE
=$TERMUX_PKG_CACHEDIR/androidfw_
${_TAGNAME}.
tar.gz
87 test ! -f
$ANDROIDFW_TARFILE && termux_download \
88 https
://android.googlesource.com
/platform
/frameworks
/base
/+archive
/android-
$_TAGNAME/libs
/androidfw.
tar.gz \
90 mkdir
-p
$TERMUX_PKG_SRCDIR/androidfw
91 cd $TERMUX_PKG_SRCDIR/androidfw
92 tar xf
$ANDROIDFW_TARFILE
101 StreamingZipInflater.cpp \
105 sed -i
's%#include <binder/TextOutput.h>%%' ResourceTypes.cpp
106 $CXX $CXXFLAGS $LDFLAGS -isystem
$AOSP_INCLUDE_DIR \
109 -DACONFIGURATION_SCREENROUND_ANY
=0x00 \
110 -DACONFIGURATION_SCREENROUND_NO
=0x1 \
111 -DACONFIGURATION_SCREENROUND_YES
=0x2 \
112 -DACONFIGURATION_SCREEN_ROUND
=0x8000 \
115 -o
$TERMUX_PREFIX/lib
/libandroidfw.so
120 local LIBUTILS_TARFILE
=$TERMUX_PKG_CACHEDIR/libutils_
${_TAGNAME}.
tar.gz
121 test ! -f
$LIBUTILS_TARFILE && curl
-o
$LIBUTILS_TARFILE "https://android.googlesource.com/platform/system/core/+archive/android-$_TAGNAME/libutils.tar.gz"
123 local SAFE_IOP_TARFILE
=$TERMUX_PKG_CACHEDIR/safe_iop.
tar.gz
124 test ! -f
$SAFE_IOP_TARFILE && termux_download \
125 https
://android.googlesource.com
/platform
/external
/safe-iop
/+archive
/cd76f998688d145235de78ecd5b340d0eac9239d.
tar.gz \
127 local SAFE_IOP_DIR
=$TERMUX_PKG_TMPDIR/safe-iop
128 mkdir
-p
$SAFE_IOP_DIR
130 tar xf
$SAFE_IOP_TARFILE
131 mv src
/safe_iop.c src
/safe_iop.cpp
133 mkdir
$TERMUX_PKG_SRCDIR/libutils
134 cd $TERMUX_PKG_SRCDIR/libutils
135 tar xf
$LIBUTILS_TARFILE
141 LinearTransform.cpp \
159 $CXX $CXXFLAGS $CPPFLAGS $LDFLAGS \
162 -isystem
$TERMUX_PREFIX/include
/aosp \
163 -isystem
$SAFE_IOP_DIR/include \
164 $SAFE_IOP_DIR/src
/safe_iop.cpp \
168 -o
$TERMUX_PREFIX/lib
/libutils.so
173 local LIBBASE_TARFILE
=$TERMUX_PKG_CACHEDIR/libbase_
${_TAGNAME}.
tar.gz
174 test ! -f
$LIBBASE_TARFILE && termux_download \
175 "https://android.googlesource.com/platform/system/core/+archive/android-${_TAGNAME}/base.tar.gz" \
177 mkdir
-p
$TERMUX_PKG_SRCDIR/libbase
178 cd $TERMUX_PKG_SRCDIR/libbase
179 tar xf
$LIBBASE_TARFILE
180 rm -Rf
$TERMUX_PREFIX/include
/aosp
/android-base
181 mv include
/android-base
$TERMUX_PREFIX/include
/aosp
182 patch -p1
< $TERMUX_PKG_BUILDER_DIR/libbase-patch.txt
186 parsenetaddress.cpp \
190 libbase_linux_src_files
="\
192 # __USE_BSD for DEFFILEMODE to be defined by <sys/stat.h>.
193 $CXX $CPPFLAGS -std
=c
++11 \
195 -isystem
$AOSP_INCLUDE_DIR \
196 $libbase_src_files $libbase_linux_src_files \
198 -o
$TERMUX_PREFIX/lib
/libbase.so
201 # Build libziparchive:
202 LIBZIPARCHIVE_TARFILE
=$TERMUX_PKG_CACHEDIR/libziparchive_
${_TAGNAME}.
tar.gz
203 test ! -f
$LIBZIPARCHIVE_TARFILE && termux_download \
204 "https://android.googlesource.com/platform/system/core/+archive/android-$_TAGNAME/libziparchive.tar.gz" \
205 $LIBZIPARCHIVE_TARFILE
206 mkdir
-p
$TERMUX_PKG_SRCDIR/libziparchive
207 cd $TERMUX_PKG_SRCDIR/libziparchive
208 tar xf
$LIBZIPARCHIVE_TARFILE
209 libziparchive_source_files
="\
211 zip_archive_stream_entry.cc \
213 sed -i
's%next_in = reinterpret_cast<const uint8_t\*>(data)%next_in = const_cast<uint8_t\*>(reinterpret_cast<const uint8_t\*>(data))%' zip_writer.cc
214 $CXX $CXXFLAGS $LDFLAGS -std
=c
++11 \
216 -isystem
$AOSP_INCLUDE_DIR \
217 $libziparchive_source_files \
220 -o
$TERMUX_PREFIX/lib
/libziparchive.so
225 AAPT_TARFILE
=$TERMUX_PKG_CACHEDIR/aapt_
${_TAGNAME}.
tar.gz
226 test ! -f
$AAPT_TARFILE && curl
-o
$AAPT_TARFILE "https://android.googlesource.com/platform/frameworks/base/+archive/android-$_TAGNAME/tools/aapt.tar.gz"
227 mkdir
$TERMUX_PKG_SRCDIR/aapt
228 cd $TERMUX_PKG_SRCDIR/aapt
230 $CXX $CXXFLAGS $CPPFLAGS $LDFLAGS \
234 -DHAVE_ENDIAN_H
=1 -DHAVE_POSIX_FILEMAP
=1 -DHAVE_OFF64_T
=1 -DHAVE_SYS_SOCKET_H
=1 -DHAVE_PTHREADS
=1 \
235 -DACONFIGURATION_SCREENROUND_ANY
=0x00 \
236 -DACONFIGURATION_SCREENROUND_NO
=0x1 \
237 -DACONFIGURATION_SCREENROUND_YES
=0x2 \
238 -DACONFIGURATION_SCREEN_ROUND
=0x8000 \
239 -isystem
$AOSP_INCLUDE_DIR \
241 -lcutils
-lutils
-landroidfw
-lziparchive \
243 -lm
-lz
-lpng
-lexpat \
245 -o
$TERMUX_PREFIX/bin
/aapt