mirror of
https://github.com/topjohnwu/ndk-box-kitchen.git
synced 2025-02-17 00:38:45 +00:00
Update scripts and remove toybox support
This commit is contained in:
parent
87ca6f75aa
commit
b229c73135
11
.gitignore
vendored
11
.gitignore
vendored
@ -1,6 +1,5 @@
|
||||
busybox
|
||||
toybox
|
||||
libs
|
||||
obj
|
||||
jni/selinux
|
||||
jni/pcre
|
||||
/busybox
|
||||
/libs
|
||||
/obj
|
||||
/jni/selinux
|
||||
/jni/pcre
|
||||
|
22
README.md
22
README.md
@ -1,10 +1,10 @@
|
||||
# ndk-box-kitchen
|
||||
|
||||
This repo is the kitchen used to create headers and Makefiles for building \*box with the command [`ndk-build`](https://developer.android.com/ndk/guides/ndk-build.html) in NDK. All scripts in this repo expect to run on Linux, however the generated code and Makefiles can be used on all NDK supported platforms.
|
||||
This repo is the kitchen used to create headers and Makefiles for building BusyBox with the command [`ndk-build`](https://developer.android.com/ndk/guides/ndk-build.html) in NDK. Scripts in this repo expect to run on Linux, however the generated code and Makefiles can be used on all NDK supported platforms.
|
||||
|
||||
## Download Sources
|
||||
|
||||
To build BusyBox, clone the following repos:
|
||||
Clone the following repos:
|
||||
|
||||
```
|
||||
git clone https://git.busybox.net/busybox/
|
||||
@ -14,24 +14,12 @@ git clone https://android.googlesource.com/platform/external/pcre jni/pcre
|
||||
|
||||
Currently, the script supports BusyBox version `1.33.1`, please checkout to the correct tags before running scripts
|
||||
|
||||
To build ToyBox, clone the following repo:
|
||||
|
||||
```
|
||||
git clone https://github.com/landley/toybox.git
|
||||
```
|
||||
|
||||
## Busybox
|
||||
|
||||
`./busybox.sh patch` to apply patches
|
||||
`./run.sh patch` to apply patches
|
||||
|
||||
`./busybox.sh generate` to generate required Makefiles and headers
|
||||
|
||||
## Toybox
|
||||
|
||||
`./toybox.sh patch` to apply patches
|
||||
|
||||
`./toybox.sh generate` to generate required Makefiles and headers
|
||||
`./run.sh generate` to generate required Makefiles and headers
|
||||
|
||||
## Credits
|
||||
|
||||
All files in `busybox_patches` are directly copied from [osm0sis/android-busybox-ndk](https://github.com/osm0sis/android-busybox-ndk). Theses patches are required for a fully functioning BusyBox building with NDK + Bionic libc.
|
||||
Most files in `patches` are copied/modified from [osm0sis/android-busybox-ndk](https://github.com/osm0sis/android-busybox-ndk). Theses patches are required for a fully functioning BusyBox building with NDK + Bionic libc.
|
||||
|
@ -5,9 +5,6 @@ include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := busybox
|
||||
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
|
||||
LOCAL_STATIC_LIBRARIES := libselinux
|
||||
|
||||
include $(LOCAL_PATH)/Android_src.mk
|
||||
|
||||
LOCAL_DISABLE_FORMAT_STRING_CHECKS := true
|
||||
LOCAL_LDFLAGS := -static
|
||||
LOCAL_CFLAGS := \
|
||||
@ -18,4 +15,4 @@ ifeq ($(OS),Windows_NT)
|
||||
LOCAL_SHORT_COMMANDS := true
|
||||
endif
|
||||
|
||||
include $(BUILD_EXECUTABLE)
|
||||
LOCAL_SRC_FILES := \
|
||||
|
@ -2,5 +2,3 @@ CWD_PATH := $(call my-dir)
|
||||
|
||||
include $(CWD_PATH)/../busybox/Android.mk
|
||||
include $(CWD_PATH)/external.mk
|
||||
|
||||
# include $(CWD_PATH)/../toybox/Android.mk
|
||||
|
@ -1,4 +1,4 @@
|
||||
APP_ABI := armeabi-v7a arm64-v8a x86 x86_64
|
||||
APP_PLATFORM := android-21
|
||||
APP_PLATFORM := android-22
|
||||
APP_CFLAGS := -Wall -Oz -fomit-frame-pointer -flto
|
||||
APP_LDFLAGS := -flto
|
||||
|
@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
BUSYBOX_TAG='1_33_1'
|
||||
|
||||
progress() {
|
||||
echo -e "\n\033[44m${1}\033[0m\n"
|
||||
}
|
||||
@ -38,16 +40,14 @@ generate_files() {
|
||||
scripts/generate_BUFSIZ.sh include/common_bufsiz.h
|
||||
srctree=$CWD HOSTCC=gcc scripts/embedded_scripts include/embedded_scripts.h embed applets_sh
|
||||
|
||||
progress "Generating Android_src.mk based on configs"
|
||||
|
||||
# Process Kbuild files
|
||||
echo "LOCAL_SRC_FILES := \\" > Android_src.mk
|
||||
parse_kbuild | sort -u >> Android_src.mk
|
||||
progress "Generating Android.mk based on configs"
|
||||
|
||||
# Build Android.mk
|
||||
echo 'LOCAL_PATH := $(call my-dir)' > Android.mk
|
||||
cat Makefile | head -n 3 >> Android.mk
|
||||
cat ../busybox.mk >> Android.mk
|
||||
parse_kbuild | sort -u >> Android.mk
|
||||
echo -e '\ninclude $(BUILD_EXECUTABLE)' >> Android.mk
|
||||
|
||||
if $COMMIT; then
|
||||
progress "Commit headers and Makefiles"
|
||||
@ -58,7 +58,7 @@ generate_files() {
|
||||
}
|
||||
|
||||
apply_patches() {
|
||||
for p in ../busybox_patches/*; do
|
||||
for p in ../patches/*; do
|
||||
if ! git am -3 < $p; then
|
||||
# Force use fuzzy patch
|
||||
patch -p1 < $p
|
||||
@ -68,6 +68,12 @@ apply_patches() {
|
||||
done
|
||||
}
|
||||
|
||||
create_patches() {
|
||||
git format-patch ${BUSYBOX_TAG}..HEAD -o ../patches.new
|
||||
rm -rf ../patches
|
||||
mv ../patches.new ../patches
|
||||
}
|
||||
|
||||
if [ ! -d busybox ]; then
|
||||
progress "Please clone busybox, checkout to desired tag, apply patches, then run this script"
|
||||
exit 1
|
||||
@ -84,12 +90,17 @@ case "$1" in
|
||||
patch )
|
||||
apply_patches
|
||||
;;
|
||||
create )
|
||||
create_patches
|
||||
;;
|
||||
* )
|
||||
echo "Usage:"
|
||||
echo "$0 patch"
|
||||
echo " Apply patches for busybox"
|
||||
echo " Apply patches to busybox"
|
||||
echo "$0 create"
|
||||
echo " Create patch files from busybox"
|
||||
echo "$0 generate [--commit]"
|
||||
echo " Generate Makefiles for compilation"
|
||||
echo " Generate Makefiles"
|
||||
;;
|
||||
esac
|
||||
|
362
toybox.config
362
toybox.config
@ -1,362 +0,0 @@
|
||||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# ToyBox version: KCONFIG_VERSION
|
||||
# Sun Aug 12 11:03:35 2018
|
||||
#
|
||||
# CONFIG_TOYBOX_CONTAINER is not set
|
||||
CONFIG_TOYBOX_FIFREEZE=y
|
||||
CONFIG_TOYBOX_ICONV=y
|
||||
CONFIG_TOYBOX_FALLOCATE=y
|
||||
# CONFIG_TOYBOX_UTMPX is not set
|
||||
# CONFIG_TOYBOX_SHADOW is not set
|
||||
# CONFIG_TOYBOX_ON_ANDROID is not set
|
||||
# CONFIG_TOYBOX_ANDROID_SCHEDPOLICY is not set
|
||||
CONFIG_TOYBOX_FORK=y
|
||||
# CONFIG_TOYBOX_PRLIMIT is not set
|
||||
|
||||
#
|
||||
# Posix commands
|
||||
#
|
||||
CONFIG_BASENAME=y
|
||||
CONFIG_CAL=y
|
||||
CONFIG_CAT=y
|
||||
CONFIG_CAT_V=y
|
||||
# CONFIG_CATV is not set
|
||||
CONFIG_CHGRP=y
|
||||
CONFIG_CHOWN=y
|
||||
CONFIG_CHMOD=y
|
||||
CONFIG_CKSUM=y
|
||||
CONFIG_CRC32=y
|
||||
CONFIG_CMP=y
|
||||
CONFIG_COMM=y
|
||||
CONFIG_CP=y
|
||||
CONFIG_CP_PRESERVE=y
|
||||
CONFIG_MV=y
|
||||
CONFIG_INSTALL=y
|
||||
CONFIG_CPIO=y
|
||||
CONFIG_CUT=y
|
||||
CONFIG_DATE=y
|
||||
CONFIG_DF=y
|
||||
CONFIG_DIRNAME=y
|
||||
CONFIG_DU=y
|
||||
CONFIG_ECHO=y
|
||||
CONFIG_ENV=y
|
||||
CONFIG_EXPAND=y
|
||||
CONFIG_FALSE=y
|
||||
CONFIG_FILE=y
|
||||
CONFIG_FIND=y
|
||||
# CONFIG_GETCONF is not set
|
||||
CONFIG_GREP=y
|
||||
CONFIG_EGREP=y
|
||||
CONFIG_FGREP=y
|
||||
CONFIG_HEAD=y
|
||||
# CONFIG_ICONV is not set
|
||||
CONFIG_ID=y
|
||||
# CONFIG_ID_Z is not set
|
||||
CONFIG_GROUPS=y
|
||||
CONFIG_LOGNAME=y
|
||||
CONFIG_WHOAMI=y
|
||||
CONFIG_KILL=y
|
||||
CONFIG_KILLALL5=y
|
||||
CONFIG_LINK=y
|
||||
CONFIG_LN=y
|
||||
# CONFIG_LOGGER is not set
|
||||
CONFIG_LS=y
|
||||
CONFIG_LS_COLOR=y
|
||||
CONFIG_MKDIR=y
|
||||
# CONFIG_MKDIR_Z is not set
|
||||
CONFIG_MKFIFO=y
|
||||
# CONFIG_MKFIFO_Z is not set
|
||||
CONFIG_NICE=y
|
||||
CONFIG_NL=y
|
||||
CONFIG_NOHUP=y
|
||||
CONFIG_OD=y
|
||||
CONFIG_PASTE=y
|
||||
CONFIG_PATCH=y
|
||||
CONFIG_PRINTF=y
|
||||
CONFIG_PS=y
|
||||
CONFIG_TOP=y
|
||||
CONFIG_IOTOP=y
|
||||
CONFIG_PGREP=y
|
||||
CONFIG_PKILL=y
|
||||
CONFIG_PWD=y
|
||||
CONFIG_RENICE=y
|
||||
CONFIG_RM=y
|
||||
CONFIG_RMDIR=y
|
||||
CONFIG_SED=y
|
||||
CONFIG_SLEEP=y
|
||||
CONFIG_SLEEP_FLOAT=y
|
||||
CONFIG_SORT=y
|
||||
CONFIG_SORT_BIG=y
|
||||
CONFIG_SORT_FLOAT=y
|
||||
CONFIG_SPLIT=y
|
||||
CONFIG_STRINGS=y
|
||||
CONFIG_TAIL=y
|
||||
CONFIG_TAIL_SEEK=y
|
||||
CONFIG_TEE=y
|
||||
CONFIG_TIME=y
|
||||
CONFIG_TOUCH=y
|
||||
CONFIG_TRUE=y
|
||||
CONFIG_TTY=y
|
||||
CONFIG_ULIMIT=y
|
||||
CONFIG_UNAME=y
|
||||
CONFIG_UNIQ=y
|
||||
CONFIG_UNLINK=y
|
||||
CONFIG_UUDECODE=y
|
||||
CONFIG_UUENCODE=y
|
||||
CONFIG_WC=y
|
||||
# CONFIG_WHO is not set
|
||||
CONFIG_XARGS=y
|
||||
# CONFIG_XARGS_PEDANTIC is not set
|
||||
|
||||
#
|
||||
# pending (see toys/pending/README)
|
||||
#
|
||||
# CONFIG_ARP is not set
|
||||
# CONFIG_ARPING is not set
|
||||
# CONFIG_BOOTCHARTD is not set
|
||||
# CONFIG_BRCTL is not set
|
||||
# CONFIG_COMPRESS is not set
|
||||
# CONFIG_DECOMPRESS is not set
|
||||
# CONFIG_CROND is not set
|
||||
# CONFIG_CRONTAB is not set
|
||||
CONFIG_DD=y
|
||||
# CONFIG_DHCP is not set
|
||||
# CONFIG_DHCP6 is not set
|
||||
# CONFIG_DHCPD is not set
|
||||
# CONFIG_DEBUG_DHCP is not set
|
||||
CONFIG_DIFF=y
|
||||
# CONFIG_DUMPLEASES is not set
|
||||
CONFIG_EXPR=y
|
||||
# CONFIG_FDISK is not set
|
||||
# CONFIG_FOLD is not set
|
||||
# CONFIG_FSCK is not set
|
||||
CONFIG_GETFATTR=y
|
||||
# CONFIG_GETTY is not set
|
||||
# CONFIG_GROUPADD is not set
|
||||
# CONFIG_GROUPDEL is not set
|
||||
CONFIG_GZIP=y
|
||||
CONFIG_GUNZIP=y
|
||||
CONFIG_ZCAT=y
|
||||
# CONFIG_HOST is not set
|
||||
# CONFIG_INIT is not set
|
||||
# CONFIG_IP is not set
|
||||
# CONFIG_IPCRM is not set
|
||||
# CONFIG_IPCS is not set
|
||||
# CONFIG_KLOGD is not set
|
||||
# CONFIG_KLOGD_SOURCE_RING_BUFFER is not set
|
||||
# CONFIG_LAST is not set
|
||||
CONFIG_LSOF=y
|
||||
# CONFIG_MDEV is not set
|
||||
# CONFIG_MDEV_CONF is not set
|
||||
# CONFIG_MKE2FS is not set
|
||||
# CONFIG_MKE2FS_JOURNAL is not set
|
||||
# CONFIG_MKE2FS_GEN is not set
|
||||
# CONFIG_MKE2FS_LABEL is not set
|
||||
# CONFIG_MKE2FS_EXTENDED is not set
|
||||
CONFIG_MODPROBE=y
|
||||
CONFIG_MORE=y
|
||||
# CONFIG_OPENVT is not set
|
||||
# CONFIG_DEALLOCVT is not set
|
||||
# CONFIG_ROUTE is not set
|
||||
# CONFIG_SH is not set
|
||||
# CONFIG_CD is not set
|
||||
# CONFIG_EXIT is not set
|
||||
CONFIG_STTY=y
|
||||
# CONFIG_SULOGIN is not set
|
||||
# CONFIG_SYSLOGD is not set
|
||||
CONFIG_TAR=y
|
||||
# CONFIG_TCPSVD is not set
|
||||
# CONFIG_TELNET is not set
|
||||
# CONFIG_TELNETD is not set
|
||||
# CONFIG_TEST is not set
|
||||
# CONFIG_TFTP is not set
|
||||
# CONFIG_TFTPD is not set
|
||||
CONFIG_TR=y
|
||||
CONFIG_TRACEROUTE=y
|
||||
# CONFIG_USERADD is not set
|
||||
# CONFIG_USERDEL is not set
|
||||
# CONFIG_VI is not set
|
||||
# CONFIG_WATCH is not set
|
||||
# CONFIG_WGET is not set
|
||||
# CONFIG_XZCAT is not set
|
||||
|
||||
#
|
||||
# Other commands
|
||||
#
|
||||
CONFIG_ACPI=y
|
||||
CONFIG_ASCII=y
|
||||
CONFIG_BASE64=y
|
||||
CONFIG_BLKID=y
|
||||
# CONFIG_FSTYPE is not set
|
||||
CONFIG_BLOCKDEV=y
|
||||
CONFIG_BUNZIP2=y
|
||||
CONFIG_BZCAT=y
|
||||
# CONFIG_CHCON is not set
|
||||
CONFIG_CHROOT=y
|
||||
CONFIG_CHRT=y
|
||||
# CONFIG_CHVT is not set
|
||||
CONFIG_CLEAR=y
|
||||
# CONFIG_COUNT is not set
|
||||
CONFIG_DOS2UNIX=y
|
||||
CONFIG_UNIX2DOS=y
|
||||
# CONFIG_EJECT is not set
|
||||
# CONFIG_FACTOR is not set
|
||||
CONFIG_FALLOCATE=y
|
||||
CONFIG_FLOCK=y
|
||||
CONFIG_FMT=y
|
||||
CONFIG_FREE=y
|
||||
CONFIG_FREERAMDISK=y
|
||||
CONFIG_FSFREEZE=y
|
||||
# CONFIG_FSYNC is not set
|
||||
CONFIG_HELP=y
|
||||
CONFIG_HELP_EXTRAS=y
|
||||
# CONFIG_HEXEDIT is not set
|
||||
CONFIG_HWCLOCK=y
|
||||
CONFIG_INOTIFYD=y
|
||||
CONFIG_INSMOD=y
|
||||
CONFIG_IONICE=y
|
||||
CONFIG_IORENICE=y
|
||||
# CONFIG_LOGIN is not set
|
||||
CONFIG_LOSETUP=y
|
||||
CONFIG_LSATTR=y
|
||||
CONFIG_CHATTR=y
|
||||
CONFIG_LSMOD=y
|
||||
CONFIG_LSPCI=y
|
||||
# CONFIG_LSPCI_TEXT is not set
|
||||
CONFIG_LSUSB=y
|
||||
CONFIG_MAKEDEVS=y
|
||||
# CONFIG_MIX is not set
|
||||
# CONFIG_MKPASSWD is not set
|
||||
CONFIG_MKSWAP=y
|
||||
CONFIG_MODINFO=y
|
||||
CONFIG_MOUNTPOINT=y
|
||||
CONFIG_NBD_CLIENT=y
|
||||
CONFIG_UNSHARE=y
|
||||
CONFIG_NSENTER=y
|
||||
# CONFIG_ONEIT is not set
|
||||
CONFIG_PARTPROBE=y
|
||||
CONFIG_PIVOT_ROOT=y
|
||||
CONFIG_PMAP=y
|
||||
CONFIG_PRINTENV=y
|
||||
CONFIG_PWDX=y
|
||||
# CONFIG_READAHEAD is not set
|
||||
CONFIG_READLINK=y
|
||||
CONFIG_REALPATH=y
|
||||
# CONFIG_REBOOT is not set
|
||||
# CONFIG_RESET is not set
|
||||
CONFIG_REV=y
|
||||
CONFIG_RMMOD=y
|
||||
CONFIG_SETFATTR=y
|
||||
CONFIG_SETSID=y
|
||||
# CONFIG_SHRED is not set
|
||||
CONFIG_STAT=y
|
||||
CONFIG_SWAPOFF=y
|
||||
CONFIG_SWAPON=y
|
||||
# CONFIG_SWITCH_ROOT is not set
|
||||
CONFIG_SYSCTL=y
|
||||
CONFIG_TAC=y
|
||||
# CONFIG_NPROC is not set
|
||||
CONFIG_TASKSET=y
|
||||
CONFIG_TIMEOUT=y
|
||||
CONFIG_TRUNCATE=y
|
||||
CONFIG_UPTIME=y
|
||||
CONFIG_USLEEP=y
|
||||
CONFIG_UUIDGEN=y
|
||||
CONFIG_VCONFIG=y
|
||||
CONFIG_VMSTAT=y
|
||||
# CONFIG_W is not set
|
||||
CONFIG_WHICH=y
|
||||
CONFIG_XXD=y
|
||||
CONFIG_YES=y
|
||||
|
||||
#
|
||||
# Networking
|
||||
#
|
||||
# CONFIG_FTPGET is not set
|
||||
# CONFIG_FTPPUT is not set
|
||||
CONFIG_IFCONFIG=y
|
||||
CONFIG_MICROCOM=y
|
||||
CONFIG_NETCAT=y
|
||||
CONFIG_NETCAT_LISTEN=y
|
||||
CONFIG_NETSTAT=y
|
||||
CONFIG_PING=y
|
||||
CONFIG_RFKILL=y
|
||||
CONFIG_TUNCTL=y
|
||||
|
||||
#
|
||||
# Linux Standard Base commands
|
||||
#
|
||||
CONFIG_DMESG=y
|
||||
CONFIG_HOSTNAME=y
|
||||
CONFIG_KILLALL=y
|
||||
CONFIG_MD5SUM=y
|
||||
CONFIG_SHA1SUM=y
|
||||
# CONFIG_SHA224SUM is not set
|
||||
# CONFIG_SHA256SUM is not set
|
||||
# CONFIG_SHA384SUM is not set
|
||||
# CONFIG_SHA512SUM is not set
|
||||
CONFIG_MKNOD=y
|
||||
# CONFIG_MKNOD_Z is not set
|
||||
CONFIG_MKTEMP=y
|
||||
CONFIG_MOUNT=y
|
||||
# CONFIG_PASSWD is not set
|
||||
# CONFIG_PASSWD_SAD is not set
|
||||
CONFIG_PIDOF=y
|
||||
CONFIG_SEQ=y
|
||||
# CONFIG_SU is not set
|
||||
CONFIG_SYNC=y
|
||||
CONFIG_UMOUNT=y
|
||||
|
||||
#
|
||||
# Example commands
|
||||
#
|
||||
# CONFIG_DEMO_MANY_OPTIONS is not set
|
||||
# CONFIG_DEMO_NUMBER is not set
|
||||
# CONFIG_DEMO_SCANKEY is not set
|
||||
# CONFIG_DEMO_UTF8TOWC is not set
|
||||
# CONFIG_HELLO is not set
|
||||
# CONFIG_HOSTID is not set
|
||||
# CONFIG_SKELETON is not set
|
||||
# CONFIG_SKELETON_ALIAS is not set
|
||||
|
||||
#
|
||||
# Android
|
||||
#
|
||||
# CONFIG_GETENFORCE is not set
|
||||
# CONFIG_GETPROP is not set
|
||||
# CONFIG_LOAD_POLICY is not set
|
||||
# CONFIG_LOG is not set
|
||||
# CONFIG_RESTORECON is not set
|
||||
# CONFIG_RUNCON is not set
|
||||
# CONFIG_SENDEVENT is not set
|
||||
# CONFIG_SETENFORCE is not set
|
||||
# CONFIG_SETPROP is not set
|
||||
# CONFIG_START is not set
|
||||
# CONFIG_STOP is not set
|
||||
|
||||
#
|
||||
#
|
||||
#
|
||||
|
||||
#
|
||||
# Toybox global settings
|
||||
#
|
||||
CONFIG_TOYBOX=y
|
||||
# CONFIG_TOYBOX_SUID is not set
|
||||
CONFIG_TOYBOX_LSM_NONE=y
|
||||
# CONFIG_TOYBOX_SELINUX is not set
|
||||
# CONFIG_TOYBOX_SMACK is not set
|
||||
# CONFIG_TOYBOX_LIBCRYPTO is not set
|
||||
CONFIG_TOYBOX_LIBZ=y
|
||||
CONFIG_TOYBOX_FLOAT=y
|
||||
CONFIG_TOYBOX_HELP=y
|
||||
CONFIG_TOYBOX_HELP_DASHDASH=y
|
||||
CONFIG_TOYBOX_I18N=y
|
||||
# CONFIG_TOYBOX_FREE is not set
|
||||
CONFIG_TOYBOX_NORECURSE=y
|
||||
# CONFIG_TOYBOX_DEBUG is not set
|
||||
# CONFIG_TOYBOX_PEDANTIC_ARGS is not set
|
||||
CONFIG_TOYBOX_UID_SYS=100
|
||||
CONFIG_TOYBOX_UID_USR=500
|
||||
# CONFIG_TOYBOX_MUSL_NOMMU_IS_BROKEN is not set
|
20
toybox.mk
20
toybox.mk
@ -1,20 +0,0 @@
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := toybox
|
||||
include $(LOCAL_PATH)/Android_src.mk
|
||||
|
||||
LOCAL_CFLAGS := \
|
||||
-Wno-char-subscripts \
|
||||
-Wno-gnu-variable-sized-type-not-at-end \
|
||||
-Wno-missing-field-initializers \
|
||||
-Wno-sign-compare \
|
||||
-Wno-string-plus-int \
|
||||
-Wno-unused-parameter \
|
||||
-funsigned-char \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-fno-asynchronous-unwind-tables
|
||||
LOCAL_LDFLAGS := -lz -static
|
||||
|
||||
include $(BUILD_EXECUTABLE)
|
68
toybox.sh
68
toybox.sh
@ -1,68 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
progress() {
|
||||
echo -e "\033[44m\n${1}\n\033[0m"
|
||||
}
|
||||
|
||||
generate_files() {
|
||||
progress "Generating configuration files"
|
||||
cp ../toybox.config .config
|
||||
scripts/genconfig.sh
|
||||
export NOBUILD=1
|
||||
scripts/make.sh
|
||||
|
||||
progress "Generating Android_src.mk based on configs"
|
||||
|
||||
# Stolen from scripts/make.sh
|
||||
TOYFILES="`sed -n 's/^CONFIG_\([^=]*\)=.*/\1/p' .config | xargs | tr ' [A-Z]' '|[a-z]'`"
|
||||
TOYFILES="`egrep -l "TOY[(]($TOYFILES)[ ,]" toys/*/*.c`"
|
||||
LIBFILES="`ls lib/*.c`"
|
||||
|
||||
echo "LOCAL_SRC_FILES := main.c \\" > Android_src.mk
|
||||
for SRC in `echo $LIBFILES $TOYFILES | sort`; do
|
||||
echo "$SRC \\" >> Android_src.mk
|
||||
done
|
||||
|
||||
cp ../toybox.mk Android.mk
|
||||
|
||||
if $COMMIT; then
|
||||
progress "Commit headers and Makefiles"
|
||||
git add -f generated/*.h
|
||||
git add *.mk
|
||||
git commit -m "Add generated files for ndk-build" -m "Auto generated by ndk-box-kitchen"
|
||||
fi
|
||||
}
|
||||
|
||||
apply_patches() {
|
||||
for p in ../toybox_patches/*; do
|
||||
MSG="`cat $p | grep 'Subject' | sed 's/.*]\s//'`"
|
||||
progress "[PATCH] $MSG"
|
||||
patch -p1 < $p
|
||||
git add .
|
||||
git commit -m "$MSG" -m "Auto generated by ndk-box-kitchen"
|
||||
done
|
||||
}
|
||||
|
||||
if [ ! -d toybox ]; then
|
||||
progress "Please clone toybox, checkout to desired tag, apply patches, then run this script"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cd toybox
|
||||
|
||||
case "$1" in
|
||||
generate )
|
||||
[ "$2" = "--commit" ] && COMMIT=true || COMMIT=false
|
||||
generate_files
|
||||
;;
|
||||
patch )
|
||||
apply_patches
|
||||
;;
|
||||
* )
|
||||
echo "Usage:"
|
||||
echo "$0 patch"
|
||||
echo " Apply patches for toybox"
|
||||
echo "$0 generate [--commit]"
|
||||
echo " Generate Makefiles for compilation"
|
||||
;;
|
||||
esac
|
@ -1,23 +0,0 @@
|
||||
From: topjohnwu <topjohnwu@gmail.com>
|
||||
Date: Sun, 12 Aug 2018 10:56:38 +0800
|
||||
Subject: [PATCH] fix undefined icmphdr in ping
|
||||
|
||||
---
|
||||
toys/net/ping.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/toys/net/ping.c b/toys/net/ping.c
|
||||
index 8638479..2eef1ee 100644
|
||||
--- a/toys/net/ping.c
|
||||
+++ b/toys/net/ping.c
|
||||
@@ -45,6 +45,7 @@ config PING
|
||||
|
||||
#include <ifaddrs.h>
|
||||
#include <netinet/ip_icmp.h>
|
||||
+#include <linux/icmp.h>
|
||||
|
||||
GLOBALS(
|
||||
long w;
|
||||
--
|
||||
2.17.1
|
||||
|
Loading…
x
Reference in New Issue
Block a user