|
@@ -106,14 +106,8 @@ else ifneq ($(filter-out $(nobuild_targets),$(MAKECMDGOALS)),)
|
|
|
BR_BUILDING = y
|
|
|
endif
|
|
|
|
|
|
-# Strip quotes and then whitespaces
|
|
|
-qstrip = $(strip $(subst ",,$(1)))
|
|
|
-#"))
|
|
|
-
|
|
|
-# Variables for use in Make constructs
|
|
|
-comma := ,
|
|
|
-empty :=
|
|
|
-space := $(empty) $(empty)
|
|
|
+# Include some helper macros and variables
|
|
|
+include support/misc/utils.mk
|
|
|
|
|
|
ifneq ("$(origin O)", "command line")
|
|
|
O := output
|
|
@@ -206,6 +200,15 @@ LEGAL_LICENSES_TXT_HOST = $(LEGAL_INFO_DIR)/host-licenses.txt
|
|
|
LEGAL_WARNINGS = $(LEGAL_INFO_DIR)/.warnings
|
|
|
LEGAL_REPORT = $(LEGAL_INFO_DIR)/README
|
|
|
|
|
|
+################################################################################
|
|
|
+#
|
|
|
+# staging and target directories do NOT list these as
|
|
|
+# dependencies anywhere else
|
|
|
+#
|
|
|
+################################################################################
|
|
|
+$(BUILD_DIR) $(TARGET_DIR) $(HOST_DIR) $(BINARIES_DIR) $(LEGAL_INFO_DIR) $(REDIST_SOURCES_DIR_TARGET) $(REDIST_SOURCES_DIR_HOST):
|
|
|
+ @mkdir -p $@
|
|
|
+
|
|
|
BR2_CONFIG = $(CONFIG_DIR)/.config
|
|
|
|
|
|
# Pull in the user's configuration file
|
|
@@ -502,15 +505,6 @@ world: target-post-image
|
|
|
legal-info legal-info-prepare legal-info-clean printvars help \
|
|
|
list-defconfigs target-finalize target-post-image source-check
|
|
|
|
|
|
-################################################################################
|
|
|
-#
|
|
|
-# staging and target directories do NOT list these as
|
|
|
-# dependencies anywhere else
|
|
|
-#
|
|
|
-################################################################################
|
|
|
-$(BUILD_DIR) $(TARGET_DIR) $(HOST_DIR) $(BINARIES_DIR) $(LEGAL_INFO_DIR) $(REDIST_SOURCES_DIR_TARGET) $(REDIST_SOURCES_DIR_HOST):
|
|
|
- @mkdir -p $@
|
|
|
-
|
|
|
# Populating the staging with the base directories is handled by the skeleton package
|
|
|
$(STAGING_DIR):
|
|
|
@mkdir -p $(STAGING_DIR)
|
|
@@ -766,6 +760,9 @@ endif # ifeq ($(BR2_HAVE_DOT_CONFIG),y)
|
|
|
HOSTCFLAGS = $(CFLAGS_FOR_BUILD)
|
|
|
export HOSTCFLAGS
|
|
|
|
|
|
+.PHONY: prepare-kconfig
|
|
|
+prepare-kconfig: outputmakefile $(BUILD_DIR)/.br2-external.in
|
|
|
+
|
|
|
$(BUILD_DIR)/buildroot-config/%onf:
|
|
|
mkdir -p $(@D)/lxdialog
|
|
|
PKG_CONFIG_PATH="$(HOST_PKG_CONFIG_PATH)" $(MAKE) CC="$(HOSTCC_NOCCACHE)" HOSTCC="$(HOSTCC_NOCCACHE)" \
|
|
@@ -783,21 +780,22 @@ COMMON_CONFIG_ENV = \
|
|
|
BR2_CONFIG=$(BR2_CONFIG) \
|
|
|
BR2_EXTERNAL=$(BR2_EXTERNAL) \
|
|
|
HOST_GCC_VERSION="$(HOSTCC_VERSION)" \
|
|
|
+ BUILD_DIR=$(BUILD_DIR) \
|
|
|
SKIP_LEGACY=
|
|
|
|
|
|
-xconfig: $(BUILD_DIR)/buildroot-config/qconf outputmakefile
|
|
|
+xconfig: $(BUILD_DIR)/buildroot-config/qconf prepare-kconfig
|
|
|
@$(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN)
|
|
|
|
|
|
-gconfig: $(BUILD_DIR)/buildroot-config/gconf outputmakefile
|
|
|
+gconfig: $(BUILD_DIR)/buildroot-config/gconf prepare-kconfig
|
|
|
@$(COMMON_CONFIG_ENV) srctree=$(TOPDIR) $< $(CONFIG_CONFIG_IN)
|
|
|
|
|
|
-menuconfig: $(BUILD_DIR)/buildroot-config/mconf outputmakefile
|
|
|
+menuconfig: $(BUILD_DIR)/buildroot-config/mconf prepare-kconfig
|
|
|
@$(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN)
|
|
|
|
|
|
-nconfig: $(BUILD_DIR)/buildroot-config/nconf outputmakefile
|
|
|
+nconfig: $(BUILD_DIR)/buildroot-config/nconf prepare-kconfig
|
|
|
@$(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN)
|
|
|
|
|
|
-config: $(BUILD_DIR)/buildroot-config/conf outputmakefile
|
|
|
+config: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
|
|
|
@$(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN)
|
|
|
|
|
|
# For the config targets that automatically select options, we pass
|
|
@@ -805,22 +803,22 @@ config: $(BUILD_DIR)/buildroot-config/conf outputmakefile
|
|
|
# no values are set for the legacy options so a subsequent oldconfig
|
|
|
# will query them. Therefore, run an additional olddefconfig.
|
|
|
|
|
|
-oldconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
|
|
|
+oldconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
|
|
|
@$(COMMON_CONFIG_ENV) $< --oldconfig $(CONFIG_CONFIG_IN)
|
|
|
|
|
|
-randconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
|
|
|
+randconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
|
|
|
@$(COMMON_CONFIG_ENV) SKIP_LEGACY=y $< --randconfig $(CONFIG_CONFIG_IN)
|
|
|
@$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null
|
|
|
|
|
|
-allyesconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
|
|
|
+allyesconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
|
|
|
@$(COMMON_CONFIG_ENV) SKIP_LEGACY=y $< --allyesconfig $(CONFIG_CONFIG_IN)
|
|
|
@$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null
|
|
|
|
|
|
-allnoconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
|
|
|
+allnoconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
|
|
|
@$(COMMON_CONFIG_ENV) SKIP_LEGACY=y $< --allnoconfig $(CONFIG_CONFIG_IN)
|
|
|
@$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null
|
|
|
|
|
|
-randpackageconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
|
|
|
+randpackageconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
|
|
|
@grep -v BR2_PACKAGE_ $(BR2_CONFIG) > $(CONFIG_DIR)/.config.nopkg
|
|
|
@$(COMMON_CONFIG_ENV) SKIP_LEGACY=y \
|
|
|
KCONFIG_ALLCONFIG=$(CONFIG_DIR)/.config.nopkg \
|
|
@@ -828,7 +826,7 @@ randpackageconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
|
|
|
@rm -f $(CONFIG_DIR)/.config.nopkg
|
|
|
@$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null
|
|
|
|
|
|
-allyespackageconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
|
|
|
+allyespackageconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
|
|
|
@grep -v BR2_PACKAGE_ $(BR2_CONFIG) > $(CONFIG_DIR)/.config.nopkg
|
|
|
@$(COMMON_CONFIG_ENV) SKIP_LEGACY=y \
|
|
|
KCONFIG_ALLCONFIG=$(CONFIG_DIR)/.config.nopkg \
|
|
@@ -836,7 +834,7 @@ allyespackageconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
|
|
|
@rm -f $(CONFIG_DIR)/.config.nopkg
|
|
|
@$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null
|
|
|
|
|
|
-allnopackageconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
|
|
|
+allnopackageconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
|
|
|
@grep -v BR2_PACKAGE_ $(BR2_CONFIG) > $(CONFIG_DIR)/.config.nopkg
|
|
|
@$(COMMON_CONFIG_ENV) SKIP_LEGACY=y \
|
|
|
KCONFIG_ALLCONFIG=$(CONFIG_DIR)/.config.nopkg \
|
|
@@ -844,25 +842,24 @@ allnopackageconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
|
|
|
@rm -f $(CONFIG_DIR)/.config.nopkg
|
|
|
@$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null
|
|
|
|
|
|
-silentoldconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
|
|
|
+silentoldconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
|
|
|
$(COMMON_CONFIG_ENV) $< --silentoldconfig $(CONFIG_CONFIG_IN)
|
|
|
|
|
|
-olddefconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
|
|
|
+olddefconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
|
|
|
$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN)
|
|
|
|
|
|
-defconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
|
|
|
+defconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
|
|
|
@$(COMMON_CONFIG_ENV) $< --defconfig$(if $(DEFCONFIG),=$(DEFCONFIG)) $(CONFIG_CONFIG_IN)
|
|
|
|
|
|
+define percent_defconfig
|
|
|
# Override the BR2_DEFCONFIG from COMMON_CONFIG_ENV with the new defconfig
|
|
|
-%_defconfig: $(BUILD_DIR)/buildroot-config/conf $(TOPDIR)/configs/%_defconfig outputmakefile
|
|
|
- @$(COMMON_CONFIG_ENV) BR2_DEFCONFIG=$(TOPDIR)/configs/$@ \
|
|
|
- $< --defconfig=$(TOPDIR)/configs/$@ $(CONFIG_CONFIG_IN)
|
|
|
-
|
|
|
-%_defconfig: $(BUILD_DIR)/buildroot-config/conf $(BR2_EXTERNAL)/configs/%_defconfig outputmakefile
|
|
|
- @$(COMMON_CONFIG_ENV) BR2_DEFCONFIG=$(BR2_EXTERNAL)/configs/$@ \
|
|
|
- $< --defconfig=$(BR2_EXTERNAL)/configs/$@ $(CONFIG_CONFIG_IN)
|
|
|
+%_defconfig: $(BUILD_DIR)/buildroot-config/conf $(1)/configs/%_defconfig prepare-kconfig
|
|
|
+ @$$(COMMON_CONFIG_ENV) BR2_DEFCONFIG=$(1)/configs/$$@ \
|
|
|
+ $$< --defconfig=$(1)/configs/$$@ $$(CONFIG_CONFIG_IN)
|
|
|
+endef
|
|
|
+$(eval $(foreach d,$(TOPDIR) $(BR2_EXTERNAL),$(call percent_defconfig,$(d))$(sep)))
|
|
|
|
|
|
-savedefconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
|
|
|
+savedefconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
|
|
|
@$(COMMON_CONFIG_ENV) $< \
|
|
|
--savedefconfig=$(if $(DEFCONFIG),$(DEFCONFIG),$(CONFIG_DIR)/defconfig) \
|
|
|
$(CONFIG_CONFIG_IN)
|
|
@@ -884,6 +881,13 @@ ifeq ($(NEED_WRAPPER),y)
|
|
|
$(Q)$(TOPDIR)/support/scripts/mkmakefile $(TOPDIR) $(O)
|
|
|
endif
|
|
|
|
|
|
+# Even though the target is a real file, we mark it as PHONY as we
|
|
|
+# want it to be re-generated each time make is invoked, in case the
|
|
|
+# value of BR2_EXTERNAL is changed.
|
|
|
+.PHONY: $(BUILD_DIR)/.br2-external.in
|
|
|
+$(BUILD_DIR)/.br2-external.in: $(BUILD_DIR)
|
|
|
+ @touch $@
|
|
|
+
|
|
|
# printvars prints all the variables currently defined in our
|
|
|
# Makefiles. Alternatively, if a non-empty VARS variable is passed,
|
|
|
# only the variables matching the make pattern passed in VARS are
|