Some work on an update aapt package
[termux-packages] / disabled-packages / aapt-updated / build.sh
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"
7
8 termux_step_make_install () {
9 local _TAGNAME=${TERMUX_PKG_VERSION}_r1
10
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
15
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"
19
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
24
25 local AOSP_INCLUDE_DIR=$TERMUX_PREFIX/include/aosp
26 mkdir -p $AOSP_INCLUDE_DIR
27 cd $AOSP_INCLUDE_DIR
28 rm -Rf *
29 tar xf $SYSTEM_CORE_INCLUDE_TARFILE
30 mkdir -p androidfw
31 cd androidfw
32 tar xf $ANDROIDFW_INCLUDE_TARFILE
33 cd ..
34 mkdir -p android-base
35 cd android-base
36 tar xf $ANDROID_BASE_INCLUDE_TARFILE
37
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
46 # From Android.mk:
47 libcutils_common_sources="\
48 config_utils.c \
49 fs_config.c \
50 canned_fs_config.c \
51 hashmap.c \
52 iosched_policy.c \
53 load_file.c \
54 native_handle.c \
55 open_memstream.c \
56 process_name.c \
57 record_stream.c \
58 sched_policy.c \
59 sockets.o \
60 strdup16to8.c \
61 strdup8to16.c \
62 strlcpy.c \
63 threads.c"
64 libcutils_nonwindows_sources="\
65 fs.c \
66 multiuser.c \
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 \
73 sockets_unix.o \
74 str_parms.c"
75 $CC \
76 -Dchar16_t=uint16_t \
77 -std=c11 \
78 -isystem $AOSP_INCLUDE_DIR \
79 $libcutils_common_sources \
80 $libcutils_nonwindows_sources \
81 trace-host.c \
82 properties.c \
83 -shared \
84 -o $TERMUX_PREFIX/lib/libcutils.so
85
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 \
89 $ANDROIDFW_TARFILE
90 mkdir -p $TERMUX_PKG_SRCDIR/androidfw
91 cd $TERMUX_PKG_SRCDIR/androidfw
92 tar xf $ANDROIDFW_TARFILE
93 commonSources="\
94 Asset.cpp \
95 AssetDir.cpp \
96 AssetManager.cpp \
97 LocaleData.cpp \
98 misc.cpp \
99 ObbFile.cpp \
100 ResourceTypes.cpp \
101 StreamingZipInflater.cpp \
102 TypeWrappers.cpp \
103 ZipFileRO.cpp \
104 ZipUtils.cpp"
105 sed -i 's%#include <binder/TextOutput.h>%%' ResourceTypes.cpp
106 $CXX $CXXFLAGS $LDFLAGS -isystem $AOSP_INCLUDE_DIR \
107 -std=c++11 \
108 $commonSources \
109 -DACONFIGURATION_SCREENROUND_ANY=0x00 \
110 -DACONFIGURATION_SCREENROUND_NO=0x1 \
111 -DACONFIGURATION_SCREENROUND_YES=0x2 \
112 -DACONFIGURATION_SCREEN_ROUND=0x8000 \
113 -lcutils \
114 -shared \
115 -o $TERMUX_PREFIX/lib/libandroidfw.so
116
117
118
119 # Build libutil:
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"
122
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 \
126 $SAFE_IOP_TARFILE
127 local SAFE_IOP_DIR=$TERMUX_PKG_TMPDIR/safe-iop
128 mkdir -p $SAFE_IOP_DIR
129 cd $SAFE_IOP_DIR
130 tar xf $SAFE_IOP_TARFILE
131 mv src/safe_iop.c src/safe_iop.cpp
132
133 mkdir $TERMUX_PKG_SRCDIR/libutils
134 cd $TERMUX_PKG_SRCDIR/libutils
135 tar xf $LIBUTILS_TARFILE
136 # From Android.mk:
137 #CallStack.cpp \
138 commonSources="\
139 FileMap.cpp \
140 JenkinsHash.cpp \
141 LinearTransform.cpp \
142 Log.cpp \
143 NativeHandle.cpp \
144 Printer.cpp \
145 PropertyMap.cpp \
146 RefBase.cpp \
147 SharedBuffer.cpp \
148 Static.cpp \
149 StopWatch.cpp \
150 String8.cpp \
151 String16.cpp \
152 SystemClock.cpp \
153 Threads.cpp \
154 Timers.cpp \
155 Tokenizer.cpp \
156 Unicode.cpp \
157 VectorImpl.cpp \
158 misc.cpp"
159 $CXX $CXXFLAGS $CPPFLAGS $LDFLAGS \
160 -std=c++11 \
161 -Dtypeof=decltype \
162 -isystem $TERMUX_PREFIX/include/aosp \
163 -isystem $SAFE_IOP_DIR/include \
164 $SAFE_IOP_DIR/src/safe_iop.cpp \
165 $commonSources \
166 -lcutils \
167 -shared \
168 -o $TERMUX_PREFIX/lib/libutils.so
169
170
171
172 # Build libbase:
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" \
176 $LIBBASE_TARFILE
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
183 libbase_src_files="\
184 file.cpp \
185 logging.cpp \
186 parsenetaddress.cpp \
187 stringprintf.cpp \
188 strings.cpp \
189 test_utils.cpp"
190 libbase_linux_src_files="\
191 errors_unix.cpp"
192 # __USE_BSD for DEFFILEMODE to be defined by <sys/stat.h>.
193 $CXX $CPPFLAGS -std=c++11 \
194 -D__USE_BSD \
195 -isystem $AOSP_INCLUDE_DIR \
196 $libbase_src_files $libbase_linux_src_files \
197 -shared \
198 -o $TERMUX_PREFIX/lib/libbase.so
199
200
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="\
210 zip_archive.cc \
211 zip_archive_stream_entry.cc \
212 zip_writer.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 \
215 -DZLIB_CONST \
216 -isystem $AOSP_INCLUDE_DIR \
217 $libziparchive_source_files \
218 -lbase \
219 -shared \
220 -o $TERMUX_PREFIX/lib/libziparchive.so
221
222
223
224 # Build aapt:
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
229 tar xf $AAPT_TARFILE
230 $CXX $CXXFLAGS $CPPFLAGS $LDFLAGS \
231 -std=c++11 \
232 -DANDROID_SMP=1 \
233 -DNDEBUG=1 \
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 \
240 *.cpp \
241 -lcutils -lutils -landroidfw -lziparchive \
242 -llog \
243 -lm -lz -lpng -lexpat \
244 -lgnustl_shared \
245 -o $TERMUX_PREFIX/bin/aapt
246 }