Add SYSROOT, EXTRA_{LDFLAGS,LDLIBS} config opts; sample Android NDK config

Signed-off-by: Rob Walker <rwalker@rwalker.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Rob Walker 2012-03-07 12:25:53 +01:00 committed by Denys Vlasenko
parent 69d81a1c1b
commit bf6343796e
3 changed files with 1058 additions and 0 deletions

View File

@ -600,12 +600,39 @@ config CROSS_COMPILER_PREFIX
Native builds leave this empty.
config SYSROOT
string "Path to sysroot"
default ""
help
If you want to build BusyBox with a cross compiler, then you
might also need to specify where /usr/include and /usr/lib
will be found.
For example, BusyBox can be built against an installed
Android NDK, platform version 9, for ARM ABI with
CONFIG_SYSROOT=/opt/android-ndk/platforms/android-9/arch-arm
Native builds leave this empty.
config EXTRA_CFLAGS
string "Additional CFLAGS"
default ""
help
Additional CFLAGS to pass to the compiler verbatim.
config EXTRA_LDFLAGS
string "Additional LDFLAGS"
default ""
help
Additional LDFLAGS to pass to the linker verbatim.
config EXTRA_LDLIBS
string "Additional LDLIBS"
default ""
help
Additional LDLIBS to pass to the linker with -l.
endmenu
menu 'Debugging Options'

View File

@ -104,6 +104,11 @@ else
LDLIBS += m
endif
ifneq ($(CONFIG_SYSROOT),)
CFLAGS += --sysroot=$(CONFIG_SYSROOT)
export SYSROOT=$(CONFIG_SYSROOT)
endif
ifeq ($(CONFIG_PAM),y)
# libpam uses libpthread, so for static builds busybox must be linked to
# libpthread. On some platforms that requires an explicit -lpthread, so
@ -137,6 +142,16 @@ ifneq (,$(findstring $(W_ELF2FLT),$(LDFLAGS) $(CFLAGS_busybox)))
SKIP_STRIP = y
endif
ifneq ($(CONFIG_EXTRA_LDFLAGS),)
EXTRA_LDFLAGS += $(strip $(subst ",,$(CONFIG_EXTRA_LDFLAGS)))
#"))
endif
ifneq ($(CONFIG_EXTRA_LDLIBS),)
LDLIBS += $(strip $(subst ",,$(CONFIG_EXTRA_LDLIBS)))
#"))
endif
# Busybox is a stack-fatty so make sure we increase default size
# TODO: use "make stksizes" to find & fix big stack users
# (we stole scripts/checkstack.pl from the kernel... thanks guys!)

File diff suppressed because it is too large Load Diff