This project contains scripts and patches to cross compile and package packages for
the [Termux](http://termux.com/) Android application.
+The scripts and patches to build each package is licensed under the same license as
+the actual package (so the patches and scripts to build bash are licensed under
+the same license as bash, while the patches and scripts to build python are licensed
+under the same license as python, etc).
+
NOTE: This is in a rough state - be prepared for some work and frustrations, and give
feedback if you find incorrect our outdated things!
* Install the Android NDK, version r10e, at `$HOME/lib/android-ndk`. Override this by setting
the environment variable `$NDK` to point at another location.
+Alternatively a Dockerfile is provided which sets up a pristine image
+suitable for building packages. To build the docker image, run the
+following command:
+
+ docker build --rm=true -t termux .
+
+After build is successful, you can open an interactive prompt inside the
+container using:
+
+ docker run --rm=true -ti termux /bin/bash
+
Building a package
==================
* glob(3) system function (glob.h) - not in bionic, but use the `libandroid-glob` package
-* undefined reference to 'rpl_malloc' and/or 'rpl_realloc': These functions are added by some autoconf setups
- when it fails to detect 0-safe malloc and realloc during cross-compilating. Avoided by defining
- "ac_cv_func_malloc_0_nonnull=yes ac_cv_func_realloc_0_nonnull=yes".
- See http://wiki.buici.com/xwiki/bin/view/Programing+C+and+C%2B%2B/Autoconf+and+RPL_MALLOC
-
* cmake and cross compiling: http://www.cmake.org/Wiki/CMake_Cross_Compiling
CMAKE_FIND_ROOT_PATH=$TERMUX_PREFIX to search there.
CMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY and
dlopen() and RTLD_* flags
=================================
-<dlfn.h> declares
+<dlfcn.h> declares
enum { RTLD_NOW=0, RTLD_LAZY=1, RTLD_LOCAL=0, RTLD_GLOBAL=2, RTLD_NOLOAD=4}; // 32-bit
enum { RTLD_NOW=2, RTLD_LAZY=1, RTLD_LOCAL=0, RTLD_GLOBAL=0x00100, RTLD_NOLOAD=4}; // 64-bit