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 /package | |
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 'package')
-rw-r--r-- | package/Makefile.in | 10 | ||||
-rw-r--r-- | package/busybox/busybox.mk | 8 |
2 files changed, 11 insertions, 7 deletions
diff --git a/package/Makefile.in b/package/Makefile.in index 3cbf6321d..fc0f020b4 100644 --- a/package/Makefile.in +++ b/package/Makefile.in @@ -69,7 +69,11 @@ DL_DIR:=$(BASE_DIR)/dl endif #PATCH_DIR=$(BASE_DIR)/sources/patches BUILD_DIR:=$(BASE_DIR)/$(TOPDIR_PREFIX)build_$(ARCH)$(ARCH_FPU_SUFFIX)$(TOPDIR_SUFFIX) -TARGET_DIR:=$(BUILD_DIR)/root + +PROJECT_BUILD_DIR:=$(BASE_DIR)/$(TOPDIR_PREFIX)project_build_$(ARCH)$(ARCH_FPU_SUFFIX)$(TOPDIR_SUFFIX)/$(PROJECT) +BINARIES_DIR:=$(BASE_DIR)/binaries/$(PROJECT) +TARGET_DIR:=$(PROJECT_BUILD_DIR)/root + GNU_TARGET_SUFFIX:=-$(strip $(subst ",, $(BR2_GNU_TARGET_SUFFIX))) #")) @@ -81,7 +85,7 @@ TOOL_BUILD_DIR=$(BASE_DIR)/$(TOPDIR_PREFIX)toolchain_build_$(ARCH)$(ARCH_FPU_SUF # Quotes are needed for spaces et al in path components. TARGET_PATH="$(TOOL_BUILD_DIR)/bin:$(STAGING_DIR)/bin:$(STAGING_DIR)/usr/bin:$(PATH)" -IMAGE:=$(BASE_DIR)/rootfs.$(ARCH)$(ARCH_FPU_SUFFIX) +IMAGE:=$(BINARIES_DIR)/rootfs.$(ARCH)$(ARCH_FPU_SUFFIX) GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-linux REAL_GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)$(GNU_TARGET_SUFFIX) TARGET_CROSS=$(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)- @@ -93,7 +97,7 @@ TOOLCHAIN_EXTERNAL_PATH:=$(strip $(subst ",, $(BR2_TOOLCHAIN_EXTERNAL_PATH))) #")) TOOL_BUILD_DIR=$(BASE_DIR)/$(TOPDIR_PREFIX)toolchain_build_$(TOOLCHAIN_EXTERNAL_PREFIX) TARGET_PATH="$(STAGING_DIR)/bin:$(TOOL_BUILD_DIR)/bin:$(TOOLCHAIN_EXTERNAL_PATH)/bin:$(PATH)" -IMAGE:=$(BASE_DIR)/rootfs.$(TOOLCHAIN_EXTERNAL_PREFIX) +IMAGE:=$(BINARIES_DIR)/rootfs.$(TOOLCHAIN_EXTERNAL_PREFIX) REAL_GNU_TARGET_NAME=$(TOOLCHAIN_EXTERNAL_PREFIX) GNU_TARGET_NAME=$(TOOLCHAIN_EXTERNAL_PREFIX) KERNEL_CROSS=$(TOOLCHAIN_EXTERNAL_PATH)/bin/$(TOOLCHAIN_EXTERNAL_PREFIX)- diff --git a/package/busybox/busybox.mk b/package/busybox/busybox.mk index 4d3511f6f..7c62c40d9 100644 --- a/package/busybox/busybox.mk +++ b/package/busybox/busybox.mk @@ -7,13 +7,13 @@ ifeq ($(strip $(BR2_PACKAGE_BUSYBOX_SNAPSHOT)),y) # Be aware that this changes daily.... -BUSYBOX_DIR:=$(BUILD_DIR)/busybox +BUSYBOX_DIR:=$(PROJECT_BUILD_DIR)/busybox BUSYBOX_SOURCE:=busybox-snapshot.tar.bz2 BUSYBOX_SITE:=http://www.busybox.net/downloads/snapshots else BUSYBOX_VERSION=$(strip $(subst ",, $(BR2_BUSYBOX_VERSION))) #")) -BUSYBOX_DIR:=$(BUILD_DIR)/busybox-$(BUSYBOX_VERSION) +BUSYBOX_DIR:=$(PROJECT_BUILD_DIR)/busybox-$(BUSYBOX_VERSION) BUSYBOX_SOURCE:=busybox-$(BUSYBOX_VERSION).tar.bz2 BUSYBOX_SITE:=http://www.busybox.net/downloads endif @@ -31,7 +31,7 @@ $(DL_DIR)/$(BUSYBOX_SOURCE): busybox-source: $(DL_DIR)/$(BUSYBOX_SOURCE) $(BUSYBOX_CONFIG_FILE) dependencies $(BUSYBOX_DIR)/.unpacked: $(DL_DIR)/$(BUSYBOX_SOURCE) - $(BUSYBOX_UNZIP) $(DL_DIR)/$(BUSYBOX_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - + $(BUSYBOX_UNZIP) $(DL_DIR)/$(BUSYBOX_SOURCE) | tar -C $(PROJECT_BUILD_DIR) $(TAR_OPTIONS) - ifeq ($(BR2_PACKAGE_SYSKLOGD),y) # if we have external syslogd, force busybox to use it $(SED) "/#include.*busybox\.h/a#define CONFIG_SYSLOGD" $(BUSYBOX_DIR)/init/init.c @@ -127,7 +127,7 @@ endif busybox: uclibc $(TARGET_DIR)/bin/busybox -busybox-menuconfig: host-sed $(BUILD_DIR) busybox-source $(BUSYBOX_DIR)/.configured +busybox-menuconfig: host-sed $(PROJECT_BUILD_DIR) busybox-source $(BUSYBOX_DIR)/.configured $(MAKE) __TARGET_ARCH=$(ARCH) -C $(BUSYBOX_DIR) menuconfig cp -f $(BUSYBOX_DIR)/.config $(BUSYBOX_CONFIG_FILE) |