diff options
-rw-r--r-- | Makefile | 85 | ||||
-rw-r--r-- | Rules.mak | 22 |
2 files changed, 58 insertions, 49 deletions
@@ -43,18 +43,36 @@ _all: CONFIG_CONFIG_IN = $(top_srcdir)/Config.in -ifeq ($(KBUILD_SRC),) - +ifeq ($(BUILD_SRC),) ifdef O ifeq ("$(origin O)", "command line") - KBUILD_OUTPUT := $(O) + BUILD_OUTPUT := $(O) top_builddir := $(O) endif else # If no alternate output-dir was specified, we build in cwd -# We are using KBUILD_OUTPUT nevertheless to make sure that we create +# We are using BUILD_OUTPUT nevertheless to make sure that we create # Rules.mak and the toplevel Makefile, in case they don't exist. - KBUILD_OUTPUT := $(top_builddir) + BUILD_OUTPUT := $(top_builddir) +endif + +# see if we are in verbose mode +BUILD_VERBOSE := +ifdef V + ifeq ("$(origin V)", "command line") + BUILD_VERBOSE := $(V) + endif +endif +ifdef VERBOSE + ifeq ("$(origin VERBOSE)", "command line") + BUILD_VERBOSE := $(VERBOSE) + endif +endif + +ifneq ($(strip $(BUILD_VERBOSE)),) + export BUILD_VERBOSE + CHECK_VERBOSE := -v +# ARFLAGS+=v endif ifneq ($(strip $(HAVE_DOT_CONFIG)),y) @@ -69,40 +87,40 @@ all_tree: $(all_tree) $(all_tree): @mkdir -p "$@" -ifneq ($(KBUILD_OUTPUT),) +ifneq ($(BUILD_OUTPUT),) # Invoke a second make in the output directory, passing relevant variables # Check that the output directory actually exists -saved-output := $(KBUILD_OUTPUT) -KBUILD_OUTPUT := $(shell cd $(KBUILD_OUTPUT) && /bin/pwd) -$(if $(wildcard $(KBUILD_OUTPUT)),, \ +saved-output := $(BUILD_OUTPUT) +BUILD_OUTPUT := $(shell cd $(BUILD_OUTPUT) && /bin/pwd) +$(if $(wildcard $(BUILD_OUTPUT)),, \ $(error output directory "$(saved-output)" does not exist)) .PHONY: $(MAKECMDGOALS) -$(filter-out _all,$(MAKECMDGOALS)) _all: $(KBUILD_OUTPUT)/Rules.mak $(KBUILD_OUTPUT)/Makefile all_tree - $(Q)$(MAKE) -C $(KBUILD_OUTPUT) \ +$(filter-out _all,$(MAKECMDGOALS)) _all: $(BUILD_OUTPUT)/Rules.mak $(BUILD_OUTPUT)/Makefile all_tree + $(Q)$(MAKE) -C $(BUILD_OUTPUT) \ top_srcdir=$(top_srcdir) \ top_builddir=$(top_builddir) \ - KBUILD_SRC=$(top_srcdir) \ + BUILD_SRC=$(top_srcdir) \ -f $(CURDIR)/Makefile $@ -$(KBUILD_OUTPUT)/Rules.mak: +$(BUILD_OUTPUT)/Rules.mak: @echo > $@ @echo top_srcdir=$(top_srcdir) >> $@ - @echo top_builddir=$(KBUILD_OUTPUT) >> $@ + @echo top_builddir=$(BUILD_OUTPUT) >> $@ @echo include $(top_srcdir)/Rules.mak >> $@ -$(KBUILD_OUTPUT)/Makefile: +$(BUILD_OUTPUT)/Makefile: @echo > $@ @echo top_srcdir=$(top_srcdir) >> $@ - @echo top_builddir=$(KBUILD_OUTPUT) >> $@ - @echo KBUILD_SRC='$$(top_srcdir)' >> $@ - @echo include '$$(KBUILD_SRC)'/Makefile >> $@ + @echo top_builddir=$(BUILD_OUTPUT) >> $@ + @echo BUILD_SRC='$$(top_srcdir)' >> $@ + @echo include '$$(BUILD_SRC)'/Makefile >> $@ # Leave processing to above invocation of make skip-makefile := 1 -endif # ifneq ($(KBUILD_OUTPUT),) -endif # ifeq ($(KBUILD_SRC),) +endif # ifneq ($(BUILD_OUTPUT),) +endif # ifeq ($(BUILD_SRC),) ifeq ($(skip-makefile),) @@ -305,13 +323,9 @@ $(LIBBUSYBOX_SONAME): ifndef MAJOR_VERSION $(error MAJOR_VERSION needed for $@ is not defined) endif - $(do_link) $(LIB_CFLAGS) $(CFLAGS_COMBINE) \ + $(do_link.so) \ -Wl,-soname=$(LD_LIBBUSYBOX).$(MAJOR_VERSION) \ - -Wl,-z,combreloc $(LIB_LDFLAGS) \ - -o $(@) \ - $(LD_START_GROUP) $(LD_WHOLE_ARCHIVE) \ - $(LIBRARY_DEFINE) $(^) \ - $(LD_NO_WHOLE_ARCHIVE) $(LD_END_GROUP) + -Wl,-z,combreloc @rm -f $(DO_INSTALL_LIBS) @for i in $(DO_INSTALL_LIBS); do ln -s $(@) $$i ; done $(do_strip) @@ -319,12 +333,7 @@ endif 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 $@ $(LD_START_GROUP) \ - $(APPLETS_DEFINE) $(APPLET_SRC) \ - $(BUSYBOX_DEFINE) $(BUSYBOX_SRC) $(libraries-y) \ - $(LDBUSYBOX) $(LIBRARIES) \ - $(LD_END_GROUP) + $(do_link) busybox: busybox_unstripped $(Q)cp busybox_unstripped busybox @@ -359,18 +368,6 @@ ifneq ($(strip $(DO_INSTALL_LIBS)),n) done endif -# see if we are in verbose mode -KBUILD_VERBOSE := -ifdef V - ifeq ("$(origin V)", "command line") - KBUILD_VERBOSE := $(V) - endif -endif -ifneq ($(strip $(KBUILD_VERBOSE)),) - CHECK_VERBOSE := -v -# ARFLAGS+=v -endif - check test: busybox bindir=$(top_builddir) srcdir=$(top_srcdir)/testsuite SED="$(SED)" \ $(SHELL) $(top_srcdir)/testsuite/runtest $(CHECK_VERBOSE) @@ -103,7 +103,7 @@ 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 everytime it is # referenced. -ifeq ($(strip $(V)),2) +ifeq ($(strip $(BUILD_VERBOSE)),2) VERBOSE_CHECK_CC=echo CC=\"$(1)\" check_cc $(2) >&2; endif check_cc=$(shell \ @@ -120,7 +120,7 @@ check_cc:= endif # A not very robust macro to check for available ld flags -ifeq ($(strip $(V)),2) +ifeq ($(strip $(BUILD_VERBOSE)),2) VERBOSE_CHECK_LD=echo LD=\"$(1)\" check_ld $(2) >&2; endif check_ld=$(shell \ @@ -135,7 +135,7 @@ check_ld:= endif # A not very robust macro to check for available strip flags -ifeq ($(strip $(V)),2) +ifeq ($(strip $(BUILD_VERBOSE)),2) VERBOSE_CHECK_STRIP=echo STRIPCMD=\"$(1)\" check_strip $(2) >&2; endif check_strip=$(shell \ @@ -365,7 +365,7 @@ SECHO := @-false DISP := sil Q := @ else -ifneq ($(V)$(VERBOSE),) +ifneq ($(BUILD_VERBOSE),) SECHO := @-false DISP := ver Q := @@ -410,7 +410,18 @@ disp_elf2flt = $($(DISP)_disp_elf2flt) cmd_compile.c = $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $< cmd_compile.h = $(HOSTCC) $(HOSTCFLAGS) $(INCS) -c -o $@ $< cmd_strip = $(STRIPCMD) $@ -cmd_link = $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(LDFLAGS) +cmd_link = $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(LDFLAGS) \ + $(PROG_CFLAGS) $(PROG_LDFLAGS) $(CFLAGS_COMBINE) \ + -o $@ $(LD_START_GROUP) \ + $(APPLETS_DEFINE) $(APPLET_SRC) \ + $(BUSYBOX_DEFINE) $(BUSYBOX_SRC) $(libraries-y) \ + $(LDBUSYBOX) $(LIBRARIES) \ + $(LD_END_GROUP) +cmd_link.so = $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(LDFLAGS) \ + $(LIB_CFLAGS) $(CFLAGS_COMBINE) $(LIB_LDFLAGS) \ + -o $(@) $(LD_START_GROUP) $(LD_WHOLE_ARCHIVE) \ + $(LIBRARY_DEFINE) $(^) \ + $(LD_NO_WHOLE_ARCHIVE) $(LD_END_GROUP) cmd_link.h = $(HOSTCC) $(HOSTCFLAGS) $(INCS) $< -o $@ cmd_ar = $(AR) $(ARFLAGS) $@ $^ cmd_elf2flt = $(ELF2FLT) $(ELF2FLTFLAGS) $< -o $@ @@ -418,6 +429,7 @@ compile.c = @$(disp_compile.c) ; $(cmd_compile.c) compile.h = @$(disp_compile.h) ; $(cmd_compile.h) do_strip = @$(disp_strip) ; $(cmd_strip) do_link = @$(disp_link) ; $(cmd_link) +do_link.so = @$(disp_link) ; $(cmd_link.so) do_link.h = @$(disp_link.h) ; $(cmd_link.h) do_ar = @$(disp_ar) ; $(cmd_ar) do_elf2flt = @$(disp_elf2flt) ; $(cmd_elf2flt) |