diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 168 |
1 files changed, 84 insertions, 84 deletions
@@ -18,6 +18,9 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# This top-level Makefile can *not* be executed in parallel +.NOTPARALLEL: + #-------------------------------------------------------------- # Just run 'make menuconfig', configure stuff, then run 'make'. # You shouldn't need to mess with anything beyond this point... @@ -25,12 +28,11 @@ # absolute path TOPDIR:=$(shell pwd) CONFIG_CONFIG_IN=Config.in -CONFIG_DEFCONFIG=.defconfig CONFIG=package/config DATE:=$(shell date +%Y%m%d) -noconfig_targets:=menuconfig gconfig xconfig config oldconfig randconfig \ - defconfig allyesconfig allnoconfig release \ +noconfig_targets:=menuconfig nconfig gconfig xconfig config oldconfig randconfig \ + defconfig %_defconfig savedefconfig allyesconfig allnoconfig silentoldconfig release \ randpackageconfig allyespackageconfig allnopackageconfig \ source-check help @@ -46,6 +48,7 @@ space:=$(empty) $(empty) ifneq ("$(origin O)", "command line") O:=output CONFIG_DIR:=$(TOPDIR) +NEED_WRAPPER= else # other packages might also support Linux-style out of tree builds # with the O=<dir> syntax (E.G. Busybox does). As make automatically @@ -61,6 +64,7 @@ override O:=$(O) CONFIG_DIR:=$(O) # we need to pass O= everywhere we call back into the toplevel makefile EXTRAMAKEARGS = O=$(O) +NEED_WRAPPER=y endif # $(shell find . -name *_defconfig |sed 's/.*\///') @@ -245,21 +249,10 @@ ifeq ($(ARCH),xtensa) ARCH:=$(ARCH)_$(call qstrip,$(BR2_xtensa_core_name)) endif -WGET:=$(call qstrip,$(BR2_WGET)) $(SPIDER) $(QUIET) -SVN_CO:=$(call qstrip,$(BR2_SVN_CO)) $(QUIET) -SVN_UP:=$(call qstrip,$(BR2_SVN_UP)) $(QUIET) -BZR_CO:=$(call qstrip,$(BR2_BZR_CO)) $(QUIET) -BZR_UP:=$(call qstrip,$(BR2_BZR_UP)) $(QUIET) -GIT:=$(call qstrip,$(BR2_GIT)) $(QUIET) ZCAT:=$(call qstrip,$(BR2_ZCAT)) BZCAT:=$(call qstrip,$(BR2_BZCAT)) TAR_OPTIONS=$(call qstrip,$(BR2_TAR_OPTIONS)) -xf -DL_DIR=$(call qstrip,$(BR2_DL_DIR)) -ifeq ($(DL_DIR),) -DL_DIR:=$(TOPDIR)/dl -endif - GNU_TARGET_SUFFIX:=-$(call qstrip,$(BR2_GNU_TARGET_SUFFIX)) STAGING_DIR:=$(call qstrip,$(BR2_STAGING_DIR)) @@ -323,20 +316,20 @@ TARGETS_ALL:=$(patsubst %,__real_tgt_%,$(TARGETS)) # all targets depend on the crosscompiler and it's prerequisites $(TARGETS_ALL): __real_tgt_%: $(BASE_TARGETS) % -$(BR2_DEPENDS_DIR): $(CONFIG_DIR)/.config -# rm -rf $@ -# mkdir -p $(@D) -# cp -dpRf $(CONFIG)/buildroot-config $@ - dirs: $(DL_DIR) $(TOOLCHAIN_DIR) $(BUILD_DIR) $(STAGING_DIR) $(TARGET_DIR) \ $(HOST_DIR) $(BR2_DEPENDS_DIR) $(BINARIES_DIR) $(STAMP_DIR) $(BASE_TARGETS): dirs -world: dependencies dirs $(BASE_TARGETS) $(TARGETS_ALL) +$(BUILD_DIR)/buildroot-config/auto.conf: $(CONFIG_DIR)/.config + $(MAKE) $(EXTRAMAKEARGS) silentoldconfig + +prepare: $(BUILD_DIR)/buildroot-config/auto.conf + +world: prepare dependencies dirs $(BASE_TARGETS) $(TARGETS_ALL) -.PHONY: all world dirs clean distclean source \ +.PHONY: all world dirs clean distclean source outputmakefile \ $(BASE_TARGETS) $(TARGETS) $(TARGETS_ALL) \ $(TARGETS_CLEAN) $(TARGETS_DIRCLEAN) $(TARGETS_SOURCE) \ $(DL_DIR) $(TOOLCHAIN_DIR) $(BUILD_DIR) $(STAGING_DIR) $(TARGET_DIR) \ @@ -400,13 +393,17 @@ ifneq ($(BR2_HAVE_DOCUMENTATION),y) rm -rf $(TARGET_DIR)/usr/share/gtk-doc endif find $(TARGET_DIR) -type f -perm +111 | xargs $(STRIPCMD) 2>/dev/null || true + mkdir -p $(TARGET_DIR)/etc + # Mandatory configuration file and auxilliary cache directory + # for recent versions of ldconfig + touch $(TARGET_DIR)/etc/ld.so.conf + mkdir -p $(TARGET_DIR)/var/cache/ldconfig if [ -x "$(TARGET_CROSS)ldconfig" ]; \ then \ - $(TARGET_CROSS)ldconfig -r $(TARGET_DIR) 2>/dev/null; \ + $(TARGET_CROSS)ldconfig -r $(TARGET_DIR); \ else \ - /sbin/ldconfig -r $(TARGET_DIR) 2>/dev/null; \ + /sbin/ldconfig -r $(TARGET_DIR); \ fi - mkdir -p $(TARGET_DIR)/etc echo $(BR2_VERSION)$(shell $(TOPDIR)/scripts/setlocalversion) > \ $(TARGET_DIR)/etc/br-version @@ -434,11 +431,10 @@ endif source: $(TARGETS_SOURCE) $(HOST_SOURCE) _source-check: - $(MAKE) $(EXTRAMAKEARGS) SPIDER=--spider source + $(MAKE) DL_MODE=SOURCE_CHECK $(EXTRAMAKEARGS) source external-deps: - @$(MAKE) -Bs BR2_WGET=$(TOPDIR)/toolchain/wget-show-external-deps.sh \ - $(EXTRAMAKEARGS) SPIDER=--spider source + @$(MAKE) -Bs DL_MODE=SHOW_EXTERNAL_DEPS $(EXTRAMAKEARGS) source show-targets: @echo $(TARGETS) @@ -464,99 +460,98 @@ export HOSTCFLAGS $(BUILD_DIR)/buildroot-config/%onf: mkdir -p $(@D)/lxdialog - $(MAKE) CC="$(HOSTCC)" obj=$(@D) -C $(CONFIG) $(@F) - -@if [ ! -f $(CONFIG_DIR)/.config ]; then \ - cp $(CONFIG_DEFCONFIG) $(CONFIG_DIR)/.config; \ + $(MAKE) CC="$(HOSTCC)" obj=$(@D) -C $(CONFIG) -f Makefile.br $(@F) + +COMMON_CONFIG_ENV = \ + KCONFIG_AUTOCONFIG=$(BUILD_DIR)/buildroot-config/auto.conf \ + KCONFIG_AUTOHEADER=$(BUILD_DIR)/buildroot-config/autoconf.h \ + KCONFIG_TRISTATE=$(BUILD_DIR)/buildroot-config/tristate.config \ + BUILDROOT_CONFIG=$(CONFIG_DIR)/.config + +xconfig: $(BUILD_DIR)/buildroot-config/qconf outputmakefile + @mkdir -p $(BUILD_DIR)/buildroot-config + @if ! $(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN); then \ + test -f $(CONFIG_DIR)/.config.cmd || rm -f $(CONFIG_DIR)/.config; \ fi -xconfig: $(BUILD_DIR)/buildroot-config/qconf +gconfig: $(BUILD_DIR)/buildroot-config/gconf outputmakefile @mkdir -p $(BUILD_DIR)/buildroot-config - @if ! KCONFIG_AUTOCONFIG=$(BUILD_DIR)/buildroot-config/auto.conf \ - KCONFIG_AUTOHEADER=$(BUILD_DIR)/buildroot-config/autoconf.h \ - BUILDROOT_CONFIG=$(CONFIG_DIR)/.config $< $(CONFIG_CONFIG_IN); then \ + @if ! $(COMMON_CONFIG_ENV) srctree=$(TOPDIR) \ + $< $(CONFIG_CONFIG_IN); then \ test -f $(CONFIG_DIR)/.config.cmd || rm -f $(CONFIG_DIR)/.config; \ fi -gconfig: $(BUILD_DIR)/buildroot-config/gconf +menuconfig: $(BUILD_DIR)/buildroot-config/mconf outputmakefile @mkdir -p $(BUILD_DIR)/buildroot-config - @if ! KCONFIG_AUTOCONFIG=$(BUILD_DIR)/buildroot-config/auto.conf \ - KCONFIG_AUTOHEADER=$(BUILD_DIR)/buildroot-config/autoconf.h \ - srctree=$(TOPDIR) \ - BUILDROOT_CONFIG=$(CONFIG_DIR)/.config $< $(CONFIG_CONFIG_IN); then \ + @if ! $(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN); then \ test -f $(CONFIG_DIR)/.config.cmd || rm -f $(CONFIG_DIR)/.config; \ fi -menuconfig: $(BUILD_DIR)/buildroot-config/mconf +nconfig: $(BUILD_DIR)/buildroot-config/nconf outputmakefile @mkdir -p $(BUILD_DIR)/buildroot-config - @if ! KCONFIG_AUTOCONFIG=$(BUILD_DIR)/buildroot-config/auto.conf \ - KCONFIG_AUTOHEADER=$(BUILD_DIR)/buildroot-config/autoconf.h \ - BUILDROOT_CONFIG=$(CONFIG_DIR)/.config $< $(CONFIG_CONFIG_IN); then \ + @if ! $(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN); then \ test -f $(CONFIG_DIR)/.config.cmd || rm -f $(CONFIG_DIR)/.config; \ fi -config: $(BUILD_DIR)/buildroot-config/conf +config: $(BUILD_DIR)/buildroot-config/conf outputmakefile @mkdir -p $(BUILD_DIR)/buildroot-config - @KCONFIG_AUTOCONFIG=$(BUILD_DIR)/buildroot-config/auto.conf \ - KCONFIG_AUTOHEADER=$(BUILD_DIR)/buildroot-config/autoconf.h \ - BUILDROOT_CONFIG=$(CONFIG_DIR)/.config $< $(CONFIG_CONFIG_IN) + @$(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN) -oldconfig: $(BUILD_DIR)/buildroot-config/conf +oldconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile mkdir -p $(BUILD_DIR)/buildroot-config - @KCONFIG_AUTOCONFIG=$(BUILD_DIR)/buildroot-config/auto.conf \ - KCONFIG_AUTOHEADER=$(BUILD_DIR)/buildroot-config/autoconf.h \ - BUILDROOT_CONFIG=$(CONFIG_DIR)/.config $< -o $(CONFIG_CONFIG_IN) + @$(COMMON_CONFIG_ENV) $< --oldconfig $(CONFIG_CONFIG_IN) -randconfig: $(BUILD_DIR)/buildroot-config/conf +randconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile @mkdir -p $(BUILD_DIR)/buildroot-config - @KCONFIG_AUTOCONFIG=$(BUILD_DIR)/buildroot-config/auto.conf \ - KCONFIG_AUTOHEADER=$(BUILD_DIR)/buildroot-config/autoconf.h \ - BUILDROOT_CONFIG=$(CONFIG_DIR)/.config $< -r $(CONFIG_CONFIG_IN) + @$(COMMON_CONFIG_ENV) $< --randconfig $(CONFIG_CONFIG_IN) -allyesconfig: $(BUILD_DIR)/buildroot-config/conf - cat $(CONFIG_DEFCONFIG) > $(CONFIG_DIR)/.config +allyesconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile @mkdir -p $(BUILD_DIR)/buildroot-config - @KCONFIG_AUTOCONFIG=$(BUILD_DIR)/buildroot-config/auto.conf \ - KCONFIG_AUTOHEADER=$(BUILD_DIR)/buildroot-config/autoconf.h \ - BUILDROOT_CONFIG=$(CONFIG_DIR)/.config $< -y $(CONFIG_CONFIG_IN) + @$(COMMON_CONFIG_ENV) $< --allyesconfig $(CONFIG_CONFIG_IN) -allnoconfig: $(BUILD_DIR)/buildroot-config/conf +allnoconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile @mkdir -p $(BUILD_DIR)/buildroot-config - @KCONFIG_AUTOCONFIG=$(BUILD_DIR)/buildroot-config/auto.conf \ - KCONFIG_AUTOHEADER=$(BUILD_DIR)/buildroot-config/autoconf.h \ - BUILDROOT_CONFIG=$(CONFIG_DIR)/.config $< -n $(CONFIG_CONFIG_IN) + @$(COMMON_CONFIG_ENV) $< --allnoconfig $(CONFIG_CONFIG_IN) -randpackageconfig: $(BUILD_DIR)/buildroot-config/conf +randpackageconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile @mkdir -p $(BUILD_DIR)/buildroot-config @grep -v BR2_PACKAGE_ $(CONFIG_DIR)/.config > $(CONFIG_DIR)/.config.nopkg - @KCONFIG_AUTOCONFIG=$(BUILD_DIR)/buildroot-config/auto.conf \ - KCONFIG_AUTOHEADER=$(BUILD_DIR)/buildroot-config/autoconf.h \ + @$(COMMON_CONFIG_ENV) \ KCONFIG_ALLCONFIG=$(CONFIG_DIR)/.config.nopkg \ - BUILDROOT_CONFIG=$(CONFIG_DIR)/.config $< -r $(CONFIG_CONFIG_IN) + $< --randconfig $(CONFIG_CONFIG_IN) @rm -f $(CONFIG_DIR)/.config.nopkg -allyespackageconfig: $(BUILD_DIR)/buildroot-config/conf +allyespackageconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile @mkdir -p $(BUILD_DIR)/buildroot-config @grep -v BR2_PACKAGE_ $(CONFIG_DIR)/.config > $(CONFIG_DIR)/.config.nopkg - @KCONFIG_AUTOCONFIG=$(BUILD_DIR)/buildroot-config/auto.conf \ - KCONFIG_AUTOHEADER=$(BUILD_DIR)/buildroot-config/autoconf.h \ + @$(COMMON_CONFIG_ENV) \ KCONFIG_ALLCONFIG=$(CONFIG_DIR)/.config.nopkg \ - BUILDROOT_CONFIG=$(CONFIG_DIR)/.config $< -y $(CONFIG_CONFIG_IN) + $< --allyesconfig $(CONFIG_CONFIG_IN) @rm -f $(CONFIG_DIR)/.config.nopkg -allnopackageconfig: $(BUILD_DIR)/buildroot-config/conf +allnopackageconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile @mkdir -p $(BUILD_DIR)/buildroot-config @grep -v BR2_PACKAGE_ $(CONFIG_DIR)/.config > $(CONFIG_DIR)/.config.nopkg - @KCONFIG_AUTOCONFIG=$(BUILD_DIR)/buildroot-config/auto.conf \ - KCONFIG_AUTOHEADER=$(BUILD_DIR)/buildroot-config/autoconf.h \ + @$(COMMON_CONFIG_ENV) \ KCONFIG_ALLCONFIG=$(CONFIG_DIR)/.config.nopkg \ - BUILDROOT_CONFIG=$(CONFIG_DIR)/.config $< -n $(CONFIG_CONFIG_IN) + $< --allnoconfig $(CONFIG_CONFIG_IN) @rm -f $(CONFIG_DIR)/.config.nopkg -defconfig: $(BUILD_DIR)/buildroot-config/conf +silentoldconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile + @mkdir -p $(BUILD_DIR)/buildroot-config + $(COMMON_CONFIG_ENV) $< --silentoldconfig $(CONFIG_CONFIG_IN) + +defconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile @mkdir -p $(BUILD_DIR)/buildroot-config - @KCONFIG_AUTOCONFIG=$(BUILD_DIR)/buildroot-config/auto.conf \ - KCONFIG_AUTOHEADER=$(BUILD_DIR)/buildroot-config/autoconf.h \ - BUILDROOT_CONFIG=$(CONFIG_DIR)/.config $< -d $(CONFIG_CONFIG_IN) + @$(COMMON_CONFIG_ENV) $< --defconfig $(CONFIG_CONFIG_IN) + +%_defconfig: $(BUILD_DIR)/buildroot-config/conf $(TOPDIR)/configs/%_defconfig outputmakefile + @mkdir -p $(BUILD_DIR)/buildroot-config + @$(COMMON_CONFIG_ENV) $< --defconfig=$(TOPDIR)/configs/$@ $(CONFIG_CONFIG_IN) + +savedefconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile + @mkdir -p $(BUILD_DIR)/buildroot-config + @$(COMMON_CONFIG_ENV) $< --savedefconfig=$(TOPDIR)/defconfig $(CONFIG_CONFIG_IN) # check if download URLs are outdated source-check: allyesconfig @@ -569,6 +564,15 @@ endif # ifeq ($(BR2_HAVE_DOT_CONFIG),y) # Cleanup and misc junk # ############################################################# + +# outputmakefile generates a Makefile in the output directory, if using a +# separate output directory. This allows convenient use of make in the +# output directory. +outputmakefile: +ifeq ($(NEED_WRAPPER),y) + $(Q)$(TOPDIR)/scripts/mkmakefile $(TOPDIR) $(O) +endif + clean: rm -rf $(STAGING_DIR) $(TARGET_DIR) $(BINARIES_DIR) $(HOST_DIR) \ $(STAMP_DIR) $(BUILD_DIR) $(TOOLCHAIN_DIR) @@ -585,10 +589,6 @@ endif flush: rm -f $(BUILD_DIR)/tgt-config.cache $(BUILD_DIR)/host-config.cache -%_defconfig: $(TOPDIR)/configs/%_defconfig - cp $^ $(CONFIG_DIR)/.config - @$(MAKE) $(EXTRAMAKEARGS) oldconfig - configured: dirs host-sed kernel-headers uclibc-config busybox-config linux26-config prepatch: gcc-patched binutils-patched gdb-patched uclibc-patched |