aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorGravatar Ulf Samuelsson <ulf.samuelsson@atmel.com>2007-07-12 13:11:03 +0000
committerGravatar Ulf Samuelsson <ulf.samuelsson@atmel.com>2007-07-12 13:11:03 +0000
commit412ca2a4d4072b5d4d2fa819d62f6a8848ff7fda (patch)
tree0181b9f0673b2cbe494b4ef025aac7cfb26649c0 /Makefile
parent7def55591de471e6fa2e7921dfdf71c84a308cae (diff)
downloadbuildroot-412ca2a4d4072b5d4d2fa819d62f6a8848ff7fda.tar.gz
buildroot-412ca2a4d4072b5d4d2fa819d62f6a8848ff7fda.tar.bz2
BSP Patch:
========================================================= The purpose of the BSP patch is to allow building several boards inside the same buildroot tree. For this to work, each board has to have its own "$(TARGET_DIR)" and all *configurable* packages must be rebuilt for each board. They are now built in the "$(PROJECT_BUILD_DIR)" All non configurable packages can and should still be built in the "$(BUILD_DIR)". If a package is built for one board, then when you build for a second board of the same architecture the build becomes a simple copy of the resulting binaries. ----- Define BR2_PROJECT which will be used as the selector between different boards. Note that BR2_PROJECT allow you to build multiple root file systems for a single board, and should not be confused with BR2_BOARD_NAME which relates to the H/W. ----- Define PROJECT_BUILD_DIR as "PROJECT_BUILD_DIR/$(PROJECT)" Define BINARIES_DIR as "binaries/$(PROJECT)" Define TARGET_DIR as "$(PROJECT_BUILD_DIR)/root" (some prefix/postfix may apply) Resulting images are stored in "$(BINARIES_DIR)" ----- Define a few new environment variables in Makefile PROJECT: Stripped BR2_PROJECT DATE: Date of build in YYYY-MM-DD format HOSTNAME: Stripped BR2_HOSTNAME => /etc/hostname BANNER: Stripped BR2_BANNER => /etc/issue Linux and Busybox will be built in $(PROJECT_BUILD_DIR) More patches will be needed later to ensure all configurable packages are built in this directory.
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile34
1 files changed, 27 insertions, 7 deletions
diff --git a/Makefile b/Makefile
index d2c4b71835..d32807265f 100644
--- a/Makefile
+++ b/Makefile
@@ -155,6 +155,12 @@ TARGETS:=uclibc-configured binutils gcc uclibc-target-utils
else
TARGETS:=uclibc
endif
+
+PROJECT:=$(strip $(subst ",, $(BR2_PROJECT)))
+HOSTNAME:=$(strip $(subst ",, $(BR2_HOSTNAME)))
+BANNER:=$(strip $(subst ",, $(BR2_BANNER)))
+
+
include toolchain/Makefile.in
include package/Makefile.in
@@ -183,12 +189,14 @@ TARGETS_CLEAN:=$(patsubst %,%-clean,$(TARGETS))
TARGETS_SOURCE:=$(patsubst %,%-source,$(TARGETS))
TARGETS_DIRCLEAN:=$(patsubst %,%-dirclean,$(TARGETS))
-world: $(DL_DIR) $(BUILD_DIR) $(STAGING_DIR) $(TARGET_DIR) $(TARGETS)
-dirs: $(DL_DIR) $(BUILD_DIR) $(STAGING_DIR)
+world: $(DL_DIR) $(BUILD_DIR) $(PROJECT_BUILD_DIR) \
+ $(BINARIES_DIR) $(STAGING_DIR) $(TARGET_DIR) bsp $(TARGETS)
+dirs: $(DL_DIR) $(BUILD_DIR) $(PROJECT_BUILD_DIR) $(STAGING_DIR)
-.PHONY: all world dirs clean dirclean distclean source $(TARGETS) \
+.PHONY: all world dirs clean dirclean distclean source bsp $(TARGETS) \
$(TARGETS_CLEAN) $(TARGETS_DIRCLEAN) $(TARGETS_SOURCE) \
- $(DL_DIR) $(BUILD_DIR) $(TOOL_BUILD_DIR) $(STAGING_DIR)
+ $(DL_DIR) $(BUILD_DIR) $(TOOL_BUILD_DIR) $(STAGING_DIR) \
+ $(PROJECT_BUILD_DIR) $(BINARIES_DIR)
#############################################################
#
@@ -196,7 +204,8 @@ dirs: $(DL_DIR) $(BUILD_DIR) $(STAGING_DIR)
# dependencies anywhere else
#
#############################################################
-$(DL_DIR) $(BUILD_DIR) $(TOOL_BUILD_DIR):
+$(DL_DIR) $(BUILD_DIR) $(TOOL_BUILD_DIR) \
+ $(PROJECT_BUILD_DIR) $(BINARIES_DIR) :
@mkdir -p $@
$(STAGING_DIR):
@@ -221,6 +230,16 @@ $(TARGET_DIR):
-find $(TARGET_DIR) -type d -name CVS | xargs rm -rf
-find $(TARGET_DIR) -type d -name .svn | xargs rm -rf
+bsp: $(TARGET_DIR)/etc/issue $(TARGET_DIR)/etc/hostname
+
+$(TARGET_DIR)/etc/issue: $(TARGET_DIR) .config
+ echo "" > $(TARGET_DIR)/etc/issue
+ echo "" >> $(TARGET_DIR)/etc/issue
+ echo "$(BANNER)" >> $(TARGET_DIR)/etc/issue
+
+$(TARGET_DIR)/etc/hostname: $(TARGET_DIR) .config
+ echo "$(HOSTNAME)" > $(TARGET_DIR)/etc/hostname
+
source: $(TARGETS_SOURCE) $(HOST_SOURCE)
.config.check: dependencies
@@ -245,12 +264,13 @@ distclean:
ifeq ($(DL_DIR),$(BASE_DIR)/dl)
rm -rf $(DL_DIR)
endif
- rm -rf $(BUILD_DIR) $(LINUX_KERNEL) $(IMAGE) $(BASE_DIR)/include \
+ rm -rf $(BUILD_DIR) $(PROJECT_BUILD_DIR) $(BINARIES_DIR) \
+ $(LINUX_KERNEL) $(IMAGE) $(BASE_DIR)/include \
.config.cmd
$(MAKE) -C $(CONFIG) clean
sourceball:
- rm -rf $(BUILD_DIR)
+ rm -rf $(BUILD_DIR) $(PROJECT_BUILD_DIR) $(BINARIES_DIR)
set -e; \
cd ..; \
rm -f buildroot.tar.bz2; \