- add target hosttools (see make help) - rename check_gcc to check_cc and pass the CC to use as arg#1; peruse check_cc for HOSTCFLAGS - add and use check_strip - add checks for {,no-}whole-archive and {start,end}-group LD flags
This commit was genuinely broken at the time (not related to our build system): scripts/config/mkconfigs.c (2005-08-01 - 2006-10-05 arasi) uretilen bbconfigopts.h icine .config satirlarini kacissiz, ham newline'larla gömüyordu - gecerli C degildi, busybox'un kendi bb_mkdep araci bile parse edemiyordu (7d219aab7 ile duzeltildi, mkconfigs shell scripte cevrildi)
No binary (build failed)
—
(log yok)
| @@ -8,7 +8,7 @@ | |
| #-------------------------------------------------------------- | |
| # You shouldn't need to mess with anything beyond this point... | |
| #-------------------------------------------------------------- | |
| - | noconfig_targets := menuconfig config oldconfig randconfig \ |
| + | noconfig_targets := menuconfig config oldconfig randconfig hosttools \ |
| defconfig allyesconfig allnoconfig allbareconfig \ | |
| clean distclean help \ | |
| release tags | |
| @@ -126,6 +126,10 @@ help: | |
| @echo ' defconfig - set .config to largest generic configuration' | |
| @echo ' menuconfig - interactive curses-based configurator' | |
| @echo ' oldconfig - resolve any unresolved symbols in .config' | |
| + | @echo ' hosttools - build sed for the host.' |
| + | @echo ' You can use these commands if the commands on the host' |
| + | @echo ' is unusable. Afterwards use it like:' |
| + | @echo ' make SED="$(top_builddir)/sed"' |
| @echo | |
| @echo 'Installation:' | |
| @echo ' install - install busybox into $(PREFIX)' | |
| @@ -210,6 +214,18 @@ allbareconfig: scripts/config/conf | |
| @echo "CONFIG_FEATURE_BUFFERS_GO_ON_STACK=y" >> .config | |
| @yes n | ./scripts/config/conf -o $(CONFIG_CONFIG_IN) > /dev/null | |
| + | hosttools: |
| + | $(Q)cp .config .config.bak || noold=yea |
| + | $(Q)$(MAKE) CC="$(HOSTCC)" CFLAGS="$(HOSTCFLAGS) $(INCS)" allnoconfig |
| + | $(Q)mv .config .config.in |
| + | $(Q)(grep -v CONFIG_SED .config.in ; \ |
| + | echo "CONFIG_SED=y" ; ) > .config |
| + | $(Q)$(MAKE) CC="$(HOSTCC)" CFLAGS="$(HOSTCFLAGS) $(INCS)" oldconfig include/bb_config.h |
| + | $(Q)$(MAKE) CC="$(HOSTCC)" CFLAGS="$(HOSTCFLAGS) $(INCS)" busybox |
| + | $(Q)[ -f .config.bak ] && mv .config.bak .config || rm .config |
| + | mv busybox sed |
| + | @echo "Now do: $(MAKE) SED=$(top_builddir)/sed <target>" |
| + | |
| else # ifneq ($(strip $(HAVE_DOT_CONFIG)),y) | |
| all: busybox busybox.links doc | |
| @@ -287,9 +303,9 @@ endif | |
| -Wl,-soname=$(LD_LIBBUSYBOX).$(MAJOR_VERSION) \ | |
| -Wl,-z,combreloc $(LIB_LDFLAGS) \ | |
| -o $(@) \ | |
| - | -Wl,--start-group -Wl,--whole-archive \ |
| + | $(LD_START_GROUP) $(LD_WHOLE_ARCHIVE) \ |
| $(LIBRARY_DEFINE) $(^) \ | |
| - | -Wl,--no-whole-archive -Wl,--end-group |
| + | $(LD_NO_WHOLE_ARCHIVE) $(LD_END_GROUP) |
| @rm -f $(DO_INSTALL_LIBS) | |
| @for i in $(DO_INSTALL_LIBS); do ln -s $(@) $$i ; done | |
| $(do_strip) | |
| @@ -298,11 +314,11 @@ endif # ifeq ($(strip $(CONFIG_BUILD_LIBBUSYBOX)),y) | |
| busybox_unstripped: .depend $(LIBBUSYBOX_SONAME) $(BUSYBOX_SRC) $(APPLET_SRC) $(libraries-y) | |
| $(do_link) $(PROG_CFLAGS) $(PROG_LDFLAGS) $(CFLAGS_COMBINE) \ | |
| - | -o $@ -Wl,--start-group \ |
| + | -o $@ $(LD_START_GROUP) \ |
| $(APPLETS_DEFINE) $(APPLET_SRC) \ | |
| $(BUSYBOX_DEFINE) $(BUSYBOX_SRC) $(libraries-y) \ | |
| $(LDBUSYBOX) $(LIBRARIES) \ | |
| - | -Wl,--end-group |
| + | $(LD_END_GROUP) |
| busybox: busybox_unstripped | |
| $(Q)cp busybox_unstripped busybox | |
| @@ -349,8 +365,8 @@ ifneq ($(strip $(KBUILD_VERBOSE)),) | |
| # ARFLAGS+=v | |
| endif | |
| check test: busybox | |
| - | bindir=$(top_builddir) srcdir=$(top_srcdir)/testsuite \ |
| - | $(top_srcdir)/testsuite/runtest $(CHECK_VERBOSE) |
| + | bindir=$(top_builddir) srcdir=$(top_srcdir)/testsuite SED="$(SED)" \ |
| + | $(SHELL) $(top_srcdir)/testsuite/runtest $(CHECK_VERBOSE) |
| .PHONY: checkhelp | |
| checkhelp: | |
| @@ -422,7 +438,7 @@ $(USAGE_BIN): $(top_srcdir)/scripts/usage.c | |
| DEP_INCLUDES += include/usage_compressed.h | |
| include/usage_compressed.h: .config $(USAGE_BIN) | |
| - | $(Q)$(SHELL) $(top_srcdir)/scripts/usage_compressed "$(top_builddir)/scripts" > $@ |
| + | $(Q)SED="$(SED)" $(SHELL) $(top_srcdir)/scripts/usage_compressed "$(top_builddir)/scripts" > $@ |
| endif # CONFIG_FEATURE_COMPRESS_USAGE | |
| # workaround alleged bug in make-3.80, make-3.81 | |
| @@ -486,4 +502,4 @@ tags: | |
| endif # ifeq ($(skip-makefile),) | |
| .PHONY: dummy subdirs release distclean clean config oldconfig \ | |
| - | menuconfig tags check test depend dep buildtree |
| + | menuconfig tags check test depend dep buildtree hosttools |
| @@ -31,7 +31,8 @@ BUILDTIME := $(shell TZ=UTC date -u "+%Y.%m.%d-%H:%M%z") | |
| # to something more interesting... Target architecture is determined | |
| # by asking the CC compiler what arch it compiles things for, so unless | |
| # your compiler is broken, you should not need to specify TARGET_ARCH | |
| - | CROSS =$(subst ",, $(strip $(CROSS_COMPILER_PREFIX))) |
| + | CROSS =$(strip $(subst ",, $(strip $(CROSS_COMPILER_PREFIX)))) |
| + | # be gentle to vi coloring.. ")) |
| CC = $(CROSS)gcc | |
| AR = $(CROSS)ar | |
| AS = $(CROSS)as | |
| @@ -41,16 +42,13 @@ STRIP = $(CROSS)strip | |
| ELF2FLT = $(CROSS)elf2flt | |
| CPP = $(CC) -E | |
| SED ?= sed | |
| + | BZIP2 ?= bzip2 |
| # What OS are you compiling busybox for? This allows you to include | |
| # OS specific things, syscall overrides, etc. | |
| TARGET_OS=linux | |
| - | # Select the compiler needed to build binaries for your development system |
| - | HOSTCC = gcc |
| - | HOSTCFLAGS= -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer |
| - | |
| # Ensure consistent sort order, 'gcc -print-search-dirs' behavior, etc. | |
| LC_ALL:= C | |
| @@ -71,7 +69,7 @@ CFLAGS_EXTRA=$(subst ",, $(strip $(EXTRA_CFLAGS_OPTIONS))) | |
| #LDFLAGS+=-nostdlib | |
| #LIBRARIES:=$(LIBCDIR)/lib/libc.a -lgcc | |
| #CROSS_CFLAGS+=-nostdinc -I$(LIBCDIR)/include -I$(GCCINCDIR) -funsigned-char | |
| - | #GCCINCDIR:=$(shell gcc -print-search-dirs | sed -ne "s/install: \(.*\)/\1include/gp") |
| + | #GCCINCDIR:=$(shell gcc -print-search-dirs | $(SED) -ne "s/install: \(.*\)/\1include/gp") |
| # This must bind late because srcdir is reset for every source subdirectory. | |
| INCS:=-I$(top_builddir)/include -I$(top_srcdir)/include | |
| @@ -79,11 +77,6 @@ CFLAGS=$(INCS) -I$(srcdir) -D_GNU_SOURCE | |
| CFLAGS+=$(CHECKED_CFLAGS) | |
| ARFLAGS=cru | |
| - | # Warnings |
| - | |
| - | CFLAGS += -Wall -Wstrict-prototypes -Wshadow |
| - | LDFLAGS += $(call check_ld,--warn-common,) |
| - | |
| # gcc centric. Perhaps fiddle with findstring gcc,$(CC) for the rest | |
| # get the CC MAJOR/MINOR version | |
| CC_MAJOR:=$(shell printf "%02d" $(shell echo __GNUC__ | $(CC) -E -xc - | tail -n 1)) | |
| @@ -92,7 +85,7 @@ CC_MINOR:=$(shell printf "%02d" $(shell echo __GNUC_MINOR__ | $(CC) -E -xc - | t | |
| #-------------------------------------------------------- | |
| export VERSION BUILDTIME HOSTCC HOSTCFLAGS CROSS CC AR AS LD NM STRIP CPP | |
| ifeq ($(strip $(TARGET_ARCH)),) | |
| - | TARGET_ARCH:=$(shell $(CC) -dumpmachine | sed -e s'/-.*//' \ |
| + | TARGET_ARCH:=$(shell $(CC) -dumpmachine | $(SED) -e s'/-.*//' \ |
| -e 's/i.86/i386/' \ | |
| -e 's/sparc.*/sparc/' \ | |
| -e 's/arm.*/arm/g' \ | |
| @@ -107,27 +100,90 @@ TARGET_ARCH:=$(shell $(CC) -dumpmachine | sed -e s'/-.*//' \ | |
| endif | |
| # A nifty macro to make testing gcc features easier, but note that everything | |
| - | # that uses this _must_ use := or it will be re-evaluated for every file. |
| + | # that uses this _must_ use := or it will be re-evaluated everytime it is |
| + | # referenced. |
| ifeq ($(strip $(V)),2) | |
| - | VERBOSE_CHECK_GCC=echo check_gcc $(1) >> /dev/stderr; |
| + | VERBOSE_CHECK_CC=echo CC=\"$(1)\" check_cc $(2) >&2; |
| endif | |
| - | check_gcc=$(shell \ |
| - | $(VERBOSE_CHECK_GCC)\ |
| - | if [ "$(1)" != "" ]; then \ |
| - | if $(CC) $(1) -S -o /dev/null -xc /dev/null > /dev/null 2>&1; \ |
| - | then echo "$(1)"; else echo "$(2)"; fi \ |
| + | check_cc=$(shell \ |
| + | $(VERBOSE_CHECK_CC) \ |
| + | if [ "x$(1)" != "x" ] && [ "x$(2)" != "x" ]; then \ |
| + | echo "int i;" > ./conftest.c; \ |
| + | if $(1) $(2) -c -o conftest.o conftest.c > /dev/null 2>&1; \ |
| + | then echo "$(2)"; else echo "$(3)"; fi ; \ |
| + | rm -f conftest.c conftest.o; \ |
| fi) | |
| # A not very robust macro to check for available ld flags | |
| + | ifeq ($(strip $(V)),2) |
| + | VERBOSE_CHECK_LD=echo LD=\"$(1)\" check_ld $(2) >&2; |
| + | endif |
| check_ld=$(shell \ | |
| - | if [ "x$(1)" != "x" ]; then \ |
| - | $(LD) --help | grep -q "\$(1)" && echo "-Wl,$(1)" ; \ |
| + | $(VERBOSE_CHECK_LD) \ |
| + | if [ "x$(1)" != "x" ] && [ "x$(2)" != "x" ]; then \ |
| + | $(1) -o /dev/null -b binary /dev/null > /dev/null 2>&1 && \ |
| + | echo "-Wl,$(2)" ; \ |
| fi) | |
| + | # A not very robust macro to check for available strip flags |
| + | ifeq ($(strip $(V)),2) |
| + | VERBOSE_CHECK_STRIP=echo STRIPCMD=\"$(1)\" check_strip $(2) >&2; |
| + | endif |
| + | check_strip=$(shell \ |
| + | $(VERBOSE_CHECK_STRIP) \ |
| + | if [ "x$(1)" != "x" ] && [ "x$(2)" != "x" ]; then \ |
| + | echo "int i;" > ./conftest.c ; \ |
| + | $(CC) -c -o conftest.o conftest.c > /dev/null 2>&1 ; \ |
| + | $(1) $(2) conftest.o > /dev/null 2>&1 && \ |
| + | echo "$(1) $(2)" || echo "$(3)"; \ |
| + | rm -f conftest.c conftest.o > /dev/null 2>&1 ; \ |
| + | fi) |
| + | |
| + | |
| + | |
| + | # Select the compiler needed to build binaries for your development system |
| + | HOSTCC = gcc |
| + | HOSTCFLAGS:=$(call check_cc,$(HOSTCC),-Wall,) |
| + | HOSTCFLAGS+=$(call check_cc,$(HOSTCC),-Wstrict-prototypes,) |
| + | HOSTCFLAGS+=$(call check_cc,$(HOSTCC),-O2,) |
| + | HOSTCFLAGS+=$(call check_cc,$(HOSTCC),-fomit-frame-pointer,) |
| + | |
| + | LD_WHOLE_ARCHIVE:=$(shell echo "int i;" > conftest.c ; \ |
| + | $(CC) -c -o conftest.o conftest.c ; \ |
| + | echo "int main(void){return 0;}" > conftest_main.c ; \ |
| + | $(CC) -c -o conftest_main.o conftest_main.c ; \ |
| + | $(AR) $(ARFLAGS) conftest.a conftest.o ; \ |
| + | $(CC) -Wl,--whole-archive conftest.a -Wl,--no-whole-archive \ |
| + | conftest_main.o -o conftest > /dev/null 2>&1 \ |
| + | && echo "-Wl,--whole-archive" ; \ |
| + | rm conftest_main.o conftest_main.c conftest.o conftest.c \ |
| + | conftest.a conftest > /dev/null 2>&1 ; ) |
| + | ifneq ($(findstring whole-archive,$(LD_WHOLE_ARCHIVE)),) |
| + | LD_NO_WHOLE_ARCHIVE:= -Wl,--no-whole-archive |
| + | endif |
| + | |
| + | LD_START_GROUP:=$(shell echo "int bar(void){return 0;}" > conftest.c ; \ |
| + | $(CC) -c -o conftest.o conftest.c ; \ |
| + | echo "int main(void){return bar();}" > conftest_main.c ; \ |
| + | $(CC) -c -o conftest_main.o conftest_main.c ; \ |
| + | $(AR) $(ARFLAGS) conftest.a conftest.o ; \ |
| + | $(CC) -Wl,--start-group conftest.a conftest_main.o -Wl,--end-group \ |
| + | -o conftest > /dev/null 2>&1 && echo "-Wl,--start-group" ; \ |
| + | echo rm conftest_main.o conftest_main.c conftest.o conftest.c \ |
| + | conftest.a conftest > /dev/null 2>&1 ; ) |
| + | ifneq ($(findstring start-group,$(LD_START_GROUP)),) |
| + | LD_END_GROUP:= -Wl,--end-group |
| + | endif |
| + | |
| + | CHECKED_LDFLAGS := $(call check_ld,$(LD),--warn-common,) |
| + | |
| # Pin CHECKED_CFLAGS with := so it's only evaluated once. | |
| - | CHECKED_CFLAGS:=$(call check_gcc,-funsigned-char,) |
| - | CHECKED_CFLAGS+=$(call check_gcc,-mmax-stack-frame=256,) |
| - | CHECKED_CFLAGS+=$(call check_gcc,-fno-builtin-strlen) |
| + | CHECKED_CFLAGS:=$(call check_cc,$(CC),-Wall,) |
| + | CHECKED_CFLAGS+=$(call check_cc,$(CC),-Wstrict-prototypes,) |
| + | CHECKED_CFLAGS+=$(call check_cc,$(CC),-Wshadow,) |
| + | CHECKED_CFLAGS+=$(call check_cc,$(CC),-funsigned-char,) |
| + | CHECKED_CFLAGS+=$(call check_cc,$(CC),-mmax-stack-frame=256,) |
| + | CHECKED_CFLAGS+=$(call check_cc,$(CC),-fno-builtin-strlen) |
| # Preemptively pin this too. | |
| PROG_CFLAGS:= | |
| @@ -139,26 +195,26 @@ PROG_CFLAGS:= | |
| # for OPTIMIZATION... | |
| # use '-Os' optimization if available, else use -O2 | |
| - | OPTIMIZATION:=$(call check_gcc,-Os,-O2) |
| + | OPTIMIZATION:=$(call check_cc,$(CC),-Os,-O2) |
| ifeq ($(CONFIG_BUILD_AT_ONCE),y) | |
| # gcc 2.95 exits with 0 for "unrecognized option" | |
| ifeq ($(strip $(shell [ $(CC_MAJOR) -ge 3 ] ; echo $$?)),0) | |
| - | CFLAGS_COMBINE:=$(call check_gcc,--combine,) |
| + | CFLAGS_COMBINE:=$(call check_cc,$(CC),--combine,) |
| endif | |
| - | OPTIMIZATION+=$(call check_gcc,-funit-at-a-time,) |
| - | OPTIMIZATION+=$(call check_gcc,-fgcse-after-reload,) |
| + | OPTIMIZATION+=$(call check_cc,$(CC),-funit-at-a-time,) |
| + | OPTIMIZATION+=$(call check_cc,$(CC),-fgcse-after-reload,) |
| ifneq ($(CONFIG_BUILD_LIBBUSYBOX),y) | |
| # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25795 | |
| # This prevents us from using -fwhole-program when we build the lib | |
| - | PROG_CFLAGS+=$(call check_gcc,-fwhole-program,) |
| + | PROG_CFLAGS+=$(call check_cc,$(CC),-fwhole-program,) |
| endif # CONFIG_BUILD_LIBBUSYBOX | |
| endif # CONFIG_BUILD_AT_ONCE | |
| - | LIB_LDFLAGS:=$(call check_ld,--enable-new-dtags,) |
| - | #LIB_LDFLAGS+=$(call check_ld,--reduce-memory-overheads,) |
| - | #LIB_LDFLAGS+=$(call check_ld,--as-needed,) |
| - | #LIB_LDFLAGS+=$(call check_ld,--warn-shared-textrel,) |
| + | LIB_LDFLAGS:=$(call check_ld,$(LD),--enable-new-dtags,) |
| + | #LIB_LDFLAGS+=$(call check_ld,$(LD),--reduce-memory-overheads,) |
| + | #LIB_LDFLAGS+=$(call check_ld,$(LD),--as-needed,) |
| + | #LIB_LDFLAGS+=$(call check_ld,$(LD),--warn-shared-textrel,) |
| # Some nice architecture specific optimizations | |
| @@ -166,25 +222,25 @@ ifeq ($(strip $(TARGET_ARCH)),arm) | |
| OPTIMIZATION+=-fstrict-aliasing | |
| endif | |
| ifeq ($(strip $(TARGET_ARCH)),i386) | |
| - | OPTIMIZATION+=$(call check_gcc,-march=i386,) |
| + | OPTIMIZATION+=$(call check_cc,$(CC),-march=i386,) |
| # gcc-4.0 and older seem to benefit from these | |
| #ifneq ($(strip $(shell [ $(CC_MAJOR) -ge 4 -a $(CC_MINOR) -ge 1 ] ; echo $$?)),0) | |
| - | OPTIMIZATION+=$(call check_gcc,-mpreferred-stack-boundary=2,) |
| - | OPTIMIZATION+=$(call check_gcc,-falign-functions=1 -falign-jumps=1 -falign-loops=1,\ |
| + | OPTIMIZATION+=$(call check_cc,$(CC),-mpreferred-stack-boundary=2,) |
| + | OPTIMIZATION+=$(call check_cc,$(CC),-falign-functions=1 -falign-jumps=1 -falign-loops=1,\ |
| -malign-functions=0 -malign-jumps=0 -malign-loops=0) | |
| #endif # gcc-4.0 and older | |
| # gcc-4.1 and beyond seem to benefit from these | |
| ifeq ($(strip $(shell [ $(CC_MAJOR) -ge 4 -a $(CC_MINOR) -ge 1 ] ; echo $$?)),0) | |
| # turn off flags which hurt -Os | |
| - | OPTIMIZATION+=$(call check_gcc,-fno-tree-loop-optimize,) |
| - | OPTIMIZATION+=$(call check_gcc,-fno-tree-dominator-opts,) |
| - | OPTIMIZATION+=$(call check_gcc,-fno-strength-reduce,) |
| + | OPTIMIZATION+=$(call check_cc,$(CC),-fno-tree-loop-optimize,) |
| + | OPTIMIZATION+=$(call check_cc,$(CC),-fno-tree-dominator-opts,) |
| + | OPTIMIZATION+=$(call check_cc,$(CC),-fno-strength-reduce,) |
| - | OPTIMIZATION+=$(call check_gcc,-fno-branch-count-reg,) |
| + | OPTIMIZATION+=$(call check_cc,$(CC),-fno-branch-count-reg,) |
| endif # gcc-4.1 and beyond | |
| endif | |
| - | OPTIMIZATION+=$(call check_gcc,-fomit-frame-pointer,) |
| + | OPTIMIZATION+=$(call check_cc,$(CC),-fomit-frame-pointer,) |
| # | |
| #-------------------------------------------------------- | |
| @@ -215,7 +271,7 @@ ifeq ($(strip $(CONFIG_DEBUG)),y) | |
| CFLAGS +=-g | |
| else | |
| CFLAGS +=-DNDEBUG | |
| - | LDFLAGS += $(call check_ld,--sort-common,) |
| + | CHECKED_LDFLAGS += $(call check_ld,$(LD),--sort-common,) |
| endif | |
| ifneq ($(strip $(CONFIG_DEBUG_PESSIMIZE)),y) | |
| @@ -224,27 +280,26 @@ endif | |
| # warn a bit more verbosely for non-release versions | |
| ifneq ($(EXTRAVERSION),) | |
| - | CHECKED_CFLAGS+=$(call check_gcc,-Wstrict-prototypes,) |
| - | CHECKED_CFLAGS+=$(call check_gcc,-Wmissing-prototypes,) |
| - | CHECKED_CFLAGS+=$(call check_gcc,-Wmissing-declarations,) |
| - | CHECKED_CFLAGS+=$(call check_gcc,-Wunused,) |
| - | CHECKED_CFLAGS+=$(call check_gcc,-Winit-self,) |
| - | CHECKED_CFLAGS+=$(call check_gcc,-Wshadow,) |
| - | CHECKED_CFLAGS+=$(call check_gcc,-Wcast-align,) |
| + | CHECKED_CFLAGS+=$(call check_cc,$(CC),-Wstrict-prototypes,) |
| + | CHECKED_CFLAGS+=$(call check_cc,$(CC),-Wmissing-prototypes,) |
| + | CHECKED_CFLAGS+=$(call check_cc,$(CC),-Wmissing-declarations,) |
| + | CHECKED_CFLAGS+=$(call check_cc,$(CC),-Wunused,) |
| + | CHECKED_CFLAGS+=$(call check_cc,$(CC),-Winit-self,) |
| + | CHECKED_CFLAGS+=$(call check_cc,$(CC),-Wshadow,) |
| + | CHECKED_CFLAGS+=$(call check_cc,$(CC),-Wcast-align,) |
| endif | |
| - | STRIPCMD:=$(STRIP) -s --remove-section=.note --remove-section=.comment |
| + | STRIPCMD:=$(call check_strip,$(STRIP),-s --remove-section=.note --remove-section=.comment,$(STRIP)) |
| ifeq ($(strip $(CONFIG_STATIC)),y) | |
| - | PROG_CFLAGS += $(call check_gcc,-static,) |
| + | PROG_CFLAGS += $(call check_cc,$(CC),-static,) |
| endif | |
| - | CFLAGS_SHARED := $(call check_gcc,-shared,) |
| + | CFLAGS_SHARED := $(call check_cc,$(CC),-shared,) |
| LIB_CFLAGS+=$(CFLAGS_SHARED) | |
| ifeq ($(strip $(CONFIG_BUILD_LIBBUSYBOX)),y) | |
| - | CFLAGS_PIC:= $(call check_gcc,-fPIC,) |
| + | CFLAGS_PIC:= $(call check_cc,$(CC),-fPIC,) |
| LIB_CFLAGS+=$(CFLAGS_PIC) | |
| endif | |
| - | |
| ifeq ($(strip $(CONFIG_SELINUX)),y) | |
| LIBRARIES += -lselinux | |
| endif | |
| @@ -253,6 +308,10 @@ ifeq ($(strip $(PREFIX)),) | |
| PREFIX:=`pwd`/_install | |
| endif | |
| + | #ifneq ($(strip $(CONFIG_GETOPT_LONG)),y) |
| + | # CFLAGS += -D__need_getopt |
| + | #endif |
| + | |
| # Additional complications due to support for pristine source dir. | |
| # Include files in the build directory should take precedence over | |
| # the copy in top_srcdir, both during the compilation phase and the | |
| @@ -261,7 +320,9 @@ endif | |
| OBJECTS:=$(APPLET_SOURCES:.c=.o) busybox.o usage.o applets.o | |
| - | CFLAGS += $(CHECKED_CFLAGS) $(CROSS_CFLAGS) |
| + | CFLAGS += $(CHECKED_CFLAGS) $(CROSS_CFLAGS) |
| + | LDFLAGS += $(CHECKED_LDFLAGS) |
| + | |
| ifdef BB_INIT_SCRIPT | |
| CFLAGS += -DINIT_SCRIPT='"$(BB_INIT_SCRIPT)"' | |
| endif | |