From cdd44e7984e86ef62b87229700533f571a1d9dff Mon Sep 17 00:00:00 2001
From: Jo-Philipp Wich <jow@openwrt.org>
Date: Tue, 27 Apr 2010 22:16:40 +0000
Subject: [PATCH] - correctly copy .config when scripts/env is used in the
 buildroot - prevent user provides PACKAGES from overriding per-profile
 defaults

SVN-Revision: 21213
---
 target/imagebuilder/Makefile       |  3 ++-
 target/imagebuilder/files/Makefile | 26 ++++++++++++++++++--------
 2 files changed, 20 insertions(+), 9 deletions(-)

diff --git a/target/imagebuilder/Makefile b/target/imagebuilder/Makefile
index e0b64ead47..42fb7bb69b 100644
--- a/target/imagebuilder/Makefile
+++ b/target/imagebuilder/Makefile
@@ -23,9 +23,10 @@ all: compile
 $(BIN_DIR)/$(IB_NAME).tar.bz2: clean
 	rm -rf $(PKG_BUILD_DIR)
 	mkdir -p $(IB_KDIR) $(PKG_BUILD_DIR)/staging_dir/host $(PKG_BUILD_DIR)/target
+	-cp $(TOPDIR)/.config $(PKG_BUILD_DIR)/.config
 	$(CP) \
 		$(INCLUDE_DIR) $(SCRIPT_DIR) \
-		$(TOPDIR)/rules.mk $(TOPDIR)/.config \
+		$(TOPDIR)/rules.mk \
 		./files/Makefile \
 		$(TMP_DIR)/.targetinfo \
 		$(TMP_DIR)/.packageinfo \
diff --git a/target/imagebuilder/files/Makefile b/target/imagebuilder/files/Makefile
index 49fd6db949..b72e3f1724 100644
--- a/target/imagebuilder/files/Makefile
+++ b/target/imagebuilder/files/Makefile
@@ -62,8 +62,8 @@ IPKG:= \
 define Profile
   $(eval $(call Profile/Default))
   $(eval $(call Profile/$(1)))
-  ifeq ($(PROFILE),)
-    PROFILE:=$(1)
+  ifeq ($(USER_PROFILE),)
+    USER_PROFILE:=$(1)
   endif
   $(1)_NAME:=$(NAME)
   $(1)_PACKAGES:=$(PACKAGES)
@@ -73,7 +73,7 @@ endef
 
 include $(INCLUDE_DIR)/target.mk
 
-info: FORCE
+_call_info: FORCE
 	echo 'Current Target: "$(BOARD)$(if $(SUBTARGET), ($(BOARDNAME)))"'
 	echo 'Default Packages: $(DEFAULT_PACKAGES)'
 	echo 'Available Profiles:'
@@ -84,19 +84,19 @@ $(TOPDIR)/tmp/ipkg.conf: FORCE
 	@echo 'dest root /' > $@
 	@echo 'src packages file:$(PACKAGE_DIR)' >> $@
 
-BUILD_PACKAGES:=$(sort $(DEFAULT_PACKAGES) $(PACKAGES) $($(PROFILE)_PACKAGES) kernel)
+BUILD_PACKAGES:=$(sort $(DEFAULT_PACKAGES) $(USER_PACKAGES) $($(USER_PROFILE)_PACKAGES) kernel)
 # "-pkgname" in the package list means remove "pkgname" from the package list
 BUILD_PACKAGES:=$(filter-out $(filter -%,$(BUILD_PACKAGES)) $(patsubst -%,%,$(filter -%,$(BUILD_PACKAGES))),$(BUILD_PACKAGES))
 
-image:
-	echo 'Building images for $(BOARD)$(if $($(PROFILE)_NAME), - $($(PROFILE)_NAME))'
+_call_image:
+	echo 'Building images for $(BOARD)$(if $($(USER_PROFILE)_NAME), - $($(USER_PROFILE)_NAME))'
 	echo 'Packages: $(BUILD_PACKAGES)'
 	echo
 	rm -rf $(TARGET_DIR)
 	mkdir -p $(TARGET_DIR) $(BIN_DIR) $(TMP_DIR)
 	$(MAKE) package_index
 	$(MAKE) package_install
-ifneq ($(FILES),)
+ifneq ($(USER_FILES),)
 	$(MAKE) copy_files
 endif
 	$(MAKE) package_postinst
@@ -118,7 +118,7 @@ package_install: FORCE
 copy_files: FORCE
 	@echo
 	@echo Copying extra files
-	$(CP) $(FILES)/* $(TARGET_DIR)/
+	$(CP) $(USER_FILES)/* $(TARGET_DIR)/
 
 package_postinst: FORCE
 	@echo
@@ -140,5 +140,15 @@ clean:
 	rm -rf tmp $(TARGET_DIR) $(BIN_DIR)
 
 
+info:
+	(unset PROFILE FILES PACKAGES MAKEFLAGS; $(MAKE) -s _call_info)
+
+image:
+	(unset PROFILE FILES PACKAGES MAKEFLAGS; \
+	$(MAKE) _call_image \
+		$(if $(PROFILE),USER_PROFILE="$(PROFILE)") \
+		$(if $(FILES),USER_FILES="$(FILES)") \
+		$(if $(PACKAGES),USER_PACKAGES="$(PACKAGES)"))
+
 .SILENT: help info image
 
-- 
GitLab