diff options
author | Ulf Samuelsson <ulf.samuelsson@atmel.com> | 2007-07-12 13:11:03 +0000 |
---|---|---|
committer | Ulf Samuelsson <ulf.samuelsson@atmel.com> | 2007-07-12 13:11:03 +0000 |
commit | 412ca2a4d4072b5d4d2fa819d62f6a8848ff7fda (patch) | |
tree | 0181b9f0673b2cbe494b4ef025aac7cfb26649c0 /Makefile | |
parent | 7def55591de471e6fa2e7921dfdf71c84a308cae (diff) |
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-- | Makefile | 34 |
1 files changed, 27 insertions, 7 deletions
@@ -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; \ |