* [Buildroot] [RFC] [PATCH 0/5] Buildroot cleanup
@ 2009-09-07 22:09 Thomas Petazzoni
2009-09-07 22:09 ` [Buildroot] [PATCH 1/5] Remove the "project" feature Thomas Petazzoni
` (5 more replies)
0 siblings, 6 replies; 39+ messages in thread
From: Thomas Petazzoni @ 2009-09-07 22:09 UTC (permalink / raw)
To: buildroot
Hello,
I would like to propose a few patches to start a cleanup of
Buildroot. My goal is not only to cleanup Buildroot internally, but
also to clean it up so that it is easier to understand for our users.
This thread is meant to be a preliminary discussion only and is not
yet a request for inclusion, because :
* Some of the proposed changes remove features that I think confuse
our users and are not central in Buildroot operation, but others
might have different opinion on the matter ;
* The changes are relatively invasive and I did only limited testing
on them.
* The documentation is not updated with the changes. I'm waiting for
the community opinion on the changes before spending time to update
the documentation
While the commit logs gives all the details, I would like to give an
quick overview of the proposed changes :
1. Remove the "project" feature.
This feature is meant to allow an user to build a Linux system for
several similar platforms where the differences are only in
Busybox, kernel and U-Boot configuration. While this feature might
be useful in some very specific cases, my opinion is that it adds
far too much complexity in Buildroot compared to the added-value
it gives.
Removing this feature allows to instantly make the directory
layout a lot simpler to understand for a newcomer (no strane
project_build_ARCH directory anymore !)
2. Remove the BOARD/LOCAL feature.
This mechanism is a duplication of something that could already be
done in a different way: by adding a new target in target/device/.
3. By default, put the output directories in a single directory,
named output/.
Nothing complex, it just clarifies the tree for a new user.
4. Remove BR2_TOPDIR_PREFIX and BR2_TOPDIR_SUFFIX
The same thing can be done with O=
5. Rename the output directories with more sensible names.
In the output directory, we now have
- build/ where all the packages are built
- images/ where the final kernel and rootfs images are stored
- staging/ the staging directory (containing the development files
and libraries compiled for the target)
- target/ which contains the target root filesystem
- host/ which contains all the host programs
- stamps/ which contains the stamps files
Thanks for your input,
Thomas
^ permalink raw reply [flat|nested] 39+ messages in thread* [Buildroot] [PATCH 1/5] Remove the "project" feature 2009-09-07 22:09 [Buildroot] [RFC] [PATCH 0/5] Buildroot cleanup Thomas Petazzoni @ 2009-09-07 22:09 ` Thomas Petazzoni 2009-09-08 6:27 ` Hans-Christian Egtvedt 2009-09-08 7:06 ` Peter Korsgaard 2009-09-07 22:09 ` [Buildroot] [PATCH 2/5] Remove the BOARD/LOCAL feature Thomas Petazzoni ` (4 subsequent siblings) 5 siblings, 2 replies; 39+ messages in thread From: Thomas Petazzoni @ 2009-09-07 22:09 UTC (permalink / raw) To: buildroot The "project" feature was designed to allow to several projects to be built inside the same Buildroot source tree and allowing the toolchain and non-configurable packages to be shared between the different projects on the same architecture. While being interesting in theory, this feature adds a level of complexity to Buildroot, both from an user perspective and from a developer perspective, while one of the main Buildroot strengh is to be simple. Moreover, this feature is only seldomly used by our users. From a user-level perspective, this for example allows to remove the project_build_ARCH directory, which was very confusing. The autotools-stamps directory is also removed, since these stamps are back at their normal location. Description of the changes involved : * project/, directory removed * Makefile - Don't include project/Makefile.in and project/project.mk anymore - Grab a copy of the contents of project/Makefile.in at the location it was imported, but remove the definition related to PROJECT_BUILD_DIR. The TARGET_DIR is now in $(BUILD_DIR)/target_dir - Remove the creation/removal of the $(PROJECT_BUILD_DIR) and $(PROJECT_BUILD_DIR)/autotools-stamps directories - Don't make world depends on target-host-info. This target was defined by project/project.mk to customize /etc/issue, /etc/hostname and create /etc/br-version depending on the project definitions. We can of course imagine re-adding such a feature later. - Replace PROJECT_BUILD_DIR by BUILD_DIR everywhere - Remove the update, log and lognr.$(PROJECT) target, they were specific to the project feature. * package/Makefile.autotools.in - Replace PROJECT_BUILD_DIR by BUILD_DIR for the location of the configure cache - Move the INSTALL_TARGET and HOOK_POST_INSTALL stamps to the same directory as the other stamps (i.e, in the package directory). * package/Makefile.in - Replace PROJECT_BUILD_DIR by BUILD_DIR for the location of the configure cache * package/at/at.mk, package/busybox/busybox.mk, package/busybox/initramfs.mk, package/customize/customize.mk, package/linux-fusion/linux-fusion.mk, package/ltp-testsuite/ltp-testsuite.mk, package/nfs-utils/nfs-utils.mk, target/cpio/cpioroot.mk, target/cramfs/cramfs.mk, target/device/Atmel/DataFlashBoot/DataflashBoot.mk, target/device/Atmel/Makefile.in, target/device/Atmel/at91bootstrap/at91bootstrap.mk, target/device/KwikByte/Makefile.in, target/ext2/ext2root.mk, target/initramfs/initramfs.mk, target/iso9660/iso9660.mk, target/jffs2/jffs2root.mk, target/linux/Makefile.in, target/romfs/romfs.mk, target/squashfs/squashfsroot.mk, target/tar/tarroot.mk, target/ubifs/ubifsroot.mk - Replace PROJECT_BUILD_DIR by BUILD_DIR * target/device/Config.in - Do not include project/Config.in anymore * target/linux/Makefile.in.advanced - Replace PROJECT_BUILD_DIR by BUILD_DIR - Store the stamps file in $(STAMP_DIR) instead of $(PROJECT_BUILD_DIR)/autotools-stamps * target/u-boot/Makefile.in - Replace PROJECT_BUILD_DIR by BUILD_DIR - Remove $(PROJECT) from the U-Boot target binary name - Remove the insertion in the configuration of the project name as the hostname - The u-boot-autoscript target now generates $(U_BOOT_AUTOSCRIPT).img instead of $(U_BOOT_AUTOSCRIPT).$(PROJECT) * toolchain/gcc/gcc-uclibc-3.x.mk toolchain/gcc/gcc-uclibc-4.x.mk - Move the stamps files to $(STAMP_DIR) Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> --- Makefile | 113 ++++++++++++++------ package/Makefile.autotools.in | 9 +- package/at/at.mk | 6 +- package/busybox/busybox.mk | 12 +- package/busybox/initramfs.mk | 32 +++--- package/customize/customize.mk | 10 +- package/linux-fusion/linux-fusion.mk | 8 +- package/ltp-testsuite/ltp-testsuite.mk | 2 +- package/nfs-utils/nfs-utils.mk | 6 +- project/Config.in | 25 ----- project/Makefile.in | 77 ------------- project/project.mk | 52 --------- target/cpio/cpioroot.mk | 18 ++-- target/cramfs/cramfs.mk | 18 ++-- target/device/Atmel/DataFlashBoot/DataflashBoot.mk | 6 +- target/device/Atmel/Makefile.in | 4 +- target/device/Atmel/at91bootstrap/at91bootstrap.mk | 6 +- target/device/Config.in | 2 - target/device/KwikByte/Makefile.in | 4 +- target/ext2/ext2root.mk | 20 ++-- target/initramfs/initramfs.mk | 18 ++-- target/iso9660/iso9660.mk | 16 ++-- target/jffs2/jffs2root.mk | 20 ++-- target/linux/Makefile.in | 6 +- target/linux/Makefile.in.advanced | 26 +++--- target/romfs/romfs.mk | 18 ++-- target/squashfs/squashfsroot.mk | 18 ++-- target/tar/tarroot.mk | 18 ++-- target/u-boot/Makefile.in | 17 ++-- target/ubifs/ubifsroot.mk | 18 ++-- toolchain/gcc/gcc-uclibc-3.x.mk | 6 +- toolchain/gcc/gcc-uclibc-4.x.mk | 6 +- 32 files changed, 252 insertions(+), 365 deletions(-) delete mode 100644 project/Config.in delete mode 100644 project/Makefile.in delete mode 100644 project/project.mk diff --git a/Makefile b/Makefile index f2e349f..7a3cd17 100644 --- a/Makefile +++ b/Makefile @@ -217,10 +217,74 @@ BASE_TARGETS:=uclibc endif TARGETS:= -# setup our paths -include project/Makefile.in +# Strip off the annoying quoting +ARCH:=$(call qstrip,$(BR2_ARCH)) +ifeq ($(ARCH),xtensa) +ARCH:=$(ARCH)_$(call qstrip,$(BR2_xtensa_core_name)) +endif +WGET:=$(call qstrip,$(BR2_WGET)) $(SPIDER) $(QUIET) +SVN_CO:=$(call qstrip,$(BR2_SVN_CO)) $(QUIET) +SVN_UP:=$(call qstrip,$(BR2_SVN_UP)) $(QUIET) +GIT:=$(call qstrip,$(BR2_GIT)) $(QUIET) +ZCAT:=$(call qstrip,$(BR2_ZCAT)) +BZCAT:=$(call qstrip,$(BR2_BZCAT)) +TAR_OPTIONS=$(call qstrip,$(BR2_TAR_OPTIONS)) -xf + +# Buildroot supports building out of tree similarly to the Linux kernel. +# To use, add O= to the make command line (make O=/tmp/build) +BASE_DIR:=$(shell pwd) +ifdef O +ifeq ("$(origin O)", "command line") +BASE_DIR := $(shell mkdir -p $(O) && cd $(O) && pwd) +$(if $(BASE_DIR),, $(error output directory "$(O)" does not exist)) + +# other packages might also support Linux-style out of tree builds +# with the O=<dir> syntax (E.G. Busybox does). As make automatically +# forwards command line variable definitions those packages get very +# confused. Fix this by telling make to not do so +MAKEOVERRIDES = +endif +endif + +TOPDIR_PREFIX:=$(call qstrip,$(BR2_TOPDIR_PREFIX))_ +TOPDIR_SUFFIX:=_$(call qstrip,$(BR2_TOPDIR_SUFFIX)) +ifeq ($(TOPDIR_PREFIX),_) +TOPDIR_PREFIX:= +endif +ifeq ($(TOPDIR_SUFFIX),_) +TOPDIR_SUFFIX:= +endif + +DL_DIR=$(call qstrip,$(BR2_DL_DIR)) +ifeq ($(DL_DIR),) +DL_DIR:=$(BASE_DIR)/dl +endif + +BUILD_DIR:=$(BASE_DIR)/$(TOPDIR_PREFIX)build_$(ARCH)$(ARCH_FPU_SUFFIX)$(TOPDIR_SUFFIX) -BR2_DEPENDS_DIR=$(PROJECT_BUILD_DIR)/buildroot-config +GNU_TARGET_SUFFIX:=-$(call qstrip,$(BR2_GNU_TARGET_SUFFIX)) + +STAGING_DIR:=$(call qstrip,$(BR2_STAGING_DIR)) + +# packages compiled for the host goes here +HOST_DIR:=$(BUILD_DIR)/host_dir + +# stamp (dependency) files go here +STAMP_DIR:=$(BUILD_DIR)/stamps + +BINARIES_DIR:=$(BASE_DIR)/binaries/ +TARGET_DIR:=$(BUILD_DIR)/target_dir + +# define values for prepatched source trees for toolchains +VENDOR_SITE:=$(call qstrip,$(BR2_VENDOR_SITE)) +VENDOR_SUFFIX:=$(call qstrip,$(BR2_VENDOR_SUFFIX)) +VENDOR_BINUTILS_RELEASE:=$(call qstrip,$(BR2_VENDOR_BINUTILS_RELEASE)) +VENDOR_GCC_RELEASE:=$(call qstrip,$(BR2_VENDOR_GCC_RELEASE)) +VENDOR_UCLIBC_RELEASE:=$(call qstrip,$(BR2_VENDOR_UCLIBC_RELEASE)) +VENDOR_GDB_RELEASE:=$(call qstrip,$(BR2_VENDOR_GDB_RELEASE)) +VENDOR_PATCH_DIR:=$(call qstrip,$(BR2_VENDOR_PATCH_DIR)) + +BR2_DEPENDS_DIR=$(BUILD_DIR)/buildroot-config include toolchain/Makefile.in include package/Makefile.in @@ -237,8 +301,6 @@ all: world # In this section, we need .config include .config.cmd -include project/*.mk - # We also need the various per-package makefiles, which also add # each selected package to TARGETS if that package was selected # in the .config file. @@ -290,20 +352,18 @@ $(BR2_DEPENDS_DIR): .config cp -dpRf $(CONFIG)/buildroot-config $@ dirs: $(DL_DIR) $(TOOL_BUILD_DIR) $(BUILD_DIR) $(STAGING_DIR) $(TARGET_DIR) \ - $(HOST_DIR) $(BR2_DEPENDS_DIR) $(BINARIES_DIR) $(PROJECT_BUILD_DIR) \ - $(PROJECT_BUILD_DIR)/autotools-stamps $(STAMP_DIR) + $(HOST_DIR) $(BR2_DEPENDS_DIR) $(BINARIES_DIR) $(STAMP_DIR) $(BASE_TARGETS): dirs -world: dependencies dirs target-host-info $(BASE_TARGETS) $(TARGETS_ALL) +world: dependencies dirs $(BASE_TARGETS) $(TARGETS_ALL) .PHONY: all world dirs clean dirclean distclean source \ $(BASE_TARGETS) $(TARGETS) $(TARGETS_ALL) \ $(TARGETS_CLEAN) $(TARGETS_DIRCLEAN) $(TARGETS_SOURCE) \ $(DL_DIR) $(TOOL_BUILD_DIR) $(BUILD_DIR) $(STAGING_DIR) $(TARGET_DIR) \ - $(HOST_DIR) $(BR2_DEPENDS_DIR) $(BINARIES_DIR) $(PROJECT_BUILD_DIR) \ - $(PROJECT_BUILD_DIR)/autotools-stamps $(STAMP_DIR) + $(HOST_DIR) $(BR2_DEPENDS_DIR) $(BINARIES_DIR) $(STAMP_DIR) ############################################################# # @@ -311,8 +371,7 @@ world: dependencies dirs target-host-info $(BASE_TARGETS) $(TARGETS_ALL) # dependencies anywhere else # ############################################################# -$(DL_DIR) $(TOOL_BUILD_DIR) $(BUILD_DIR) $(HOST_DIR) $(PROJECT_BUILD_DIR) \ - $(PROJECT_BUILD_DIR)/autotools-stamps $(BINARIES_DIR) $(STAMP_DIR): +$(DL_DIR) $(TOOL_BUILD_DIR) $(BUILD_DIR) $(HOST_DIR) $(BINARIES_DIR) $(STAMP_DIR): @mkdir -p $@ $(STAGING_DIR): @@ -330,7 +389,7 @@ endif endif @mkdir -p $(STAGING_DIR)/usr/include -$(PROJECT_BUILD_DIR)/.root: +$(BUILD_DIR)/.root: mkdir -p $(TARGET_DIR) if ! [ -d "$(TARGET_DIR)/bin" ]; then \ if [ -d "$(TARGET_SKELETON)" ]; then \ @@ -345,10 +404,10 @@ $(PROJECT_BUILD_DIR)/.root: -find $(TARGET_DIR) -type f -name .empty -print0 | xargs -0 rm -rf touch $@ -$(TARGET_DIR): $(PROJECT_BUILD_DIR)/.root +$(TARGET_DIR): $(BUILD_DIR)/.root erase-fakeroots: - rm -f $(PROJECT_BUILD_DIR)/.fakeroot* + rm -f $(BUILD_DIR)/.fakeroot* target-finalize: ifeq ($(BR2_HAVE_DEVFILES),y) @@ -372,7 +431,7 @@ ifneq ($(BR2_ROOTFS_POST_BUILD_SCRIPT),"") endif ifeq ($(BR2_ENABLE_LOCALE_PURGE),y) -LOCALE_WHITELIST=$(PROJECT_BUILD_DIR)/locales.nopurge +LOCALE_WHITELIST=$(BUILD_DIR)/locales.nopurge LOCALE_NOPURGE=$(call qstrip,$(BR2_ENABLE_LOCALE_WHITELIST)) target-purgelocales: @@ -403,21 +462,21 @@ external-deps: # ############################################################# clean: $(TARGETS_CLEAN) - rm -rf $(STAGING_DIR) $(TARGET_DIR) $(IMAGE) $(PROJECT_BUILD_DIR)/.root $(PROJECT_BUILD_DIR)/autotools-stamps $(STAMP_DIR) + rm -rf $(STAGING_DIR) $(TARGET_DIR) $(IMAGE) $(BUILD_DIR)/.root $(STAMP_DIR) dirclean: $(TARGETS_DIRCLEAN) - rm -rf $(STAGING_DIR) $(TARGET_DIR) $(IMAGE) $(PROJECT_BUILD_DIR)/.root $(PROJECT_BUILD_DIR)/autotools-stamps $(STAMP_DIR) + rm -rf $(STAGING_DIR) $(TARGET_DIR) $(IMAGE) $(BUILD_DIR)/.root $(STAMP_DIR) distclean: ifeq ($(DL_DIR),$(BASE_DIR)/dl) rm -rf $(DL_DIR) endif - rm -rf $(TOOL_BUILD_DIR) $(BUILD_DIR) $(PROJECT_BUILD_DIR) $(BINARIES_DIR) \ + rm -rf $(TOOL_BUILD_DIR) $(BUILD_DIR) $(BUILD_DIR) $(BINARIES_DIR) \ .config.cmd $(MAKE) -C $(CONFIG) clean sourceball: - rm -rf $(BUILD_DIR) $(PROJECT_BUILD_DIR) $(BINARIES_DIR) + rm -rf $(BUILD_DIR) $(BUILD_DIR) $(BINARIES_DIR) set -e; \ cd ..; \ rm -f buildroot.tar.bz2; \ @@ -530,28 +589,16 @@ distclean: clean endif # ifeq ($(BR2_HAVE_DOT_CONFIG),y) flush: - rm -f $(PROJECT_BUILD_DIR)/tgt-config.cache + rm -f $(BUILD_DIR)/tgt-config.cache %_defconfig: $(CONFIG)/conf cp $(shell find ./target/ -name $@) .config -@$(MAKE) oldconfig -update: - cp .config $(BOARD_PATH)/$(PROJECT)_defconfig - configured: dirs host-sed kernel-headers uclibc-config busybox-config linux26-config prepatch: gcc-patched binutils-patched gdb-patched uclibc-patched -.lognr.$(PROJECT): - @echo "0" > .lognr.$(PROJECT) - -log: .lognr.$(PROJECT) - @expr `cat .lognr.$(PROJECT)` + 1 > .lognr.$(PROJECT) - @echo Creating $(PROJECT)-`cat .lognr.$(PROJECT)`.log - @$(MAKE) > $(PROJECT)-`cat .lognr.$(PROJECT)`.log 2>&1 - - cross: $(BASE_TARGETS) help: diff --git a/package/Makefile.autotools.in b/package/Makefile.autotools.in index 859e7bc..d4e6160 100644 --- a/package/Makefile.autotools.in +++ b/package/Makefile.autotools.in @@ -243,7 +243,7 @@ $(BUILD_DIR)/%/.stamp_configured: $(TARGET_CONFIGURE_ENV) \ $($(PKG)_CONF_ENV) \ $(if $(THIS_SRCDIR),$(THIS_SRCDIR)/,./)configure \ - $(if $(filter YES,$($(PKG)_USE_CONFIG_CACHE)),--cache-file="$(PROJECT_BUILD_DIR)/tgt-config.cache",) \ + $(if $(filter YES,$($(PKG)_USE_CONFIG_CACHE)),--cache-file="$(BUILD_DIR)/tgt-config.cache",) \ --target=$(GNU_TARGET_NAME) \ --host=$(GNU_TARGET_NAME) \ --build=$(GNU_HOST_NAME) \ @@ -274,7 +274,7 @@ $(BUILD_DIR)/%/.stamp_staging_installed: touch $@ # Install to target dir -$(PROJECT_BUILD_DIR)/autotools-stamps/%_target_installed: +$(BUILD_DIR)/%/.stamp_target_installed: $(call MESSAGE,"Installing to target") $($(PKG)_MAKE_ENV) $($(PKG)_MAKE) $($(PKG)_INSTALL_TARGET_OPT) -C $($(PKG)_DIR)/$($(PKG)_SUBDIR) $(if $(BR2_HAVE_MANPAGES),,for d in man share/man; do \ @@ -352,8 +352,7 @@ $(2)_DIR_PREFIX = $(if $(3),$(3),$(TOP_SRCDIR)/package) # define sub-target stamps -# targets which affect $(TARGET_DIR) must use a unique stamp for each $(PROJECT) -$(2)_TARGET_INSTALL_TARGET = $(PROJECT_BUILD_DIR)/autotools-stamps/$(1)_target_installed +$(2)_TARGET_INSTALL_TARGET = $$($(2)_DIR)/.stamp_target_installed $(2)_TARGET_INSTALL_STAGING = $$($(2)_DIR)/.stamp_staging_installed $(2)_TARGET_BUILD = $$($(2)_DIR)/.stamp_built $(2)_TARGET_CONFIGURE = $$($(2)_DIR)/.stamp_configured @@ -369,7 +368,7 @@ $(2)_TARGET_DIRCLEAN = $$($(2)_DIR)/.stamp_dircleaned $(2)_HOOK_POST_EXTRACT = $$($(2)_DIR)/.stamp_hook_post_extract $(2)_HOOK_POST_CONFIGURE = $$($(2)_DIR)/.stamp_hook_post_configure $(2)_HOOK_POST_BUILD = $$($(2)_DIR)/.stamp_hook_post_build -$(2)_HOOK_POST_INSTALL = $(PROJECT_BUILD_DIR)/autotools-stamps/$(1)_hook_post_install +$(2)_HOOK_POST_INSTALL = $$($(2)_DIR)/.stamp_hook_post_install # human-friendly targets and target sequencing $(1): $(1)-install diff --git a/package/at/at.mk b/package/at/at.mk index b3b2f35..52c4090 100644 --- a/package/at/at.mk +++ b/package/at/at.mk @@ -49,11 +49,11 @@ $(TARGET_DIR)/$(AT_TARGET_SCRIPT): $(AT_DIR)/$(AT_BINARY) # Use fakeroot to pretend to do 'make install' as root echo '$(MAKE) DAEMON_USERNAME=root DAEMON_GROUPNAME=root ' \ '$(TARGET_CONFIGURE_OPTS) DESTDIR=$(TARGET_DIR) -C $(AT_DIR) install' \ - > $(PROJECT_BUILD_DIR)/.fakeroot.at + > $(BUILD_DIR)/.fakeroot.at ifneq ($(BR2_HAVE_MANPAGES),y) - echo 'rm -rf $(TARGET_DIR)/usr/man' >> $(PROJECT_BUILD_DIR)/.fakeroot.at + echo 'rm -rf $(TARGET_DIR)/usr/man' >> $(BUILD_DIR)/.fakeroot.at endif - echo 'rm -rf $(TARGET_DIR)/usr/doc/at' >> $(PROJECT_BUILD_DIR)/.fakeroot.at + echo 'rm -rf $(TARGET_DIR)/usr/doc/at' >> $(BUILD_DIR)/.fakeroot.at $(INSTALL) -m 0755 -D $(AT_DIR)/debian/rc $(TARGET_DIR)/$(AT_TARGET_SCRIPT) at: host-fakeroot $(TARGET_DIR)/$(AT_TARGET_SCRIPT) diff --git a/package/busybox/busybox.mk b/package/busybox/busybox.mk index 45461f8..eb79134 100644 --- a/package/busybox/busybox.mk +++ b/package/busybox/busybox.mk @@ -7,12 +7,12 @@ ifeq ($(BR2_PACKAGE_BUSYBOX_SNAPSHOT),y) # Be aware that this changes daily.... -BUSYBOX_DIR:=$(PROJECT_BUILD_DIR)/busybox +BUSYBOX_DIR:=$(BUILD_DIR)/busybox BUSYBOX_SOURCE:=busybox-snapshot.tar.bz2 BUSYBOX_SITE:=http://www.busybox.net/downloads/snapshots else BUSYBOX_VERSION=$(call qstrip,$(BR2_BUSYBOX_VERSION)) -BUSYBOX_DIR:=$(PROJECT_BUILD_DIR)/busybox-$(BUSYBOX_VERSION) +BUSYBOX_DIR:=$(BUILD_DIR)/busybox-$(BUSYBOX_VERSION) BUSYBOX_SOURCE:=busybox-$(BUSYBOX_VERSION).tar.bz2 BUSYBOX_SITE:=http://www.busybox.net/downloads endif @@ -27,7 +27,7 @@ $(DL_DIR)/$(BUSYBOX_SOURCE): $(call DOWNLOAD,$(BUSYBOX_SITE),$(BUSYBOX_SOURCE)) $(BUSYBOX_DIR)/.unpacked: $(DL_DIR)/$(BUSYBOX_SOURCE) - $(BUSYBOX_UNZIP) $(DL_DIR)/$(BUSYBOX_SOURCE) | tar -C $(PROJECT_BUILD_DIR) $(TAR_OPTIONS) - + $(BUSYBOX_UNZIP) $(DL_DIR)/$(BUSYBOX_SOURCE) | tar -C $(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 @@ -126,11 +126,11 @@ busybox: $(TARGET_DIR)/bin/busybox busybox-source: $(DL_DIR)/$(BUSYBOX_SOURCE) -busybox-unpacked: host-sed $(PROJECT_BUILD_DIR) $(BUSYBOX_DIR)/.unpacked +busybox-unpacked: host-sed $(BUILD_DIR) $(BUSYBOX_DIR)/.unpacked -busybox-config: host-sed $(PROJECT_BUILD_DIR) $(BUSYBOX_DIR)/.config +busybox-config: host-sed $(BUILD_DIR) $(BUSYBOX_DIR)/.config -busybox-menuconfig: host-sed $(PROJECT_BUILD_DIR) busybox-source $(BUSYBOX_DIR)/.config +busybox-menuconfig: host-sed $(BUILD_DIR) busybox-source $(BUSYBOX_DIR)/.config $(MAKE) __TARGET_ARCH=$(ARCH) -C $(BUSYBOX_DIR) menuconfig busybox-update: diff --git a/package/busybox/initramfs.mk b/package/busybox/initramfs.mk index c67e866..afb80f9 100644 --- a/package/busybox/initramfs.mk +++ b/package/busybox/initramfs.mk @@ -6,7 +6,7 @@ ifeq ($(BR2_PACKAGE_BUSYBOX_INITRAMFS),y) BUSYBOX_INITRAMFS_DIR:=$(BUSYBOX_DIR)-initramfs -BR2_INITRAMFS_DIR:=$(PROJECT_BUILD_DIR)/initramfs +BR2_INITRAMFS_DIR:=$(BUILD_DIR)/initramfs BB_INITRAMFS_TARGET:=$(IMAGE).initramfs_lst $(BUSYBOX_INITRAMFS_DIR)/.unpacked: $(DL_DIR)/$(BUSYBOX_SOURCE) @@ -105,39 +105,39 @@ $(BR2_INITRAMFS_DIR)/bin/busybox: $(BUSYBOX_INITRAMFS_DIR)/busybox $(BB_INITRAMFS_TARGET): host-fakeroot $(BR2_INITRAMFS_DIR)/bin/busybox - ln -fs bin/busybox $(PROJECT_BUILD_DIR)/initramfs/init - mkdir -p $(PROJECT_BUILD_DIR)/initramfs/etc + ln -fs bin/busybox $(BUILD_DIR)/initramfs/init + mkdir -p $(BUILD_DIR)/initramfs/etc cat target/generic/target_busybox_skeleton/etc/inittab > \ - $(PROJECT_BUILD_DIR)/initramfs/etc/inittab - rm -f $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(BB_INITRAMFS_TARGET)) - (echo "chown -R 0:0 $(PROJECT_BUILD_DIR)/initramfs"; \ - echo "$(HOST_DIR)/usr/bin/makedevs -d $(TARGET_DEVICE_TABLE) $(PROJECT_BUILD_DIR)/initramfs"; \ - echo "$(SHELL) target/initramfs/gen_initramfs_list.sh -u 0 -g 0 $(PROJECT_BUILD_DIR)/initramfs > $(BB_INITRAMFS_TARGET)"; \ - ) > $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(BB_INITRAMFS_TARGET)) - chmod +x $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(BB_INITRAMFS_TARGET)) + $(BUILD_DIR)/initramfs/etc/inittab + rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(BB_INITRAMFS_TARGET)) + (echo "chown -R 0:0 $(BUILD_DIR)/initramfs"; \ + echo "$(HOST_DIR)/usr/bin/makedevs -d $(TARGET_DEVICE_TABLE) $(BUILD_DIR)/initramfs"; \ + echo "$(SHELL) target/initramfs/gen_initramfs_list.sh -u 0 -g 0 $(BUILD_DIR)/initramfs > $(BB_INITRAMFS_TARGET)"; \ + ) > $(BUILD_DIR)/_fakeroot.$(notdir $(BB_INITRAMFS_TARGET)) + chmod +x $(BUILD_DIR)/_fakeroot.$(notdir $(BB_INITRAMFS_TARGET)) $(HOST_DIR)/usr/bin/fakeroot -- \ - $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(BB_INITRAMFS_TARGET)) - rm -f $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(BB_INITRAMFS_TARGET)) + $(BUILD_DIR)/_fakeroot.$(notdir $(BB_INITRAMFS_TARGET)) + rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(BB_INITRAMFS_TARGET)) touch -c $@ -$(PROJECT_BUILD_DIR)/.initramfs_done: $(BR2_INITRAMFS_DIR)/bin/busybox \ +$(BUILD_DIR)/.initramfs_done: $(BR2_INITRAMFS_DIR)/bin/busybox \ $(BB_INITRAMFS_TARGET) touch $@ busybox-initramfs-source: -busybox-initramfs: $(PROJECT_BUILD_DIR)/.initramfs_done +busybox-initramfs: $(BUILD_DIR)/.initramfs_done busybox-initramfs-menuconfig: host-sed $(BUILD_DIR) busybox-source $(BUSYBOX_INITRAMFS_DIR)/.configured $(MAKE) __TARGET_ARCH=$(ARCH) -C $(BUSYBOX_INITRAMFS_DIR) menuconfig busybox-initramfs-clean: - rm -f $(BUSYBOX_INITRAMFS_DIR)/busybox $(PROJECT_BUILD_DIR)/.initramfs_* + rm -f $(BUSYBOX_INITRAMFS_DIR)/busybox $(BUILD_DIR)/.initramfs_* rm -rf $(BR2_INITRAMFS_DIR) $(BB_INITRAMFS_TARGET) -$(MAKE) -C $(BUSYBOX_INITRAMFS_DIR) clean busybox-initramfs-dirclean: rm -rf $(BUSYBOX_INITRAMFS_DIR) $(BR2_INITRAMFS_DIR) \ - $(PROJECT_BUILD_DIR)/.initramfs_* + $(BUILD_DIR)/.initramfs_* endif ############################################################# # diff --git a/package/customize/customize.mk b/package/customize/customize.mk index 4fe4b8b..780e42b 100644 --- a/package/customize/customize.mk +++ b/package/customize/customize.mk @@ -6,14 +6,14 @@ CUST_DIR:=package/customize/source $(BUILD_DIR)/.customize: - rm -f $(PROJECT_BUILD_DIR)/series + rm -f $(BUILD_DIR)/series (cd $(CUST_DIR); \ - /bin/ls -d * > $(PROJECT_BUILD_DIR)/series || \ - touch $(PROJECT_BUILD_DIR)/series ) - for f in `cat $(PROJECT_BUILD_DIR)/series`; do \ + /bin/ls -d * > $(BUILD_DIR)/series || \ + touch $(BUILD_DIR)/series ) + for f in `cat $(BUILD_DIR)/series`; do \ cp -af $(CUST_DIR)/$$f $(TARGET_DIR)/$$f; \ done - rm -f $(PROJECT_BUILD_DIR)/series + rm -f $(BUILD_DIR)/series touch $@ customize: $(BUILD_DIR)/.customize diff --git a/package/linux-fusion/linux-fusion.mk b/package/linux-fusion/linux-fusion.mk index 6a1c12a..058e965 100644 --- a/package/linux-fusion/linux-fusion.mk +++ b/package/linux-fusion/linux-fusion.mk @@ -13,7 +13,7 @@ LINUX_FUSION_INSTALL_TARGET = YES # BR2_LINUX26_VERSION is not really dependable # LINUX26_VERSION is not yet set. # Retrieve REAL kernel version from file. -LINUX_FOR_FUSION=`cat $(PROJECT_BUILD_DIR)/.linux-version` +LINUX_FOR_FUSION=`cat $(BUILD_DIR)/.linux-version` LINUX_FUSION_DIR:=$(BUILD_DIR)/linux-fusion-$(LINUX_FUSION_VERSION) LINUX_FUSION_ETC_DIR:=$(TARGET_DIR)/etc/udev/rules.d @@ -21,14 +21,14 @@ LINUX_FUSION_ETC_DIR:=$(TARGET_DIR)/etc/udev/rules.d LINUX_FUSION_CAT:=$(ZCAT) LINUX_FUSION_MAKE_OPTS:= KERNEL_VERSION=$(LINUX_FOR_FUSION) -LINUX_FUSION_MAKE_OPTS += KERNEL_BUILD=$(PROJECT_BUILD_DIR)/linux-$(LINUX_FOR_FUSION) -LINUX_FUSION_MAKE_OPTS += KERNEL_SOURCE=$(PROJECT_BUILD_DIR)/linux-$(LINUX_FOR_FUSION) +LINUX_FUSION_MAKE_OPTS += KERNEL_BUILD=$(BUILD_DIR)/linux-$(LINUX_FOR_FUSION) +LINUX_FUSION_MAKE_OPTS += KERNEL_SOURCE=$(BUILD_DIR)/linux-$(LINUX_FOR_FUSION) LINUX_FUSION_MAKE_OPTS += SYSROOT=$(STAGING_DIR) LINUX_FUSION_MAKE_OPTS += ARCH=$(BR2_ARCH) LINUX_FUSION_MAKE_OPTS += CROSS_COMPILE=$(TARGET_CROSS) LINUX_FUSION_MAKE_OPTS += KERNEL_MODLIB=/lib/modules/$(LINUX_FOR_FUSION) -LINUX_FUSION_MAKE_OPTS += DESTDIR=$(PROJECT_BUILD_DIR)/root +LINUX_FUSION_MAKE_OPTS += DESTDIR=$(BUILD_DIR)/root LINUX_FUSION_MAKE_OPTS += HEADERDIR=$(STAGING_DIR) #LINUX_FUSION_MAKE_OPTS += diff --git a/package/ltp-testsuite/ltp-testsuite.mk b/package/ltp-testsuite/ltp-testsuite.mk index 355be02..7be12fd 100644 --- a/package/ltp-testsuite/ltp-testsuite.mk +++ b/package/ltp-testsuite/ltp-testsuite.mk @@ -48,7 +48,7 @@ $(LTP_TESTSUITE_DIR)/.installed: $(LTP_TESTSUITE_DIR)/.compiled # Use fakeroot to pretend to do 'make install' as root echo '$(MAKE1) $(TARGET_CONFIGURE_OPTS) CROSS_COMPILER=$(TARGET_CROSS) ' \ '-C $(LTP_TESTSUITE_DIR) install' \ - > $(PROJECT_BUILD_DIR)/.fakeroot.ltp + > $(BUILD_DIR)/.fakeroot.ltp touch $@ ltp-testsuite: host-fakeroot $(LTP_TESTSUITE_DIR)/.installed diff --git a/package/nfs-utils/nfs-utils.mk b/package/nfs-utils/nfs-utils.mk index e47bf37..bf8e668 100644 --- a/package/nfs-utils/nfs-utils.mk +++ b/package/nfs-utils/nfs-utils.mk @@ -59,7 +59,7 @@ NFS_UTILS_TARGETS_$(BR2_PACKAGE_NFS_UTILS_RPCDEBUG) += usr/sbin/rpcdebug NFS_UTILS_TARGETS_$(BR2_PACKAGE_NFS_UTILS_RPC_LOCKD) += usr/sbin/rpc.lockd NFS_UTILS_TARGETS_$(BR2_PACKAGE_NFS_UTILS_RPC_RQUOTAD) += usr/sbin/rpc.rquotad -$(PROJECT_BUILD_DIR)/.fakeroot.nfs-utils: $(NFS_UTILS_DIR)/$(NFS_UTILS_BINARY) +$(BUILD_DIR)/.fakeroot.nfs-utils: $(NFS_UTILS_DIR)/$(NFS_UTILS_BINARY) # Use fakeroot to pretend to do 'make install' as root echo '$(MAKE) prefix=$(TARGET_DIR)/usr statedir=$(TARGET_DIR)/var/lib/nfs $(TARGET_CONFIGURE_OPTS) -C $(NFS_UTILS_DIR) install' > $@ echo 'rm -f $(TARGET_DIR)/usr/bin/event_rpcgen.py $(TARGET_DIR)/usr/sbin/nhfs* $(TARGET_DIR)/usr/sbin/nfsstat $(TARGET_DIR)/usr/sbin/showmount' >> $@ @@ -70,7 +70,7 @@ $(PROJECT_BUILD_DIR)/.fakeroot.nfs-utils: $(NFS_UTILS_DIR)/$(NFS_UTILS_BINARY) echo "file; done" >> $@ echo 'rm -rf $(TARGET_DIR)/var/lib/nfs' >> $@ -$(TARGET_DIR)/$(NFS_UTILS_TARGET_BINARY): $(PROJECT_BUILD_DIR)/.fakeroot.nfs-utils +$(TARGET_DIR)/$(NFS_UTILS_TARGET_BINARY): $(BUILD_DIR)/.fakeroot.nfs-utils touch -c $@ nfs-utils: host-fakeroot $(TARGET_DIR)/$(NFS_UTILS_TARGET_BINARY) @@ -81,7 +81,7 @@ nfs-utils-clean: rm -f $(TARGET_DIR)/$$file; \ done -$(MAKE) -C $(NFS_UTILS_DIR) clean - rm -f $(PROJECT_BUILD_DIR)/.fakeroot.nfs-utils + rm -f $(BUILD_DIR)/.fakeroot.nfs-utils nfs-utils-dirclean: rm -rf $(NFS_UTILS_DIR) diff --git a/project/Config.in b/project/Config.in deleted file mode 100644 index 0e9e781..0000000 --- a/project/Config.in +++ /dev/null @@ -1,25 +0,0 @@ -comment "Project Options" - -config BR2_PROJECT - string "Project name" - default "uclibc" - help - The project name is used to define subdirectories - * where the Board Support Packages are built - (Linux,Root fs Bootmonitor,Utilities etc.) - * where the resulting binaries are stored. - Older targets may still build in the build_<arch> - and store binaries in the top directory. - -config BR2_HOSTNAME - string "hostname" - default "uclibc" - help - The hostname string is stored in "/etc/hostname" - -config BR2_BANNER - string "banner" - default "Welcome to Buildroot" - help - The banner string is stored in "/etc/issue" - diff --git a/project/Makefile.in b/project/Makefile.in deleted file mode 100644 index 7f359bc..0000000 --- a/project/Makefile.in +++ /dev/null @@ -1,77 +0,0 @@ -PROJECT:=$(call qstrip,$(BR2_PROJECT)) -TARGET_HOSTNAME:=$(call qstrip,$(BR2_HOSTNAME)) -BANNER:=$(call qstrip,$(BR2_BANNER)) - -# silent mode requested? -QUIET:=$(if $(findstring s,$(MAKEFLAGS)),-q,) - -# Strip off the annoying quoting -ARCH:=$(call qstrip,$(BR2_ARCH)) -ifeq ($(ARCH),xtensa) -ARCH:=$(ARCH)_$(call qstrip,$(BR2_xtensa_core_name)) -endif -WGET:=$(call qstrip,$(BR2_WGET)) $(SPIDER) $(QUIET) -SVN_CO:=$(call qstrip,$(BR2_SVN_CO)) $(QUIET) -SVN_UP:=$(call qstrip,$(BR2_SVN_UP)) $(QUIET) -GIT:=$(call qstrip,$(BR2_GIT)) $(QUIET) -ZCAT:=$(call qstrip,$(BR2_ZCAT)) -BZCAT:=$(call qstrip,$(BR2_BZCAT)) -TAR_OPTIONS=$(call qstrip,$(BR2_TAR_OPTIONS)) -xf - -# Buildroot supports building out of tree similarly to the Linux kernel. -# To use, add O= to the make command line (make O=/tmp/build) -BASE_DIR:=$(shell pwd) -ifdef O -ifeq ("$(origin O)", "command line") -BASE_DIR := $(shell mkdir -p $(O) && cd $(O) && pwd) -$(if $(BASE_DIR),, $(error output directory "$(O)" does not exist)) - -# other packages might also support Linux-style out of tree builds -# with the O=<dir> syntax (E.G. Busybox does). As make automatically -# forwards command line variable definitions those packages get very -# confused. Fix this by telling make to not do so -MAKEOVERRIDES = -endif -endif - -TOPDIR_PREFIX:=$(call qstrip,$(BR2_TOPDIR_PREFIX))_ -TOPDIR_SUFFIX:=_$(call qstrip,$(BR2_TOPDIR_SUFFIX)) -ifeq ($(TOPDIR_PREFIX),_) -TOPDIR_PREFIX:= -endif -ifeq ($(TOPDIR_SUFFIX),_) -TOPDIR_SUFFIX:= -endif - -DL_DIR=$(call qstrip,$(BR2_DL_DIR)) -ifeq ($(DL_DIR),) -DL_DIR:=$(BASE_DIR)/dl -endif - -# All non-configurable packages should be built in BUILD_DIR -BUILD_DIR:=$(BASE_DIR)/$(TOPDIR_PREFIX)build_$(ARCH)$(ARCH_FPU_SUFFIX)$(TOPDIR_SUFFIX) - -GNU_TARGET_SUFFIX:=-$(call qstrip,$(BR2_GNU_TARGET_SUFFIX)) - -STAGING_DIR:=$(call qstrip,$(BR2_STAGING_DIR)) - -# packages compiled for the host goes here -HOST_DIR:=$(BUILD_DIR)/host_dir - -# stamp (dependency) files go here -STAMP_DIR:=$(BUILD_DIR)/stamps - -# All configurable packages (like Busybox,Linux etc) should be built -# in PROJECT_BUILD_DIR -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 - -# define values for prepatched source trees for toolchains -VENDOR_SITE:=$(call qstrip,$(BR2_VENDOR_SITE)) -VENDOR_SUFFIX:=$(call qstrip,$(BR2_VENDOR_SUFFIX)) -VENDOR_BINUTILS_RELEASE:=$(call qstrip,$(BR2_VENDOR_BINUTILS_RELEASE)) -VENDOR_GCC_RELEASE:=$(call qstrip,$(BR2_VENDOR_GCC_RELEASE)) -VENDOR_UCLIBC_RELEASE:=$(call qstrip,$(BR2_VENDOR_UCLIBC_RELEASE)) -VENDOR_GDB_RELEASE:=$(call qstrip,$(BR2_VENDOR_GDB_RELEASE)) -VENDOR_PATCH_DIR:=$(call qstrip,$(BR2_VENDOR_PATCH_DIR)) diff --git a/project/project.mk b/project/project.mk deleted file mode 100644 index 3074eff..0000000 --- a/project/project.mk +++ /dev/null @@ -1,52 +0,0 @@ -PROJECT_FILE:=$(LOCAL)/$(PROJECT)/$(PROJECT).config - - -.PHONY: target-host-info saveconfig getconfig - -target-host-info: $(TARGET_DIR)/etc/issue $(TARGET_DIR)/etc/hostname $(TARGET_DIR)/etc/br-version - -$(TARGET_DIR)/etc/issue: .config - mkdir -p $(TARGET_DIR)/etc - echo "" > $@ - echo "" >> $@ - echo "$(BANNER)" >> $@ - -$(TARGET_DIR)/etc/hostname: .config - mkdir -p $(TARGET_DIR)/etc - echo "$(TARGET_HOSTNAME)" > $@ - -$(TARGET_DIR)/etc/br-version: .config - mkdir -p $(TARGET_DIR)/etc - echo $(BR2_VERSION)$(shell $(TOPDIR)/scripts/setlocalversion) >$@ - -saveconfig: - mkdir -p $(LOCAL)/$(PROJECT) - -cp .config $(PROJECT_FILE) - if [ -f $(LINUX26_DIR)/.config ]; then \ - cp $(LINUX26_DIR)/.config \ - $(LOCAL)/$(PROJECT)/linux-$(LINUX26_VERSION).config; \ - $(SED) '/BR2_PACKAGE_LINUX_KCONFIG/d' $(PROJECT_FILE); \ - echo "BR2_PACKAGE_LINUX_KCONFIG=\"$(LOCAL)/$(PROJECT)/linux-$(LINUX26_VERSION).config\"" >> $(PROJECT_FILE); \ - $(SED) '/BR2_BOARD_PATH/d' $(PROJECT_FILE); \ - echo "BR2_BOARD_PATH=\"$(LOCAL)/$(PROJECT)\"" >> $(PROJECT_FILE); \ - fi - if [ -f $(BUSYBOX_DIR)/.config ]; then \ - cp $(BUSYBOX_DIR)/.config \ - $(LOCAL)/$(PROJECT)/busybox-$(BUSYBOX_VERSION).config; \ - $(SED) '/BR2_PACKAGE_BUSYBOX_CONFIG/d' $(PROJECT_FILE); \ - echo "BR2_PACKAGE_BUSYBOX_CONFIG=\"$(LOCAL)/$(PROJECT)/busybox-$(BUSYBOX_VERSION).config\"" >> $(PROJECT_FILE); \ - fi - if [ -f $(UCLIBC_DIR)/.config ]; then \ - cp $(UCLIBC_DIR)/.config \ - $(LOCAL)/$(PROJECT)/uclibc-$(UCLIBC_VER).config; \ - $(SED) '/BR2_UCLIBC_CONFIG/d' $(PROJECT_FILE); \ - echo "BR2_UCLIBC_CONFIG=\"$(LOCAL)/$(PROJECT)/uclibc-$(UCLIBC_VER).config\"" >> $(PROJECT_FILE); \ - fi - if [ -f $(UBOOT_DIR)/include/configs/$(PROJECT).h ]; then \ - mkdir -p $(LOCAL)/$(PROJECT)/u-boot; \ - cp $(UBOOT_DIR)/include/configs/$(PROJECT).h \ - $(LOCAL)/$(PROJECT)/u-boot/$(PROJECT).h; \ - fi - -getconfig: - -cp $(LOCAL)/$(PROJECT)/$(PROJECT).config .config diff --git a/target/cpio/cpioroot.mk b/target/cpio/cpioroot.mk index 0dbdb2e..2197d10 100644 --- a/target/cpio/cpioroot.mk +++ b/target/cpio/cpioroot.mk @@ -40,21 +40,21 @@ cpioroot-init: $(CPIO_BASE): host-fakeroot makedevs cpioroot-init # Use fakeroot to pretend all target binaries are owned by root - rm -f $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(CPIO_BASE)) - touch $(PROJECT_BUILD_DIR)/.fakeroot.00000 - cat $(PROJECT_BUILD_DIR)/.fakeroot* > $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(CPIO_BASE)) - echo "chown -R 0:0 $(TARGET_DIR)" >> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(CPIO_BASE)) + rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(CPIO_BASE)) + touch $(BUILD_DIR)/.fakeroot.00000 + cat $(BUILD_DIR)/.fakeroot* > $(BUILD_DIR)/_fakeroot.$(notdir $(CPIO_BASE)) + echo "chown -R 0:0 $(TARGET_DIR)" >> $(BUILD_DIR)/_fakeroot.$(notdir $(CPIO_BASE)) ifneq ($(TARGET_DEVICE_TABLE),) # Use fakeroot to pretend to create all needed device nodes echo "$(HOST_DIR)/usr/bin/makedevs -d $(TARGET_DEVICE_TABLE) $(TARGET_DIR)" \ - >> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(CPIO_BASE)) + >> $(BUILD_DIR)/_fakeroot.$(notdir $(CPIO_BASE)) endif # Use fakeroot so tar believes the previous fakery echo "cd $(TARGET_DIR) && find . | cpio --quiet -o -H newc > $(CPIO_BASE)" \ - >> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(CPIO_BASE)) - chmod a+x $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(CPIO_BASE)) - $(HOST_DIR)/usr/bin/fakeroot -- $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(CPIO_BASE)) - #- at rm -f $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(CPIO_BASE)) + >> $(BUILD_DIR)/_fakeroot.$(notdir $(CPIO_BASE)) + chmod a+x $(BUILD_DIR)/_fakeroot.$(notdir $(CPIO_BASE)) + $(HOST_DIR)/usr/bin/fakeroot -- $(BUILD_DIR)/_fakeroot.$(notdir $(CPIO_BASE)) + #- at rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(CPIO_BASE)) ifeq ($(CPIO_ROOTFS_COMPRESSOR),) ifneq ($(ROOTFS_CPIO_COPYTO),) $(Q)cp -f $(CPIO_BASE) $(ROOTFS_CPIO_COPYTO) diff --git a/target/cramfs/cramfs.mk b/target/cramfs/cramfs.mk index 99f9f79..79353b5 100644 --- a/target/cramfs/cramfs.mk +++ b/target/cramfs/cramfs.mk @@ -52,21 +52,21 @@ CRAMFS_TARGET=$(IMAGE).cramfs cramfsroot: host-fakeroot makedevs cramfs # Use fakeroot to pretend all target binaries are owned by root - rm -f $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(CRAMFS_TARGET)) - touch $(PROJECT_BUILD_DIR)/.fakeroot.00000 - cat $(PROJECT_BUILD_DIR)/.fakeroot* > $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(CRAMFS_TARGET)) - echo "chown -R 0:0 $(TARGET_DIR)" >> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(CRAMFS_TARGET)) + rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(CRAMFS_TARGET)) + touch $(BUILD_DIR)/.fakeroot.00000 + cat $(BUILD_DIR)/.fakeroot* > $(BUILD_DIR)/_fakeroot.$(notdir $(CRAMFS_TARGET)) + echo "chown -R 0:0 $(TARGET_DIR)" >> $(BUILD_DIR)/_fakeroot.$(notdir $(CRAMFS_TARGET)) ifneq ($(TARGET_DEVICE_TABLE),) # Use fakeroot to pretend to create all needed device nodes echo "$(HOST_DIR)/usr/bin/makedevs -d $(TARGET_DEVICE_TABLE) $(TARGET_DIR)" \ - >> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(CRAMFS_TARGET)) + >> $(BUILD_DIR)/_fakeroot.$(notdir $(CRAMFS_TARGET)) endif # Use fakeroot so mkcramfs believes the previous fakery echo "$(CRAMFS_DIR)/mkcramfs -q $(CRAMFS_OPTS) " \ - "$(TARGET_DIR) $(CRAMFS_TARGET)" >> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(CRAMFS_TARGET)) - chmod a+x $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(CRAMFS_TARGET)) - $(HOST_DIR)/usr/bin/fakeroot -- $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(CRAMFS_TARGET)) - - at rm -f $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(CRAMFS_TARGET)) + "$(TARGET_DIR) $(CRAMFS_TARGET)" >> $(BUILD_DIR)/_fakeroot.$(notdir $(CRAMFS_TARGET)) + chmod a+x $(BUILD_DIR)/_fakeroot.$(notdir $(CRAMFS_TARGET)) + $(HOST_DIR)/usr/bin/fakeroot -- $(BUILD_DIR)/_fakeroot.$(notdir $(CRAMFS_TARGET)) + - at rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(CRAMFS_TARGET)) cramfsroot-source: cramfs-source diff --git a/target/device/Atmel/DataFlashBoot/DataflashBoot.mk b/target/device/Atmel/DataFlashBoot/DataflashBoot.mk index c3dc857..8939c28 100644 --- a/target/device/Atmel/DataFlashBoot/DataflashBoot.mk +++ b/target/device/Atmel/DataFlashBoot/DataflashBoot.mk @@ -8,16 +8,16 @@ DATAFLASHBOOT_NAME:=DataflashBoot-$(DATAFLASHBOOT_VERSION) ATMEL_MIRROR:=$(call qstrip,$(BR2_ATMEL_MIRROR)) DATAFLASHBOOT_SITE:=$(ATMEL_MIRROR) DATAFLASHBOOT_SOURCE:=$(DATAFLASHBOOT_NAME).tar.bz2 -DATAFLASHBOOT_DIR:=$(PROJECT_BUILD_DIR)/$(DATAFLASHBOOT_NAME) +DATAFLASHBOOT_DIR:=$(BUILD_DIR)/$(DATAFLASHBOOT_NAME) DATAFLASHBOOT_BINARY:=$(DATAFLASHBOOT_NAME).bin $(DL_DIR)/$(DATAFLASHBOOT_SOURCE): $(call DOWNLOAD,$(DATAFLASHBOOT_SITE),$(DATAFLASHBOOT_SOURCE)) $(DATAFLASHBOOT_DIR)/.unpacked: $(DL_DIR)/$(DATAFLASHBOOT_SOURCE) - mkdir -p $(PROJECT_BUILD_DIR) + mkdir -p $(BUILD_DIR) ls $(DL_DIR)/$(DATAFLASHBOOT_SOURCE) - $(BZCAT) $(DL_DIR)/$(DATAFLASHBOOT_SOURCE) | tar -C $(PROJECT_BUILD_DIR) $(TAR_OPTIONS) - + $(BZCAT) $(DL_DIR)/$(DATAFLASHBOOT_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - touch $(DATAFLASHBOOT_DIR)/.unpacked $(DATAFLASHBOOT_DIR)/$(DATAFLASHBOOT_BINARY): $(DATAFLASHBOOT_DIR)/.unpacked diff --git a/target/device/Atmel/Makefile.in b/target/device/Atmel/Makefile.in index bb03529..bf7a2d1 100644 --- a/target/device/Atmel/Makefile.in +++ b/target/device/Atmel/Makefile.in @@ -38,7 +38,7 @@ LINUX26_RC_PATCH:=$(call qstrip,$(BR2_LINUX26_RC_PATCH)) LINUX26_KCONFIG:=$(BOARD_PATH)/$(BOARD_NAME)-linux-$(LINUX26_VERSION).config # This should be part of target/linux/Makefile.in -LINUX26_BUILD_DIR:=$(PROJECT_BUILD_DIR) +LINUX26_BUILD_DIR:=$(BUILD_DIR) #LINUX26_BINLOC=$(LINUX26_FORMAT) #LINUX26_BINLOC:=$(BINARIES_DIR)/$(LINUX26_KERNEL) @@ -80,7 +80,7 @@ include $(ATMEL_PATH)/at91bootstrap/at91bootstrap.mk endif atmel_status: - @echo PROJECT_BUILD_DIR=$(PROJECT_BUILD_DIR) + @echo BUILD_DIR=$(BUILD_DIR) @echo BOARD_NAME=$(BOARD_NAME) @echo BR2_BOARD_PATH=$(BR2_BOARD_PATH) @echo BR2_MAJOR_MINOR=$(BR2_LINUX_MAJOR_VERSION)$(BR2_LINUX_MINOR_VERSION) diff --git a/target/device/Atmel/at91bootstrap/at91bootstrap.mk b/target/device/Atmel/at91bootstrap/at91bootstrap.mk index 92da683..32ed3e2 100644 --- a/target/device/Atmel/at91bootstrap/at91bootstrap.mk +++ b/target/device/Atmel/at91bootstrap/at91bootstrap.mk @@ -10,7 +10,7 @@ AT91BOOTSTRAP_NAME:=at91bootstrap-$(AT91BOOTSTRAP_VERSION) ATMEL_MIRROR:=$(call qstrip,$(BR2_ATMEL_MIRROR)) AT91BOOTSTRAP_SITE:=$(ATMEL_MIRROR) AT91BOOTSTRAP_SOURCE:=$(AT91BOOTSTRAP_NAME).tar.bz2 -AT91BOOTSTRAP_DIR:=$(PROJECT_BUILD_DIR)/$(AT91BOOTSTRAP_NAME) +AT91BOOTSTRAP_DIR:=$(BUILD_DIR)/$(AT91BOOTSTRAP_NAME) AT91BOOTSTRAP:=$(call qstrip,$(BR2_AT91BOOTSTRAP)) AT91BOOTSTRAP_ZCAT:=$(BZCAT) @@ -37,8 +37,8 @@ $(DL_DIR)/$(AT91BOOTSTRAP_SOURCE): $(call DOWNLOAD,$(AT91BOOTSTRAP_SITE),$(AT91BOOTSTRAP_SOURCE)) $(AT91BOOTSTRAP_DIR)/.unpacked: $(DL_DIR)/$(AT91BOOTSTRAP_SOURCE) - mkdir -p $(PROJECT_BUILD_DIR) - $(AT91BOOTSTRAP_ZCAT) $(DL_DIR)/$(AT91BOOTSTRAP_SOURCE) | tar -C $(PROJECT_BUILD_DIR) $(TAR_OPTIONS) - + mkdir -p $(BUILD_DIR) + $(AT91BOOTSTRAP_ZCAT) $(DL_DIR)/$(AT91BOOTSTRAP_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - toolchain/patch-kernel.sh $(AT91BOOTSTRAP_DIR) target/device/Atmel/at91bootstrap/ at91bootstrap-$(AT91BOOTSTRAP_VERSION)\*.patch touch $(AT91BOOTSTRAP_DIR)/.unpacked diff --git a/target/device/Config.in b/target/device/Config.in index 0e6e09a..6b7f11a 100644 --- a/target/device/Config.in +++ b/target/device/Config.in @@ -1,7 +1,5 @@ menu "Target options" -source "project/Config.in" - comment "Preset Devices" source "target/device/ARMLTD/Config.in" diff --git a/target/device/KwikByte/Makefile.in b/target/device/KwikByte/Makefile.in index d889bc2..1f0b60b 100644 --- a/target/device/KwikByte/Makefile.in +++ b/target/device/KwikByte/Makefile.in @@ -20,7 +20,7 @@ LINUX26_KCONFIG:=$(BOARD_PATH)/$(BOARD_NAME)-linux.config endif # This should be part of target/linux/Makefile.in -LINUX26_BUILD_DIR:=$(PROJECT_BUILD_DIR) +LINUX26_BUILD_DIR:=$(BUILD_DIR) LINUX26_BINLOC=arch/$(KERNEL_ARCH)/boot/$(LINUX26_FORMAT) @@ -38,7 +38,7 @@ endif # Needs to be AFTER board specific Makefiles kwikbyte_status: - @echo PROJECT_BUILD_DIR=$(PROJECT_BUILD_DIR) + @echo BUILD_DIR=$(BUILD_DIR) @echo BOARD_NAME=$(BOARD_NAME) @echo BR2_BOARD_PATH=$(BR2_BOARD_PATH) @echo MAJOR_MINOR=$(LINUX_MAJOR_VER)$(LINUX_MINOR_VER) diff --git a/target/ext2/ext2root.mk b/target/ext2/ext2root.mk index 11624cf..49b53f4 100644 --- a/target/ext2/ext2root.mk +++ b/target/ext2/ext2root.mk @@ -87,14 +87,14 @@ endif $(EXT2_BASE): host-fakeroot makedevs genext2fs # Use fakeroot to pretend all target binaries are owned by root - rm -f $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(EXT2_TARGET)) - touch $(PROJECT_BUILD_DIR)/.fakeroot.00000 - cat $(PROJECT_BUILD_DIR)/.fakeroot* > $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(EXT2_TARGET)) - echo "chown -R 0:0 $(TARGET_DIR)" >> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(EXT2_TARGET)) + rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(EXT2_TARGET)) + touch $(BUILD_DIR)/.fakeroot.00000 + cat $(BUILD_DIR)/.fakeroot* > $(BUILD_DIR)/_fakeroot.$(notdir $(EXT2_TARGET)) + echo "chown -R 0:0 $(TARGET_DIR)" >> $(BUILD_DIR)/_fakeroot.$(notdir $(EXT2_TARGET)) ifneq ($(TARGET_DEVICE_TABLE),) # Use fakeroot to pretend to create all needed device nodes echo "$(HOST_DIR)/usr/bin/makedevs -d $(TARGET_DEVICE_TABLE) $(TARGET_DIR)" \ - >> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(EXT2_TARGET)) + >> $(BUILD_DIR)/_fakeroot.$(notdir $(EXT2_TARGET)) endif # Use fakeroot so genext2fs believes the previous fakery ifeq ($(strip $(BR2_TARGET_ROOTFS_EXT2_BLOCKS)),0) @@ -106,14 +106,14 @@ ifeq ($(strip $(BR2_TARGET_ROOTFS_EXT2_BLOCKS)),0) set -x; \ echo "$(GENEXT2_DIR)/genext2fs -b $$GENEXT2_SIZE " \ "-N $$GENEXT2_INODES -d $(TARGET_DIR) " \ - "$(EXT2_OPTS) $(EXT2_BASE)" >> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(EXT2_TARGET)) + "$(EXT2_OPTS) $(EXT2_BASE)" >> $(BUILD_DIR)/_fakeroot.$(notdir $(EXT2_TARGET)) else echo "$(GENEXT2_DIR)/genext2fs -d $(TARGET_DIR) " \ - "$(EXT2_OPTS) $(EXT2_BASE)" >> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(EXT2_TARGET)) + "$(EXT2_OPTS) $(EXT2_BASE)" >> $(BUILD_DIR)/_fakeroot.$(notdir $(EXT2_TARGET)) endif - chmod a+x $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(EXT2_TARGET)) - $(HOST_DIR)/usr/bin/fakeroot -- $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(EXT2_TARGET)) - - at rm -f $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(EXT2_TARGET)) + chmod a+x $(BUILD_DIR)/_fakeroot.$(notdir $(EXT2_TARGET)) + $(HOST_DIR)/usr/bin/fakeroot -- $(BUILD_DIR)/_fakeroot.$(notdir $(EXT2_TARGET)) + - at rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(EXT2_TARGET)) ifneq ($(EXT2_ROOTFS_COMPRESSOR),) $(EXT2_BASE).$(EXT2_ROOTFS_COMPRESSOR_EXT): $(EXT2_ROOTFS_COMPRESSOR_PREREQ) $(EXT2_BASE) diff --git a/target/initramfs/initramfs.mk b/target/initramfs/initramfs.mk index 195a929..0030278 100644 --- a/target/initramfs/initramfs.mk +++ b/target/initramfs/initramfs.mk @@ -18,19 +18,19 @@ $(INITRAMFS_TARGET) initramfs: host-fakeroot makedevs rm -f $(TARGET_DIR)/init ln -s sbin/init $(TARGET_DIR)/init # Use fakeroot to pretend all target binaries are owned by root - rm -f $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET)) - touch $(PROJECT_BUILD_DIR)/.fakeroot.00000 - cat $(PROJECT_BUILD_DIR)/.fakeroot* > $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET)) - echo "chown -R 0:0 $(TARGET_DIR)" >> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET)) + rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET)) + touch $(BUILD_DIR)/.fakeroot.00000 + cat $(BUILD_DIR)/.fakeroot* > $(BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET)) + echo "chown -R 0:0 $(TARGET_DIR)" >> $(BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET)) # Use fakeroot to pretend to create all needed device nodes echo "$(HOST_DIR)/usr/bin/makedevs -d $(TARGET_DEVICE_TABLE) $(TARGET_DIR)" \ - >> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET)) + >> $(BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET)) # Use fakeroot so gen_initramfs_list.sh believes the previous fakery echo "$(SHELL) target/initramfs/gen_initramfs_list.sh -u 0 -g 0 $(TARGET_DIR) > $(INITRAMFS_TARGET)" \ - >> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET)) - chmod a+x $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET)) - $(HOST_DIR)/usr/bin/fakeroot -- $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET)) - -rm -f $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET)) + >> $(BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET)) + chmod a+x $(BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET)) + $(HOST_DIR)/usr/bin/fakeroot -- $(BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET)) + -rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET)) initramfs-source: diff --git a/target/iso9660/iso9660.mk b/target/iso9660/iso9660.mk index 4dfa1ad..94edf63 100644 --- a/target/iso9660/iso9660.mk +++ b/target/iso9660/iso9660.mk @@ -60,17 +60,17 @@ $(ISO9660_TARGET): host-fakeroot $(LINUX_KERNEL) $(EXT2_TARGET) grub mkisofs cp $(LINUX_KERNEL) $(ISO9660_TARGET_DIR)/kernel cp $(EXT2_TARGET) $(ISO9660_TARGET_DIR)/initrd # Use fakeroot to pretend all target binaries are owned by root - rm -f $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(ISO9660_TARGET)) - touch $(PROJECT_BUILD_DIR)/.fakeroot.00000 - cat $(PROJECT_BUILD_DIR)/.fakeroot* > $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(ISO9660_TARGET)) - echo "chown -R 0:0 $(ISO9660_TARGET_DIR)" >> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(ISO9660_TARGET)) + rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(ISO9660_TARGET)) + touch $(BUILD_DIR)/.fakeroot.00000 + cat $(BUILD_DIR)/.fakeroot* > $(BUILD_DIR)/_fakeroot.$(notdir $(ISO9660_TARGET)) + echo "chown -R 0:0 $(ISO9660_TARGET_DIR)" >> $(BUILD_DIR)/_fakeroot.$(notdir $(ISO9660_TARGET)) # Use fakeroot so mkisofs believes the previous fakery echo "$(MKISOFS_TARGET) -R -b boot/grub/stage2_eltorito -no-emul-boot " \ "-boot-load-size 4 -boot-info-table -o $(ISO9660_TARGET) $(ISO9660_TARGET_DIR)" \ - >> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(ISO9660_TARGET)) - chmod a+x $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(ISO9660_TARGET)) - $(HOST_DIR)/usr/bin/fakeroot -- $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(ISO9660_TARGET)) - - at rm -f $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(ISO9660_TARGET)) + >> $(BUILD_DIR)/_fakeroot.$(notdir $(ISO9660_TARGET)) + chmod a+x $(BUILD_DIR)/_fakeroot.$(notdir $(ISO9660_TARGET)) + $(HOST_DIR)/usr/bin/fakeroot -- $(BUILD_DIR)/_fakeroot.$(notdir $(ISO9660_TARGET)) + - at rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(ISO9660_TARGET)) iso9660root: $(ISO9660_TARGET) echo $(ISO9660_TARGET) diff --git a/target/jffs2/jffs2root.mk b/target/jffs2/jffs2root.mk index 9d67347..7d31417 100644 --- a/target/jffs2/jffs2root.mk +++ b/target/jffs2/jffs2root.mk @@ -46,28 +46,28 @@ endif # $(JFFS2_TARGET): host-fakeroot makedevs mtd-host # Use fakeroot to pretend all target binaries are owned by root - rm -f $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(JFFS2_TARGET)) - touch $(PROJECT_BUILD_DIR)/.fakeroot.00000 - cat $(PROJECT_BUILD_DIR)/.fakeroot* > $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(JFFS2_TARGET)) - echo "chown -R 0:0 $(TARGET_DIR)" >> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(JFFS2_TARGET)) + rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(JFFS2_TARGET)) + touch $(BUILD_DIR)/.fakeroot.00000 + cat $(BUILD_DIR)/.fakeroot* > $(BUILD_DIR)/_fakeroot.$(notdir $(JFFS2_TARGET)) + echo "chown -R 0:0 $(TARGET_DIR)" >> $(BUILD_DIR)/_fakeroot.$(notdir $(JFFS2_TARGET)) ifneq ($(TARGET_DEVICE_TABLE),) # Use fakeroot to pretend to create all needed device nodes echo "$(HOST_DIR)/usr/bin/makedevs -d $(TARGET_DEVICE_TABLE) $(TARGET_DIR)" \ - >> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(JFFS2_TARGET)) + >> $(BUILD_DIR)/_fakeroot.$(notdir $(JFFS2_TARGET)) endif # Use fakeroot so mkfs.jffs2 believes the previous fakery ifneq ($(BR2_TARGET_ROOTFS_JFFS2_SUMMARY),) echo "$(MKFS_JFFS2) $(JFFS2_OPTS) -d $(TARGET_DIR) -o $(JFFS2_TARGET).nosummary && " \ "$(SUMTOOL) $(SUMTOOL_OPTS) -i $(JFFS2_TARGET).nosummary -o $(JFFS2_TARGET) && " \ "rm $(JFFS2_TARGET).nosummary" \ - >> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(JFFS2_TARGET)) + >> $(BUILD_DIR)/_fakeroot.$(notdir $(JFFS2_TARGET)) else echo "$(MKFS_JFFS2) $(JFFS2_OPTS) -d $(TARGET_DIR) -o $(JFFS2_TARGET)" \ - >> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(JFFS2_TARGET)) + >> $(BUILD_DIR)/_fakeroot.$(notdir $(JFFS2_TARGET)) endif - chmod a+x $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(JFFS2_TARGET)) - $(HOST_DIR)/usr/bin/fakeroot -- $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(JFFS2_TARGET)) - - at rm -f $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(JFFS2_TARGET)) + chmod a+x $(BUILD_DIR)/_fakeroot.$(notdir $(JFFS2_TARGET)) + $(HOST_DIR)/usr/bin/fakeroot -- $(BUILD_DIR)/_fakeroot.$(notdir $(JFFS2_TARGET)) + - at rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(JFFS2_TARGET)) @ls -l $(JFFS2_TARGET) ifeq ($(BR2_JFFS2_TARGET_SREC),y) $(TARGET_CROSS)objcopy -I binary -O srec --adjust-vma 0xa1000000 $(JFFS2_TARGET) $(JFFS2_TARGET).srec diff --git a/target/linux/Makefile.in b/target/linux/Makefile.in index 742fe19..cf430d9 100644 --- a/target/linux/Makefile.in +++ b/target/linux/Makefile.in @@ -69,7 +69,7 @@ LINUX26_KERNEL_NAME=$(BINARIES_DIR)/$(LINUX26_FORMAT)$(ROOTFS_STRIPPED_SUFFIX) endif # Version of Linux AFTER patches -LINUX26_DIR=$(PROJECT_BUILD_DIR)/linux-$(LINUX26_VERSION) +LINUX26_DIR=$(BUILD_DIR)/linux-$(LINUX26_VERSION) # for packages that need it LINUX_VERSION:=$(LINUX26_VERSION) @@ -106,10 +106,10 @@ endif # ($(LINUX26_VERSION),$(LINUX_HEADERS_VERSION)) $(LINUX26_DIR)/.unpacked: $(DL_DIR)/$(LINUX26_SOURCE) rm -rf $(LINUX26_DIR) @echo "*** Unpacking kernel source" - $(LINUX26_BZCAT) $(DL_DIR)/$(LINUX26_SOURCE) | tar -C $(PROJECT_BUILD_DIR) $(TAR_OPTIONS) - + $(LINUX26_BZCAT) $(DL_DIR)/$(LINUX26_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - ifneq ($(DOWNLOAD_LINUX26_VERSION),$(LINUX26_VERSION)) # Rename the dir from the downloaded version to the AFTER patch version - mv -f $(PROJECT_BUILD_DIR)/linux-$(DOWNLOAD_LINUX26_VERSION) $(LINUX26_DIR) + mv -f $(BUILD_DIR)/linux-$(DOWNLOAD_LINUX26_VERSION) $(LINUX26_DIR) endif touch $@ diff --git a/target/linux/Makefile.in.advanced b/target/linux/Makefile.in.advanced index 9de4735..b4774ca 100644 --- a/target/linux/Makefile.in.advanced +++ b/target/linux/Makefile.in.advanced @@ -48,7 +48,7 @@ BOARD_PATH:=$(call qstrip,$(BR2_BOARD_PATH)) endif # Version of Linux AFTER patches -LINUX26_DIR:=$(PROJECT_BUILD_DIR)/linux-$(LINUX26_VERSION) +LINUX26_DIR:=$(BUILD_DIR)/linux-$(LINUX26_VERSION) # for packages that need it LINUX_VERSION:=$(LINUX26_VERSION) @@ -132,7 +132,7 @@ endif # -------------- # UIMAGE ifeq ($(LINUX26_FORMAT),uImage) -LINUX26_MKIMAGE_DIR:=$(PROJECT_BUILD_DIR)/u-boot-tools +LINUX26_MKIMAGE_DIR:=$(BUILD_DIR)/u-boot-tools LINUX26_MKIMAGE_DEP:=$(LINUX26_MKIMAGE_DIR)/mkimage ifeq ($(LINUX26_BINLOC),) LINUX26_BINLOC:=arch/$(KERNEL_ARCH)/boot/$(LINUX26_FORMAT) @@ -200,17 +200,17 @@ endif $(LINUX26_DIR)/.unpacked: $(DL_DIR)/$(LINUX26_SOURCE) rm -rf $(LINUX26_DIR) @echo "*** Unpacking kernel source" - $(LINUX26_BZCAT) $(DL_DIR)/$(LINUX26_SOURCE) | tar -C $(PROJECT_BUILD_DIR) $(TAR_OPTIONS) - + $(LINUX26_BZCAT) $(DL_DIR)/$(LINUX26_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - ifneq ($(DOWNLOAD_LINUX26_VERSION),$(LINUX26_VERSION)) # Rename the dir from the downloaded version to the AFTER patch version - mv -f $(PROJECT_BUILD_DIR)/linux-$(DOWNLOAD_LINUX26_VERSION) $(LINUX26_DIR) - echo $(LINUX26_VERSION_PROBED) > $(PROJECT_BUILD_DIR)/.linux-version + mv -f $(BUILD_DIR)/linux-$(DOWNLOAD_LINUX26_VERSION) $(LINUX26_DIR) + echo $(LINUX26_VERSION_PROBED) > $(BUILD_DIR)/.linux-version endif touch $@ # ----------------------------------------------------------------------------- -LINUX26_TARGETS+=$(LINUX26_KERNEL) $(PROJECT_BUILD_DIR)/.linux-version +LINUX26_TARGETS+=$(LINUX26_KERNEL) $(BUILD_DIR)/.linux-version ifeq ($(BR2_LINUX_COPYTO_ROOTFS),y) LINUX26_TARGETS+=$(TARGET_DIR)/boot/$(LINUX26_KERNEL_NAME) @@ -381,7 +381,7 @@ $(LINUX26_KERNEL): $(LINUX26_DIR)/$(LINUX26_BINLOC) touch $@ # ----------------------------------------------------------------------------- -$(PROJECT_BUILD_DIR)/autotools-stamps/linux_modules_target_installed: $(LINUX26_DIR)/.depend_done +$(STAMP_DIR)/linux_modules_target_installed: $(LINUX26_DIR)/.depend_done rm -rf $(TARGET_DIR)/lib/modules/$(LINUX26_VERSION_PROBED) rm -f $(TARGET_DIR)/sbin/cardmgr # Make Linux depend on modules only if enabled in the .config. @@ -441,8 +441,8 @@ $(LINUX_COPYTO)/$(LINUX26_KERNEL_NAME): $(LINUX26_KERNEL) touch $@ endif -$(PROJECT_BUILD_DIR)/.linux-version: $(LINUX26_KERNEL) - echo $(LINUX26_VERSION_PROBED) > $(PROJECT_BUILD_DIR)/.linux-version +$(BUILD_DIR)/.linux-version: $(LINUX26_KERNEL) + echo $(LINUX26_VERSION_PROBED) > $(BUILD_DIR)/.linux-version echo LINUX_MODULES=`$(LINUX26_VERSION_PROBED)` $(LINUX26_MKIMAGE_DIR)/mkimage: $(U_BOOT_TOOLS) @@ -451,9 +451,9 @@ $(LINUX26_MKIMAGE_DIR)/mkimage: $(U_BOOT_TOOLS) linux26: $(LINUX26_TARGETS) -linux26-version: $(PROJECT_BUILD_DIR)/.linux-version +linux26-version: $(BUILD_DIR)/.linux-version -linux26-modules: cross-depmod26 $(PROJECT_BUILD_DIR)/autotools-stamps/linux_modules_target_installed +linux26-modules: cross-depmod26 $(STAMP_DIR)/linux_modules_target_installed linux26-source: $(DL_DIR)/$(LINUX26_SOURCE) @@ -470,7 +470,7 @@ linux26-force: # This has been renamed so we do _NOT_ by default run this on 'make clean' linux26clean: - rm -f $(PROJECT_BUILD_DIR)/autotools-stamps/linux_modules_target_installed + rm -f $(STAMP_DIR)/linux_modules_target_installed rm -f $(LINUX26_KERNEL) $(LINUX26_DIR)/.configured -$(MAKE) PATH=$(TARGET_PATH) -C $(LINUX26_DIR) clean @@ -531,7 +531,7 @@ linux-status: @echo LINUX26_TARGETS=$(LINUX26_TARGETS) @echo LINUX26_VERSION=$(LINUX26_VERSION) @echo LINUX26_MAKE_FLAGS=$(LINUX26_MAKE_FLAGS) - @echo PROJECT_BUILD_DIR=$(PROJECT_BUILD_DIR) + @echo BUILD_DIR=$(BUILD_DIR) @echo TARGETS=$(TARGETS) endif diff --git a/target/romfs/romfs.mk b/target/romfs/romfs.mk index 2e2470b..6e7fbee 100644 --- a/target/romfs/romfs.mk +++ b/target/romfs/romfs.mk @@ -38,20 +38,20 @@ ROMFS_TARGET=$(IMAGE).romfs romfsroot: host-fakeroot makedevs romfs # Use fakeroot to pretend all target binaries are owned by root - rm -f $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(ROMFS_TARGET)) - touch $(PROJECT_BUILD_DIR)/.fakeroot.00000 - cat $(PROJECT_BUILD_DIR)/.fakeroot* > $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(ROMFS_TARGET)) - echo "chown -R 0:0 $(TARGET_DIR)" >> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(ROMFS_TARGET)) + rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(ROMFS_TARGET)) + touch $(BUILD_DIR)/.fakeroot.00000 + cat $(BUILD_DIR)/.fakeroot* > $(BUILD_DIR)/_fakeroot.$(notdir $(ROMFS_TARGET)) + echo "chown -R 0:0 $(TARGET_DIR)" >> $(BUILD_DIR)/_fakeroot.$(notdir $(ROMFS_TARGET)) ifneq ($(TARGET_DEVICE_TABLE),) # Use fakeroot to pretend to create all needed device nodes echo "$(HOST_DIR)/usr/bin/makedevs -d $(TARGET_DEVICE_TABLE) $(TARGET_DIR)" \ - >> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(ROMFS_TARGET)) + >> $(BUILD_DIR)/_fakeroot.$(notdir $(ROMFS_TARGET)) endif # Use fakeroot so genromfs believes the previous fakery - echo "$(ROMFS_DIR)/genromfs -d $(TARGET_DIR) -f $(ROMFS_TARGET)" >> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(ROMFS_TARGET)) - chmod a+x $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(ROMFS_TARGET)) - $(HOST_DIR)/usr/bin/fakeroot -- $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(ROMFS_TARGET)) - - at rm -f $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(ROMFS_TARGET)) + echo "$(ROMFS_DIR)/genromfs -d $(TARGET_DIR) -f $(ROMFS_TARGET)" >> $(BUILD_DIR)/_fakeroot.$(notdir $(ROMFS_TARGET)) + chmod a+x $(BUILD_DIR)/_fakeroot.$(notdir $(ROMFS_TARGET)) + $(HOST_DIR)/usr/bin/fakeroot -- $(BUILD_DIR)/_fakeroot.$(notdir $(ROMFS_TARGET)) + - at rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(ROMFS_TARGET)) romfsroot-source: romfs-source diff --git a/target/squashfs/squashfsroot.mk b/target/squashfs/squashfsroot.mk index d7d559b..58f8320 100644 --- a/target/squashfs/squashfsroot.mk +++ b/target/squashfs/squashfsroot.mk @@ -48,24 +48,24 @@ SQUASHFS_TARGET:=$(IMAGE).squashfs squashfsroot: host-fakeroot makedevs squashfs # Use fakeroot to pretend all target binaries are owned by root - rm -f $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(SQUASHFS_TARGET)) - touch $(PROJECT_BUILD_DIR)/.fakeroot.00000 - cat $(PROJECT_BUILD_DIR)/.fakeroot* > $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(SQUASHFS_TARGET)) - echo "chown -R 0:0 $(TARGET_DIR)" >> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(SQUASHFS_TARGET)) + rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(SQUASHFS_TARGET)) + touch $(BUILD_DIR)/.fakeroot.00000 + cat $(BUILD_DIR)/.fakeroot* > $(BUILD_DIR)/_fakeroot.$(notdir $(SQUASHFS_TARGET)) + echo "chown -R 0:0 $(TARGET_DIR)" >> $(BUILD_DIR)/_fakeroot.$(notdir $(SQUASHFS_TARGET)) ifneq ($(TARGET_DEVICE_TABLE),) # Use fakeroot to pretend to create all needed device nodes echo "$(HOST_DIR)/usr/bin/makedevs -d $(TARGET_DEVICE_TABLE) $(TARGET_DIR)" \ - >> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(SQUASHFS_TARGET)) + >> $(BUILD_DIR)/_fakeroot.$(notdir $(SQUASHFS_TARGET)) endif # Use fakeroot so mksquashfs believes the previous fakery echo "$(SQUASHFS_DIR)/squashfs-tools/mksquashfs " \ "$(TARGET_DIR) $(SQUASHFS_TARGET) " \ "-noappend $(SQUASHFS_ENDIANNESS)" \ - >> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(SQUASHFS_TARGET)) - chmod a+x $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(SQUASHFS_TARGET)) - $(HOST_DIR)/usr/bin/fakeroot -- $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(SQUASHFS_TARGET)) + >> $(BUILD_DIR)/_fakeroot.$(notdir $(SQUASHFS_TARGET)) + chmod a+x $(BUILD_DIR)/_fakeroot.$(notdir $(SQUASHFS_TARGET)) + $(HOST_DIR)/usr/bin/fakeroot -- $(BUILD_DIR)/_fakeroot.$(notdir $(SQUASHFS_TARGET)) chmod 0644 $(SQUASHFS_TARGET) - - at rm -f $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(SQUASHFS_TARGET)) + - at rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(SQUASHFS_TARGET)) squashfsroot-source: squashfs-source diff --git a/target/tar/tarroot.mk b/target/tar/tarroot.mk index a62f5bf..a7e95df 100644 --- a/target/tar/tarroot.mk +++ b/target/tar/tarroot.mk @@ -25,20 +25,20 @@ ROOTFS_TAR_COPYTO:=$(call qstrip,$(BR2_TARGET_ROOTFS_TAR_COPYTO)) tarroot: host-fakeroot makedevs # Use fakeroot to pretend all target binaries are owned by root - rm -f $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET)) - touch $(PROJECT_BUILD_DIR)/.fakeroot.00000 - cat $(PROJECT_BUILD_DIR)/.fakeroot* > $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET)) - echo "chown -R 0:0 $(TARGET_DIR)" >> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET)) + rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET)) + touch $(BUILD_DIR)/.fakeroot.00000 + cat $(BUILD_DIR)/.fakeroot* > $(BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET)) + echo "chown -R 0:0 $(TARGET_DIR)" >> $(BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET)) ifneq ($(TARGET_DEVICE_TABLE),) # Use fakeroot to pretend to create all needed device nodes echo "$(HOST_DIR)/usr/bin/makedevs -d $(TARGET_DEVICE_TABLE) $(TARGET_DIR)" \ - >> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET)) + >> $(BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET)) endif # Use fakeroot so tar believes the previous fakery echo "tar -c$(TAR_OPTS)f $(TAR_TARGET) -C $(TARGET_DIR) ." \ - >> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET)) - chmod a+x $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET)) - $(HOST_DIR)/usr/bin/fakeroot -- $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET)) + >> $(BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET)) + chmod a+x $(BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET)) + $(HOST_DIR)/usr/bin/fakeroot -- $(BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET)) ifneq ($(TAR_COMPRESSOR),) -rm -f $(TAR_TARGET).$() PATH="$(STAGING_DIR)/sbin:$(STAGING_DIR)/bin:$(STAGING_DIR)/usr/sbin:$(STAGING_DIR)/usr/bin:$(PATH)" $(TAR_COMPRESSOR) $(TAR_TARGET) > $(TAR_TARGET).$(TAR_COMPRESSOR_EXT) @@ -46,7 +46,7 @@ endif ifneq ($(ROOTFS_TAR_COPYTO),) $(Q)cp -f $(TAR_TARGET) $(ROOTFS_TAR_COPYTO) endif - - at rm -f $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET)) + - at rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(TAR_TARGET)) tarroot-source: diff --git a/target/u-boot/Makefile.in b/target/u-boot/Makefile.in index 3dc78b1..6987737 100644 --- a/target/u-boot/Makefile.in +++ b/target/u-boot/Makefile.in @@ -8,11 +8,11 @@ U_BOOT_VERSION:=$(call qstrip,$(BR2_UBOOT_VERSION)) U_BOOT_SOURCE:=u-boot-$(U_BOOT_VERSION).tar.bz2 U_BOOT_SITE:=$(call qstrip,$(BR2_U_BOOT_SITE)) -U_BOOT_DIR:=$(PROJECT_BUILD_DIR)/u-boot-$(U_BOOT_VERSION) -U_BOOT_PATCH_DIR:=$(PROJECT_BUILD_DIR)/u-boot-$(U_BOOT_VERSION)-patches +U_BOOT_DIR:=$(BUILD_DIR)/u-boot-$(U_BOOT_VERSION) +U_BOOT_PATCH_DIR:=$(BUILD_DIR)/u-boot-$(U_BOOT_VERSION)-patches U_BOOT_CAT:=$(BZCAT) U_BOOT_BIN:=u-boot.bin -U_BOOT_TARGET_BIN:=$(PROJECT)-u-boot-$(U_BOOT_VERSION)-$(DATE).bin +U_BOOT_TARGET_BIN:=u-boot-$(U_BOOT_VERSION)-$(DATE).bin U_BOOT_TOOLS_BIN:=mkimage U_BOOT_TOOLS:=$(STAGING_DIR)/usr/bin/$(U_BOOT_TOOLS_BIN) @@ -66,7 +66,7 @@ $(DL_DIR)/$(U_BOOT_SOURCE): $(U_BOOT_DIR)/.unpacked: $(DL_DIR)/$(U_BOOT_SOURCE) $(U_BOOT_CAT) $(DL_DIR)/$(U_BOOT_SOURCE) \ - | tar -C $(PROJECT_BUILD_DIR) $(TAR_OPTIONS) - + | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - mkdir -p $(U_BOOT_DIR) touch $@ @@ -102,9 +102,6 @@ ifdef BR2_TARGET_UBOOT_DEFAULT_ENV @echo "#define __BR2_ADDED_CONFIG_H" >> $(U_BOOT_INC_CONF_FILE) $(call insert_define, DATE, $(DATE)) $(call insert_define, CONFIG_LOAD_SCRIPTS, 1) -ifneq ($(strip $(BR2_PROJECT)),"") - $(call insert_define, CONFIG_HOSTNAME, $(BR2_PROJECT)) -endif endif # BR2_TARGET_UBOOT_DEFAULT_ENV ifdef BR2_TARGET_UBOOT_NETWORK ifneq ($(strip $(BR2_TARGET_UBOOT_IPADDR)),"") @@ -194,7 +191,7 @@ $(TARGET_DIR)/usr/sbin/fw_printenv: $(U_BOOT_DIR)/$(U_BOOT_BIN) u-boot: $(U_BOOT_TARGETS) -u-boot-autoscript: $(U_BOOT_AUTOSCRIPT).$(PROJECT) +u-boot-autoscript: $(U_BOOT_AUTOSCRIPT).img u-boot-clean: -$(MAKE) -C $(U_BOOT_DIR) clean @@ -249,7 +246,7 @@ endif echo setargs >> $(U_BOOT_AUTOSCRIPT) echo saveenv >> $(U_BOOT_AUTOSCRIPT) -$(U_BOOT_AUTOSCRIPT).$(PROJECT): $(U_BOOT_AUTOSCRIPT) $(MKIMAGE) +$(U_BOOT_AUTOSCRIPT).img: $(U_BOOT_AUTOSCRIPT) $(MKIMAGE) $(MKIMAGE) -A $(ARCH) \ -O linux \ -T script \ @@ -258,7 +255,7 @@ $(U_BOOT_AUTOSCRIPT).$(PROJECT): $(U_BOOT_AUTOSCRIPT) $(MKIMAGE) -e 0 \ -n "autoscr config" \ -d $(U_BOOT_AUTOSCRIPT) \ - $(U_BOOT_AUTOSCRIPT).$(PROJECT) + $(U_BOOT_AUTOSCRIPT).img diff --git a/target/ubifs/ubifsroot.mk b/target/ubifs/ubifsroot.mk index c09c981..e73d4f9 100644 --- a/target/ubifs/ubifsroot.mk +++ b/target/ubifs/ubifsroot.mk @@ -77,21 +77,21 @@ endif $(UBIFS_BASE): host-fakeroot makedevs mkfs.ubifs # Use fakeroot to pretend all target binaries are owned by root - rm -f $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(UBIFS_TARGET)) - touch $(PROJECT_BUILD_DIR)/.fakeroot.00000 - cat $(PROJECT_BUILD_DIR)/.fakeroot* > $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(UBIFS_TARGET)) - echo "chown -R 0:0 $(TARGET_DIR)" >> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(UBIFS_TARGET)) + rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(UBIFS_TARGET)) + touch $(BUILD_DIR)/.fakeroot.00000 + cat $(BUILD_DIR)/.fakeroot* > $(BUILD_DIR)/_fakeroot.$(notdir $(UBIFS_TARGET)) + echo "chown -R 0:0 $(TARGET_DIR)" >> $(BUILD_DIR)/_fakeroot.$(notdir $(UBIFS_TARGET)) ifneq ($(TARGET_DEVICE_TABLE),) # Use fakeroot to pretend to create all needed device nodes echo "$(HOST_DIR)/usr/bin/makedevs -d $(TARGET_DEVICE_TABLE) $(TARGET_DIR)" \ - >> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(UBIFS_TARGET)) + >> $(BUILD_DIR)/_fakeroot.$(notdir $(UBIFS_TARGET)) endif # Use fakeroot so mkfs.ubifs believes the previous fakery echo "$(MKFS_UBIFS_DIR)/mkfs.ubifs -d $(TARGET_DIR) " \ - "$(UBIFS_OPTS) -o $(UBIFS_BASE)" >> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(UBIFS_TARGET)) - chmod a+x $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(UBIFS_TARGET)) - $(HOST_DIR)/usr/bin/fakeroot -- $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(UBIFS_TARGET)) - - at rm -f $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(UBIFS_TARGET)) + "$(UBIFS_OPTS) -o $(UBIFS_BASE)" >> $(BUILD_DIR)/_fakeroot.$(notdir $(UBIFS_TARGET)) + chmod a+x $(BUILD_DIR)/_fakeroot.$(notdir $(UBIFS_TARGET)) + $(HOST_DIR)/usr/bin/fakeroot -- $(BUILD_DIR)/_fakeroot.$(notdir $(UBIFS_TARGET)) + - at rm -f $(BUILD_DIR)/_fakeroot.$(notdir $(UBIFS_TARGET)) ifneq ($(UBIFS_ROOTFS_COMPRESSOR),) $(UBIFS_BASE).$(UBIFS_ROOTFS_COMPRESSOR_EXT): $(UBIFS_ROOTFS_COMPRESSOR_PREREQ) $(UBIFS_BASE) diff --git a/toolchain/gcc/gcc-uclibc-3.x.mk b/toolchain/gcc/gcc-uclibc-3.x.mk index 131c9bd..dde609b 100644 --- a/toolchain/gcc/gcc-uclibc-3.x.mk +++ b/toolchain/gcc/gcc-uclibc-3.x.mk @@ -324,7 +324,7 @@ endif mkdir -p $(TARGET_DIR)/usr/lib $(TARGET_DIR)/usr/sbin touch $@ -$(PROJECT_BUILD_DIR)/autotools-stamps/gcc_libs_target_installed: $(GCC_BUILD_DIR2)/.installed +$(STAMP_DIR)/gcc_libs_target_installed: $(GCC_BUILD_DIR2)/.installed ifeq ($(BR2_GCC_SHARED_LIBGCC),y) # These are in /lib, so... rm -rf $(TARGET_DIR)/usr/lib/libgcc_s*.so* @@ -354,7 +354,7 @@ endif cross_compiler:=$(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-gcc cross_compiler gcc: gcc-config $(GCC_BUILD_DIR2)/.installed \ - $(PROJECT_BUILD_DIR)/autotools-stamps/gcc_libs_target_installed \ + $(STAMP_DIR)/gcc_libs_target_installed \ $(GCC_TARGETS) gcc-source: $(DL_DIR)/$(GCC_SOURCE) @@ -379,7 +379,7 @@ gcc-dirclean: gcc_initial-dirclean ############################################################# GCC_BUILD_DIR3:=$(BUILD_DIR)/gcc-$(GCC_VERSION)-target -$(GCC_BUILD_DIR3)/.prepared: $(PROJECT_BUILD_DIR)/autotools-stamps/gcc_libs_target_installed $(GCC_TARGET_PREREQ) +$(GCC_BUILD_DIR3)/.prepared: $(STAMP_DIR)/gcc_libs_target_installed $(GCC_TARGET_PREREQ) mkdir -p $(GCC_BUILD_DIR3) touch $@ diff --git a/toolchain/gcc/gcc-uclibc-4.x.mk b/toolchain/gcc/gcc-uclibc-4.x.mk index e9249c1..4129152 100644 --- a/toolchain/gcc/gcc-uclibc-4.x.mk +++ b/toolchain/gcc/gcc-uclibc-4.x.mk @@ -352,7 +352,7 @@ endif mkdir -p $(TARGET_DIR)/usr/lib $(TARGET_DIR)/usr/sbin touch $@ -$(PROJECT_BUILD_DIR)/autotools-stamps/gcc_libs_target_installed: $(GCC_BUILD_DIR2)/.installed +$(STAMP_DIR)/gcc_libs_target_installed: $(GCC_BUILD_DIR2)/.installed ifeq ($(BR2_GCC_SHARED_LIBGCC),y) # These are in /lib, so... rm -rf $(TARGET_DIR)/usr/lib/libgcc_s*.so* @@ -381,7 +381,7 @@ endif cross_compiler:=$(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-gcc cross_compiler gcc: uclibc-configured binutils gcc_initial \ $(LIBFLOAT_TARGET) uclibc $(GCC_BUILD_DIR2)/.installed \ - $(PROJECT_BUILD_DIR)/autotools-stamps/gcc_libs_target_installed \ + $(STAMP_DIR)/gcc_libs_target_installed \ $(GCC_TARGETS) gcc-source: $(DL_DIR)/$(GCC_SOURCE) @@ -403,7 +403,7 @@ gcc-dirclean: gcc_initial-dirclean ############################################################# GCC_BUILD_DIR3:=$(BUILD_DIR)/gcc-$(GCC_VERSION)-target -$(GCC_BUILD_DIR3)/.prepared: $(PROJECT_BUILD_DIR)/autotools-stamps/gcc_libs_target_installed $(GCC_TARGET_PREREQ) +$(GCC_BUILD_DIR3)/.prepared: $(STAMP_DIR)/gcc_libs_target_installed $(GCC_TARGET_PREREQ) mkdir -p $(GCC_BUILD_DIR3) touch $@ -- 1.6.0.4 ^ permalink raw reply related [flat|nested] 39+ messages in thread
* [Buildroot] [PATCH 1/5] Remove the "project" feature 2009-09-07 22:09 ` [Buildroot] [PATCH 1/5] Remove the "project" feature Thomas Petazzoni @ 2009-09-08 6:27 ` Hans-Christian Egtvedt 2009-09-08 6:58 ` Sven Neumann ` (2 more replies) 2009-09-08 7:06 ` Peter Korsgaard 1 sibling, 3 replies; 39+ messages in thread From: Hans-Christian Egtvedt @ 2009-09-08 6:27 UTC (permalink / raw) To: buildroot On Tue, 8 Sep 2009 00:09:49 +0200 Thomas Petazzoni <thomas.petazzoni@free-electrons.com> wrote: > The "project" feature was designed to allow to several projects to be > built inside the same Buildroot source tree and allowing the toolchain > and non-configurable packages to be shared between the different > projects on the same architecture. While being interesting in theory, > this feature adds a level of complexity to Buildroot, both from an > user perspective and from a developer perspective, while one of the > main Buildroot strengh is to be simple. Moreover, this feature is only > seldomly used by our users. > I use it all the time ;) How do you propose building for multiple targets? I would at least like to share the toolchain, preferably also libraries. I do however also like the KISS aspect of Buildroot. > >From a user-level perspective, this for example allows to remove the > project_build_ARCH directory, which was very confusing. The > autotools-stamps directory is also removed, since these stamps are > back at their normal location. > I did not think project_build_ARCH was confusing, but perhaps project_ part would be misleading? I would rather see a build/board/<stuff> setup. <snipp> -- Best regards, Hans-Christian Egtvedt ^ permalink raw reply [flat|nested] 39+ messages in thread
* [Buildroot] [PATCH 1/5] Remove the "project" feature 2009-09-08 6:27 ` Hans-Christian Egtvedt @ 2009-09-08 6:58 ` Sven Neumann 2009-09-08 7:07 ` Peter Korsgaard 2009-09-08 6:59 ` Peter Korsgaard 2009-09-08 7:16 ` Thomas Petazzoni 2 siblings, 1 reply; 39+ messages in thread From: Sven Neumann @ 2009-09-08 6:58 UTC (permalink / raw) To: buildroot Hi, On Tue, 2009-09-08 at 08:27 +0200, Hans-Christian Egtvedt wrote: > On Tue, 8 Sep 2009 00:09:49 +0200 > Thomas Petazzoni <thomas.petazzoni@free-electrons.com> wrote: > > > The "project" feature was designed to allow to several projects to be > > built inside the same Buildroot source tree and allowing the toolchain > > and non-configurable packages to be shared between the different > > projects on the same architecture. While being interesting in theory, > > this feature adds a level of complexity to Buildroot, both from an > > user perspective and from a developer perspective, while one of the > > main Buildroot strengh is to be simple. Moreover, this feature is only > > seldomly used by our users. > > > > I use it all the time ;) How do you propose building for multiple > targets? I would at least like to share the toolchain, preferably also > libraries. Same here. We don't currently use the project feature, but mostly because we didn't find the time yet to try it. We are building several targets for the same platform and currently we do a full rebuild for each target, this includes the toolkit. If there was an easy way to at least share the tool-chain, then I would welcome if it wasn't removed from buildroot. Sven ^ permalink raw reply [flat|nested] 39+ messages in thread
* [Buildroot] [PATCH 1/5] Remove the "project" feature 2009-09-08 6:58 ` Sven Neumann @ 2009-09-08 7:07 ` Peter Korsgaard 2009-09-08 7:15 ` Sven Neumann 0 siblings, 1 reply; 39+ messages in thread From: Peter Korsgaard @ 2009-09-08 7:07 UTC (permalink / raw) To: buildroot >>>>> "Sven" == Sven Neumann <s.neumann@raumfeld.com> writes: Hi, >> I use it all the time ;) How do you propose building for multiple >> targets? I would at least like to share the toolchain, preferably >> also libraries. Sven> Same here. We don't currently use the project feature, but mostly Sven> because we didn't find the time yet to try it. We are building Sven> several targets for the same platform and currently we do a full Sven> rebuild for each target, this includes the toolkit. If there was Sven> an easy way to at least share the tool-chain, then I would Sven> welcome if it wasn't removed from buildroot. We have that already with the external toolchain support. I also don't use it yet (we're doing like you), but will start to use it soon. -- Bye, Peter Korsgaard ^ permalink raw reply [flat|nested] 39+ messages in thread
* [Buildroot] [PATCH 1/5] Remove the "project" feature 2009-09-08 7:07 ` Peter Korsgaard @ 2009-09-08 7:15 ` Sven Neumann 2009-09-08 7:23 ` Peter Korsgaard 0 siblings, 1 reply; 39+ messages in thread From: Sven Neumann @ 2009-09-08 7:15 UTC (permalink / raw) To: buildroot On Tue, 2009-09-08 at 09:07 +0200, Peter Korsgaard wrote: > >>>>> "Sven" == Sven Neumann <s.neumann@raumfeld.com> writes: > > Hi, > > >> I use it all the time ;) How do you propose building for multiple > >> targets? I would at least like to share the toolchain, preferably > >> also libraries. > > Sven> Same here. We don't currently use the project feature, but mostly > Sven> because we didn't find the time yet to try it. We are building > Sven> several targets for the same platform and currently we do a full > Sven> rebuild for each target, this includes the toolkit. If there was > Sven> an easy way to at least share the tool-chain, then I would > Sven> welcome if it wasn't removed from buildroot. > > We have that already with the external toolchain support. I also don't > use it yet (we're doing like you), but will start to use it soon. So how would I go about reusing the buildroot supplied tool-chain for multiple targets? I imagine that one basic target would build the tool-chain and the other targets would then use that as their external tool-chain? Could you give an example or a quick introduction on how to set this up? Or just point me to the docs if I just missed that such documentation exists. That would be much appreciated. Sven ^ permalink raw reply [flat|nested] 39+ messages in thread
* [Buildroot] [PATCH 1/5] Remove the "project" feature 2009-09-08 7:15 ` Sven Neumann @ 2009-09-08 7:23 ` Peter Korsgaard 2009-09-08 7:31 ` Thomas Petazzoni 0 siblings, 1 reply; 39+ messages in thread From: Peter Korsgaard @ 2009-09-08 7:23 UTC (permalink / raw) To: buildroot >>>>> "Sven" == Sven Neumann <s.neumann@raumfeld.com> writes: Hi, >> We have that already with the external toolchain support. I also don't >> use it yet (we're doing like you), but will start to use it soon. Sven> So how would I go about reusing the buildroot supplied tool-chain Sven> for multiple targets? I imagine that one basic target would build Sven> the tool-chain and the other targets would then use that as their Sven> external tool-chain? Could you give an example or a quick Sven> introduction on how to set this up? Or just point me to the docs Sven> if I just missed that such documentation exists. That would be Sven> much appreciated. Yes, something like that. Have you read http://buildroot.net/buildroot.html#external_toolchain ? As I said before, I haven't actually used it yet, maybe Thomas can fill in the blanks? It might be an idea to get the toolchain build to write out a .config snippet that can get included when using it to ensure we have the various toolchain settings correct. -- Bye, Peter Korsgaard ^ permalink raw reply [flat|nested] 39+ messages in thread
* [Buildroot] [PATCH 1/5] Remove the "project" feature 2009-09-08 7:23 ` Peter Korsgaard @ 2009-09-08 7:31 ` Thomas Petazzoni 2009-09-08 7:43 ` Peter Korsgaard 0 siblings, 1 reply; 39+ messages in thread From: Thomas Petazzoni @ 2009-09-08 7:31 UTC (permalink / raw) To: buildroot Le Tue, 08 Sep 2009 09:23:26 +0200, Peter Korsgaard <jacmet@uclibc.org> a ?crit : > Yes, something like that. Have you read > http://buildroot.net/buildroot.html#external_toolchain ? As I said > before, I haven't actually used it yet, maybe Thomas can fill in the > blanks? Until now, I've only used the external toolchain support to use toolchains compiled with Crosstool-NG. I haven't tried re-using a toolchain generated by Buildroot. In theory, it shouldn't make any difference, but everyone knows that between theory and practice, there's usually a gap. > It might be an idea to get the toolchain build to write out a .config > snippet that can get included when using it to ensure we have the > various toolchain settings correct. Ah, I'm interested in how you would do that. Currently, what the external toolchain support does is that: 1. It asks the user for the configuration of the toolchain in the Kconfig interface (IPV6 ? RPC ? Locale ? WCHAR ? LARGEFILE ?), because at configuration time, it is not possible to execute tests to guess the toolchain configuration, but these configuration options must be defined properly since some packages depend on them. 2. At compilation time, before "importing" the external toolchain, ext-tool.mk checks the validy of the provided configuration against the toolchain. Thomas -- Thomas Petazzoni, Free Electrons Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com ^ permalink raw reply [flat|nested] 39+ messages in thread
* [Buildroot] [PATCH 1/5] Remove the "project" feature 2009-09-08 7:31 ` Thomas Petazzoni @ 2009-09-08 7:43 ` Peter Korsgaard 2009-09-08 7:49 ` Thomas Petazzoni 0 siblings, 1 reply; 39+ messages in thread From: Peter Korsgaard @ 2009-09-08 7:43 UTC (permalink / raw) To: buildroot >>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes: Hi, Thomas> Until now, I've only used the external toolchain support to use Thomas> toolchains compiled with Crosstool-NG. I haven't tried re-using a Thomas> toolchain generated by Buildroot. In theory, it shouldn't make any Thomas> difference, but everyone knows that between theory and practice, Thomas> there's usually a gap. Yeah ;) I'll give it a try soon and see how it works out. >> It might be an idea to get the toolchain build to write out a .config >> snippet that can get included when using it to ensure we have the >> various toolchain settings correct. Thomas> Ah, I'm interested in how you would do that. Currently, what the Thomas> external toolchain support does is that: I was thinking that we maybe could (ab)use the KCONFIG_ALLCONFIG support stuff for it. From linux/Documentation/kbuild/kconfig.txt: The allyesconfig/allmodconfig/allnoconfig/randconfig variants can also use the environment variable KCONFIG_ALLCONFIG as a flag or a filename that contains config symbols that the user requires to be set to a specific value. But I haven't looked at it in detail yet. Thomas> 1. It asks the user for the configuration of the toolchain in the Thomas> Kconfig interface (IPV6 ? RPC ? Locale ? WCHAR ? LARGEFILE ?), Thomas> because at configuration time, it is not possible to execute tests Thomas> to guess the toolchain configuration, but these configuration Thomas> options must be defined properly since some packages depend on them. Yes, that's the step I think we could automate when the toolchain comes from buildroot. -- Bye, Peter Korsgaard ^ permalink raw reply [flat|nested] 39+ messages in thread
* [Buildroot] [PATCH 1/5] Remove the "project" feature 2009-09-08 7:43 ` Peter Korsgaard @ 2009-09-08 7:49 ` Thomas Petazzoni 0 siblings, 0 replies; 39+ messages in thread From: Thomas Petazzoni @ 2009-09-08 7:49 UTC (permalink / raw) To: buildroot Le Tue, 08 Sep 2009 09:43:30 +0200, Peter Korsgaard <jacmet@uclibc.org> a ?crit : > I was thinking that we maybe could (ab)use the KCONFIG_ALLCONFIG > support stuff for it. From linux/Documentation/kbuild/kconfig.txt: > > The allyesconfig/allmodconfig/allnoconfig/randconfig variants can > also use the environment variable KCONFIG_ALLCONFIG as a flag or a > filename that contains config symbols that the user requires to be > set to a specific value. > > But I haven't looked at it in detail yet. Ah, okay, didn't know about that. But what if the user uses "make menuconfig" instead ? > Yes, that's the step I think we could automate when the toolchain > comes from buildroot. If the external toolchain doesn't come from Buildroot, we can also imagine having a little script that generates such a snippet. But not sure if that would make it easier to understand than the current process. Thomas -- Thomas Petazzoni, Free Electrons Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com ^ permalink raw reply [flat|nested] 39+ messages in thread
* [Buildroot] [PATCH 1/5] Remove the "project" feature 2009-09-08 6:27 ` Hans-Christian Egtvedt 2009-09-08 6:58 ` Sven Neumann @ 2009-09-08 6:59 ` Peter Korsgaard 2009-09-08 7:16 ` Thomas Petazzoni 2 siblings, 0 replies; 39+ messages in thread From: Peter Korsgaard @ 2009-09-08 6:59 UTC (permalink / raw) To: buildroot >>>>> "Hans-Christian" == Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com> writes: Hi, Hans-Christian> I use it all the time ;) How do you propose building Hans-Christian> for multiple targets? I would at least like to share Hans-Christian> the toolchain, preferably also libraries. The toolchain could fairly easily be shared with the external toolchain stuff we now have. I don't know about your targets, but for the configurations I'm using, the time to rebuild userland packages is insignificant compared to toolchain building. This is ofcourse less true if you need to build something big like X/gtk/Qt/.. Hans-Christian> I do however also like the KISS aspect of Buildroot. Yes, it does add quite some complexity. Hans-Christian> I did not think project_build_ARCH was confusing, but Hans-Christian> perhaps project_ part would be misleading? I would Hans-Christian> rather see a build/board/<stuff> setup. Keeping status quo and renaming directories will just lead to more confusion imho. -- Bye, Peter Korsgaard ^ permalink raw reply [flat|nested] 39+ messages in thread
* [Buildroot] [PATCH 1/5] Remove the "project" feature 2009-09-08 6:27 ` Hans-Christian Egtvedt 2009-09-08 6:58 ` Sven Neumann 2009-09-08 6:59 ` Peter Korsgaard @ 2009-09-08 7:16 ` Thomas Petazzoni 2 siblings, 0 replies; 39+ messages in thread From: Thomas Petazzoni @ 2009-09-08 7:16 UTC (permalink / raw) To: buildroot Le Tue, 8 Sep 2009 08:27:07 +0200, Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com> a ?crit : > I use it all the time ;) How do you propose building for multiple > targets? I would at least like to share the toolchain, preferably also > libraries. One solution is to do it outside of Buildroot. Assuming all you want to rebuild for the different targets is kernel, u-boot and busybox : $ make menuconfig Configure for target 1 $ make Wait Copy the result image $ rm -rf output/build/linux-* output/build/u-boot-* output/build/busybox-* $ make menuconfig Configure for target 2 $ make Wait Copy the result image And so on. Is this significantly different (in terms of complexity) compared to what you have to do today ? The net advantage of this solution is that it keeps the complexity outside of Buildroot, so the users not interested by this feature don't see this complexity. > I did not think project_build_ARCH was confusing, but perhaps project_ > part would be misleading? I would rather see a build/board/<stuff> > setup. Yes, project_build_ARCH is very confusing. Question from beginners: ?Why are some stuff built in project_build_ARCH and some others in build_ARCH ??, ?Why is my root filesystem in this strange and far away place project_build_ARCH/uclibc/root/ ??, etc. build/board/ would probably be ok if only the kernel + u-boot would differ from one board to the other. But in the current implementation, busybox is also treated like the kernel and u-boot (i.e built inside project_build_ARCH and not inside build_ARCH). Moreover, this build/board/ thing only works if your boards are very similar (i.e same processor architecture, same instruction set, etc.). So it only partially solves the problem we're trying to address. Sincerly, Thomas -- Thomas Petazzoni, Free Electrons Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com ^ permalink raw reply [flat|nested] 39+ messages in thread
* [Buildroot] [PATCH 1/5] Remove the "project" feature 2009-09-07 22:09 ` [Buildroot] [PATCH 1/5] Remove the "project" feature Thomas Petazzoni 2009-09-08 6:27 ` Hans-Christian Egtvedt @ 2009-09-08 7:06 ` Peter Korsgaard [not found] ` <20090908092408.787e9cf7@surf> 1 sibling, 1 reply; 39+ messages in thread From: Peter Korsgaard @ 2009-09-08 7:06 UTC (permalink / raw) To: buildroot >>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes: Hi, Thomas> The "project" feature was designed to allow to several projects Thomas> to be built inside the same Buildroot source tree and allowing Thomas> the toolchain and non-configurable packages to be shared Thomas> between the different projects on the same architecture. While Thomas> being interesting in theory, this feature adds a level of Thomas> complexity to Buildroot, both from an user perspective and from Thomas> a developer perspective, while one of the main Buildroot Thomas> strengh is to be simple. Moreover, this feature is only Thomas> seldomly used by our users. I agree, I also don't like the complexity it added. Thomas> - Don't make world depends on target-host-info. This target was Thomas> defined by project/project.mk to customize /etc/issue, Thomas> /etc/hostname and create /etc/br-version depending on the Thomas> project definitions. We can of course imagine re-adding such a Thomas> feature later. Stuff like /etc/br-version is handy atleast. I think it would be nice to keep all 3, as it is part of the current Kconfig interface, it makes it easy to do minimal customization when you use the generic rootfs skeleton and it adds only little complexity. Thomas> * package/Makefile.autotools.in Thomas> - Replace PROJECT_BUILD_DIR by BUILD_DIR for the location of the Thomas> configure cache Thomas> - Move the INSTALL_TARGET and HOOK_POST_INSTALL stamps to the same Thomas> directory as the other stamps (i.e, in the package directory). Yeah! Thomas> * target/u-boot/Makefile.in Thomas> - Replace PROJECT_BUILD_DIR by BUILD_DIR Thomas> - Remove $(PROJECT) from the U-Boot target binary name Thomas> - Remove the insertion in the configuration of the project name as Thomas> the hostname Thomas> - The u-boot-autoscript target now generates Thomas> $(U_BOOT_AUTOSCRIPT).img instead of Thomas> $(U_BOOT_AUTOSCRIPT).$(PROJECT) The u-boot config stuff is imho way too overengineered, and could use some cleanup/simplification. -- Bye, Peter Korsgaard ^ permalink raw reply [flat|nested] 39+ messages in thread
[parent not found: <20090908092408.787e9cf7@surf>]
* [Buildroot] [PATCH 1/5] Remove the "project" feature [not found] ` <20090908092408.787e9cf7@surf> @ 2009-09-08 7:31 ` Peter Korsgaard 0 siblings, 0 replies; 39+ messages in thread From: Peter Korsgaard @ 2009-09-08 7:31 UTC (permalink / raw) To: buildroot >>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes: Hi, >> Stuff like /etc/br-version is handy atleast. I think it would be nice >> to keep all 3, as it is part of the current Kconfig interface, it >> makes it easy to do minimal customization when you use the generic >> rootfs skeleton and it adds only little complexity. Thomas> Agreed, this is something we can keep. Good. >> The u-boot config stuff is imho way too overengineered, and could use >> some cleanup/simplification. Thomas> Definitely, but that was not the purpose of this set of patches. I Thomas> don't think it's reasonable to try to fix everything at once. Certainly not. Seeing the note just reminded me about it. Thanks for the patch series, much appreciated! -- Bye, Peter Korsgaard ^ permalink raw reply [flat|nested] 39+ messages in thread
* [Buildroot] [PATCH 2/5] Remove the BOARD/LOCAL feature 2009-09-07 22:09 [Buildroot] [RFC] [PATCH 0/5] Buildroot cleanup Thomas Petazzoni 2009-09-07 22:09 ` [Buildroot] [PATCH 1/5] Remove the "project" feature Thomas Petazzoni @ 2009-09-07 22:09 ` Thomas Petazzoni 2009-09-07 22:09 ` [Buildroot] [PATCH 3/5] By default, put the output in an output/ directory Thomas Petazzoni ` (3 subsequent siblings) 5 siblings, 0 replies; 39+ messages in thread From: Thomas Petazzoni @ 2009-09-07 22:09 UTC (permalink / raw) To: buildroot This can be achieved by adding a new target in target/device/, and I will later propose a mechanism to add external boards and packages, so that our users not willing to get their target-specific or package-specific things merged can keep them cleanly separated from Buildroot tree. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> --- Makefile | 15 --------------- 1 files changed, 0 insertions(+), 15 deletions(-) diff --git a/Makefile b/Makefile index 7a3cd17..61c2b80 100644 --- a/Makefile +++ b/Makefile @@ -32,14 +32,6 @@ noconfig_targets:=menuconfig xconfig config oldconfig randconfig \ defconfig allyesconfig allnoconfig release tags \ source-check help - -# Use shell variables, if defined -ifneq ($(BUILDROOT_LOCAL),) -BR2_LOCAL:=$(BUILDROOT_LOCAL) -else -BR2_LOCAL:=$(TOPDIR)/local -endif - # Strip quotes and then whitespaces qstrip=$(strip $(subst ",,$(1))) #")) @@ -52,20 +44,13 @@ space:=$(empty) $(empty) # $(shell find . -name *_defconfig |sed 's/.*\///') # Pull in the user's configuration file ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),) -ifeq ($(BOARD),) -# if "make BOARD=xyz" command -include .config -else -# if "make" command --include $(BR2_LOCAL)/$(BOARD)/$(BOARD).config -endif endif # Override BR2_DL_DIR if shell variable defined ifneq ($(BUILDROOT_DL_DIR),) BR2_DL_DIR:=$(BUILDROOT_DL_DIR) endif -LOCAL:=$(BR2_LOCAL) # To put more focus on warnings, be less verbose as default # Use 'make V=1' to see the full commands -- 1.6.0.4 ^ permalink raw reply related [flat|nested] 39+ messages in thread
* [Buildroot] [PATCH 3/5] By default, put the output in an output/ directory 2009-09-07 22:09 [Buildroot] [RFC] [PATCH 0/5] Buildroot cleanup Thomas Petazzoni 2009-09-07 22:09 ` [Buildroot] [PATCH 1/5] Remove the "project" feature Thomas Petazzoni 2009-09-07 22:09 ` [Buildroot] [PATCH 2/5] Remove the BOARD/LOCAL feature Thomas Petazzoni @ 2009-09-07 22:09 ` Thomas Petazzoni 2009-09-09 10:19 ` Peter Korsgaard 2009-09-07 22:09 ` [Buildroot] [PATCH 4/5] Remove BR2_TOPDIR_PREFIX and BR2_TOPDIR_SUFFIX Thomas Petazzoni ` (2 subsequent siblings) 5 siblings, 1 reply; 39+ messages in thread From: Thomas Petazzoni @ 2009-09-07 22:09 UTC (permalink / raw) To: buildroot Instead of putting all the build-related stuff as a mess in the Buildroot sources, group them in an output/ directory. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> --- Makefile | 5 ++--- 1 files changed, 2 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 61c2b80..1fe9351 100644 --- a/Makefile +++ b/Makefile @@ -217,8 +217,6 @@ TAR_OPTIONS=$(call qstrip,$(BR2_TAR_OPTIONS)) -xf # Buildroot supports building out of tree similarly to the Linux kernel. # To use, add O= to the make command line (make O=/tmp/build) -BASE_DIR:=$(shell pwd) -ifdef O ifeq ("$(origin O)", "command line") BASE_DIR := $(shell mkdir -p $(O) && cd $(O) && pwd) $(if $(BASE_DIR),, $(error output directory "$(O)" does not exist)) @@ -228,7 +226,8 @@ $(if $(BASE_DIR),, $(error output directory "$(O)" does not exist)) # forwards command line variable definitions those packages get very # confused. Fix this by telling make to not do so MAKEOVERRIDES = -endif +else +BASE_DIR := $(shell mkdir -p output && cd output && pwd) endif TOPDIR_PREFIX:=$(call qstrip,$(BR2_TOPDIR_PREFIX))_ -- 1.6.0.4 ^ permalink raw reply related [flat|nested] 39+ messages in thread
* [Buildroot] [PATCH 3/5] By default, put the output in an output/ directory 2009-09-07 22:09 ` [Buildroot] [PATCH 3/5] By default, put the output in an output/ directory Thomas Petazzoni @ 2009-09-09 10:19 ` Peter Korsgaard 2009-09-09 11:28 ` Thomas Petazzoni 0 siblings, 1 reply; 39+ messages in thread From: Peter Korsgaard @ 2009-09-09 10:19 UTC (permalink / raw) To: buildroot >>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes: Thomas> Instead of putting all the build-related stuff as a mess in the Thomas> Buildroot sources, group them in an output/ directory. Thomas> # Buildroot supports building out of tree similarly to the Linux kernel. Thomas> # To use, add O= to the make command line (make O=/tmp/build) Thomas> -BASE_DIR:=$(shell pwd) Thomas> -ifdef O Thomas> ifeq ("$(origin O)", "command line") Thomas> BASE_DIR := $(shell mkdir -p $(O) && cd $(O) && pwd) Thomas> $(if $(BASE_DIR),, $(error output directory "$(O)" does not exist)) Thomas> @@ -228,7 +226,8 @@ $(if $(BASE_DIR),, $(error output directory "$(O)" does not exist)) Thomas> # forwards command line variable definitions those packages get very Thomas> # confused. Fix this by telling make to not do so Thomas> MAKEOVERRIDES = Thomas> -endif Thomas> +else Thomas> +BASE_DIR := $(shell mkdir -p output && cd output && pwd) Thomas> endif Wouldn't it be simpler to just pretend we were passed O=output by default? E.G: ifneq ("$(origin O)", "command line") O:=output endif BASE_DIR := $(shell mkdir -p $(O) && cd $(O) && pwd) ... -- Bye, Peter Korsgaard ^ permalink raw reply [flat|nested] 39+ messages in thread
* [Buildroot] [PATCH 3/5] By default, put the output in an output/ directory 2009-09-09 10:19 ` Peter Korsgaard @ 2009-09-09 11:28 ` Thomas Petazzoni 0 siblings, 0 replies; 39+ messages in thread From: Thomas Petazzoni @ 2009-09-09 11:28 UTC (permalink / raw) To: buildroot Le Wed, 09 Sep 2009 12:19:57 +0200, Peter Korsgaard <jacmet@uclibc.org> a ?crit : > Wouldn't it be simpler to just pretend we were passed O=output by > default? E.G: > > ifneq ("$(origin O)", "command line") > O:=output > endif > > BASE_DIR := $(shell mkdir -p $(O) && cd $(O) && pwd) Sure, will fix. Thanks, Thomas -- Thomas Petazzoni, Free Electrons Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com ^ permalink raw reply [flat|nested] 39+ messages in thread
* [Buildroot] [PATCH 4/5] Remove BR2_TOPDIR_PREFIX and BR2_TOPDIR_SUFFIX 2009-09-07 22:09 [Buildroot] [RFC] [PATCH 0/5] Buildroot cleanup Thomas Petazzoni ` (2 preceding siblings ...) 2009-09-07 22:09 ` [Buildroot] [PATCH 3/5] By default, put the output in an output/ directory Thomas Petazzoni @ 2009-09-07 22:09 ` Thomas Petazzoni 2009-09-09 17:35 ` Bernhard Reutner-Fischer 2009-09-07 22:09 ` [Buildroot] [PATCH 5/5] Rename the output directories Thomas Petazzoni 2009-09-08 17:03 ` [Buildroot] [RFC] [PATCH 0/5] Buildroot cleanup Will Newton 5 siblings, 1 reply; 39+ messages in thread From: Thomas Petazzoni @ 2009-09-07 22:09 UTC (permalink / raw) To: buildroot The same effect can be done using out-of-tree build with O= Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> --- Config.in | 18 ------------------ Makefile | 11 +---------- package/Makefile.in | 6 +++--- 3 files changed, 4 insertions(+), 31 deletions(-) diff --git a/Config.in b/Config.in index 1881f82..07a654c 100644 --- a/Config.in +++ b/Config.in @@ -98,24 +98,6 @@ config BR2_FPU_SUFFIX the "_nofpu" suffix will be added to the toolchain build directory name and to any rootfs image name -config BR2_TOPDIR_PREFIX - string "Custom build dir prefix" - default "" - help - Add a custom string to the beginning of the build directories. - - build_ARCH -> [PREFIX]_build_ARCH - toolchain_build_ARCH -> [PREFIX]_toolchain_build_ARCH - -config BR2_TOPDIR_SUFFIX - string "Custom build dir suffix" - default "" - help - Add a custom string to the end of the build directories. - - build_ARCH -> build_ARCH_[SUFFIX] - toolchain_build_ARCH -> toolchain_build_ARCH_[SUFFIX] - config BR2_GNU_BUILD_SUFFIX string "GNU build hostname suffix" default "pc-linux-gnu" diff --git a/Makefile b/Makefile index 1fe9351..412189c 100644 --- a/Makefile +++ b/Makefile @@ -230,21 +230,12 @@ else BASE_DIR := $(shell mkdir -p output && cd output && pwd) endif -TOPDIR_PREFIX:=$(call qstrip,$(BR2_TOPDIR_PREFIX))_ -TOPDIR_SUFFIX:=_$(call qstrip,$(BR2_TOPDIR_SUFFIX)) -ifeq ($(TOPDIR_PREFIX),_) -TOPDIR_PREFIX:= -endif -ifeq ($(TOPDIR_SUFFIX),_) -TOPDIR_SUFFIX:= -endif - DL_DIR=$(call qstrip,$(BR2_DL_DIR)) ifeq ($(DL_DIR),) DL_DIR:=$(BASE_DIR)/dl endif -BUILD_DIR:=$(BASE_DIR)/$(TOPDIR_PREFIX)build_$(ARCH)$(ARCH_FPU_SUFFIX)$(TOPDIR_SUFFIX) +BUILD_DIR:=$(BASE_DIR)/build_$(ARCH)$(ARCH_FPU_SUFFIX) GNU_TARGET_SUFFIX:=-$(call qstrip,$(BR2_GNU_TARGET_SUFFIX)) diff --git a/package/Makefile.in b/package/Makefile.in index 0ae5bdb..093108d 100644 --- a/package/Makefile.in +++ b/package/Makefile.in @@ -112,7 +112,7 @@ COND_ARCH_FPU_SUFFIX:= endif ifeq ($(BR2_TOOLCHAIN_SOURCE),y) -TOOL_BUILD_DIR=$(BASE_DIR)/$(TOPDIR_PREFIX)toolchain_build_$(ARCH)$(COND_ARCH_FPU_SUFFIX)$(TOPDIR_SUFFIX) +TOOL_BUILD_DIR=$(BASE_DIR)/toolchain_build_$(ARCH)$(COND_ARCH_FPU_SUFFIX) # Quotes are needed for spaces et al in path components. TARGET_PATH="$(TOOL_BUILD_DIR)/bin:$(HOST_DIR)/bin:$(HOST_DIR)/usr/bin:$(STAGING_DIR)/bin:$(STAGING_DIR)/usr/bin:$(PATH)" @@ -124,8 +124,8 @@ KERNEL_CROSS=$(TARGET_CROSS) else TOOLCHAIN_EXTERNAL_PREFIX:=$(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_PREFIX)) TOOLCHAIN_EXTERNAL_PATH:=$(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_PATH)) -#TOOL_BUILD_DIR=$(BASE_DIR)/$(TOPDIR_PREFIX)toolchain_build_$(TOOLCHAIN_EXTERNAL_PREFIX) -TOOL_BUILD_DIR=$(BASE_DIR)/$(TOPDIR_PREFIX)toolchain_build_$(ARCH)$(COND_ARCH_FPU_SUFFIX)$(TOPDIR_SUFFIX) +#TOOL_BUILD_DIR=$(BASE_DIR)/toolchain_build_$(TOOLCHAIN_EXTERNAL_PREFIX) +TOOL_BUILD_DIR=$(BASE_DIR)/toolchain_build_$(ARCH)$(COND_ARCH_FPU_SUFFIX) TARGET_PATH="$(HOST_DIR)/bin:$(HOST_DIR)/usr/bin:$(TOOL_BUILD_DIR)/bin:$(TOOLCHAIN_EXTERNAL_PATH)/bin:$(PATH)" #IMAGE:=$(BINARIES_DIR)/$(BR2_ROOTFS_PREFIX).$(TOOLCHAIN_EXTERNAL_PREFIX)$(ROOTFS_SUFFIX) IMAGE:=$(BINARIES_DIR)/$(BR2_ROOTFS_PREFIX).$(ARCH)$(COND_ARCH_FPU_SUFFIX)$(ROOTFS_SUFFIX) -- 1.6.0.4 ^ permalink raw reply related [flat|nested] 39+ messages in thread
* [Buildroot] [PATCH 4/5] Remove BR2_TOPDIR_PREFIX and BR2_TOPDIR_SUFFIX 2009-09-07 22:09 ` [Buildroot] [PATCH 4/5] Remove BR2_TOPDIR_PREFIX and BR2_TOPDIR_SUFFIX Thomas Petazzoni @ 2009-09-09 17:35 ` Bernhard Reutner-Fischer 2009-09-10 6:30 ` Thomas Petazzoni 0 siblings, 1 reply; 39+ messages in thread From: Bernhard Reutner-Fischer @ 2009-09-09 17:35 UTC (permalink / raw) To: buildroot On Tue, Sep 08, 2009 at 12:09:52AM +0200, Thomas Petazzoni wrote: >The same effect can be done using out-of-tree build with O= > >Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> >--- > Config.in | 18 ------------------ > Makefile | 11 +---------- > package/Makefile.in | 6 +++--- > 3 files changed, 4 insertions(+), 31 deletions(-) > >diff --git a/package/Makefile.in b/package/Makefile.in >index 0ae5bdb..093108d 100644 >--- a/package/Makefile.in >+++ b/package/Makefile.in >@@ -112,7 +112,7 @@ COND_ARCH_FPU_SUFFIX:= > endif > > ifeq ($(BR2_TOOLCHAIN_SOURCE),y) >-TOOL_BUILD_DIR=$(BASE_DIR)/$(TOPDIR_PREFIX)toolchain_build_$(ARCH)$(COND_ARCH_FPU_SUFFIX)$(TOPDIR_SUFFIX) >+TOOL_BUILD_DIR=$(BASE_DIR)/toolchain_build_$(ARCH)$(COND_ARCH_FPU_SUFFIX) three remarks: 1) COND_ARCH_FPU_SUFFIX is _completely_ useless, to say the least. 2) TOPDIR_PREFIX and TOPDIR_SUFFIX don't hurt and are convenient for some corner-cases. I'd keep them. 3) I'd much prefer if we could rather settle on TOOL_BUILD_DIR=$(BASE_DIR)/$(TOPDIR_PREFIX)$(ARCH)$(ARCH_FPU_SUFFIX)$(ARCH_MMU_SUFFIX)$(TOPDIR_SUFFIX)_toolchain BUILD_DIR =$(BASE_DIR)/$(TOPDIR_PREFIX)$(ARCH)$(ARCH_FPU_SUFFIX)$(ARCH_MMU_SUFFIX)$(TOPDIR_SUFFIX)_build so you can conveniently rm -rf powerpc_nofpu_* (for example) ^ permalink raw reply [flat|nested] 39+ messages in thread
* [Buildroot] [PATCH 4/5] Remove BR2_TOPDIR_PREFIX and BR2_TOPDIR_SUFFIX 2009-09-09 17:35 ` Bernhard Reutner-Fischer @ 2009-09-10 6:30 ` Thomas Petazzoni 2009-09-10 7:33 ` Peter Korsgaard 0 siblings, 1 reply; 39+ messages in thread From: Thomas Petazzoni @ 2009-09-10 6:30 UTC (permalink / raw) To: buildroot Hi Bernhard, Thanks for your comments! Le Wed, 9 Sep 2009 19:35:35 +0200, Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> a ?crit : Le Wed, 9 Sep 2009 19:35:35 +0200, Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> a ?crit : > 1) COND_ARCH_FPU_SUFFIX is _completely_ useless, to say the least. This one is removed by PATCH 5/5. > 2) TOPDIR_PREFIX and TOPDIR_SUFFIX don't hurt and are convenient for > some corner-cases. I'd keep them. As they don't provide any additional value over O=, I'd prefer to keep O=. One of the reason for which Buildroot is too complicated today is because there are multiple ways of achieving the same thing. This multitude of options is confusing for newcomers. > 3) I'd much prefer if we could > rather settle on > TOOL_BUILD_DIR=$(BASE_DIR)/$(TOPDIR_PREFIX)$(ARCH)$(ARCH_FPU_SUFFIX)$(ARCH_MMU_SUFFIX)$(TOPDIR_SUFFIX)_toolchain > BUILD_DIR > =$(BASE_DIR)/$(TOPDIR_PREFIX)$(ARCH)$(ARCH_FPU_SUFFIX)$(ARCH_MMU_SUFFIX)$(TOPDIR_SUFFIX)_build > > so you can conveniently rm -rf powerpc_nofpu_* (for example) See PATCH 5/5, these are completely changed to something else. Sincerly, Thomas -- Thomas Petazzoni, Free Electrons Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com ^ permalink raw reply [flat|nested] 39+ messages in thread
* [Buildroot] [PATCH 4/5] Remove BR2_TOPDIR_PREFIX and BR2_TOPDIR_SUFFIX 2009-09-10 6:30 ` Thomas Petazzoni @ 2009-09-10 7:33 ` Peter Korsgaard 0 siblings, 0 replies; 39+ messages in thread From: Peter Korsgaard @ 2009-09-10 7:33 UTC (permalink / raw) To: buildroot >>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes: Hi, >> 2) TOPDIR_PREFIX and TOPDIR_SUFFIX don't hurt and are convenient for >> some corner-cases. I'd keep them. Thomas> As they don't provide any additional value over O=, I'd prefer Thomas> to keep O=. One of the reason for which Buildroot is too Thomas> complicated today is because there are multiple ways of Thomas> achieving the same thing. This multitude of options is Thomas> confusing for newcomers. I agree. I much prefer the KISS principle. I think the main thing buildroot has going for itself compared to the other build systems is simplicity. It is (imho) a lot smaller and simpler to understand and start hacking on for outsiders. -- Bye, Peter Korsgaard ^ permalink raw reply [flat|nested] 39+ messages in thread
* [Buildroot] [PATCH 5/5] Rename the output directories 2009-09-07 22:09 [Buildroot] [RFC] [PATCH 0/5] Buildroot cleanup Thomas Petazzoni ` (3 preceding siblings ...) 2009-09-07 22:09 ` [Buildroot] [PATCH 4/5] Remove BR2_TOPDIR_PREFIX and BR2_TOPDIR_SUFFIX Thomas Petazzoni @ 2009-09-07 22:09 ` Thomas Petazzoni 2009-09-09 7:02 ` Peter Korsgaard 2009-09-08 17:03 ` [Buildroot] [RFC] [PATCH 0/5] Buildroot cleanup Will Newton 5 siblings, 1 reply; 39+ messages in thread From: Thomas Petazzoni @ 2009-09-07 22:09 UTC (permalink / raw) To: buildroot In the output directory, we now have - build/ where all the packages are built - images/ where the final kernel and rootfs images are stored - staging/ the staging directory (containing the development files and libraries compiled for the target) - target/ which contains the target root filesystem - host/ which contains all the host programs - stamps/ which contains the stamps files Therefore, the build_ARCH and toolchain_build_ARCH have been removed. People willing to use the same Buildroot sources to compile for different architectures are invited to use the O= command line option for out-of-tree compilation. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> --- Config.in | 4 ++-- Makefile | 10 +++++----- package/Makefile.in | 5 ++--- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/Config.in b/Config.in index 07a654c..99a543b 100644 --- a/Config.in +++ b/Config.in @@ -80,7 +80,7 @@ source "target/device/Config.in.mirrors" config BR2_STAGING_DIR string "Toolchain and header file location?" - default "$(BUILD_DIR)/staging_dir" + default "$(BASE_DIR)/staging" help This is the location where the toolchain will be installed. The toolchain will not work if it is moved from this location. @@ -89,7 +89,7 @@ config BR2_STAGING_DIR will be used. Most people will leave this set to the default value of - "$(BUILD_DIR)/staging_dir". + "$(BASE_DIR)/staging". config BR2_FPU_SUFFIX bool "Add '_nofpu' suffix for softfloat toolchains" diff --git a/Makefile b/Makefile index 412189c..1c10f4c 100644 --- a/Makefile +++ b/Makefile @@ -235,20 +235,20 @@ ifeq ($(DL_DIR),) DL_DIR:=$(BASE_DIR)/dl endif -BUILD_DIR:=$(BASE_DIR)/build_$(ARCH)$(ARCH_FPU_SUFFIX) +BUILD_DIR:=$(BASE_DIR)/build GNU_TARGET_SUFFIX:=-$(call qstrip,$(BR2_GNU_TARGET_SUFFIX)) STAGING_DIR:=$(call qstrip,$(BR2_STAGING_DIR)) # packages compiled for the host goes here -HOST_DIR:=$(BUILD_DIR)/host_dir +HOST_DIR:=$(BASE_DIR)/host # stamp (dependency) files go here -STAMP_DIR:=$(BUILD_DIR)/stamps +STAMP_DIR:=$(BASE_DIR)/stamps -BINARIES_DIR:=$(BASE_DIR)/binaries/ -TARGET_DIR:=$(BUILD_DIR)/target_dir +BINARIES_DIR:=$(BASE_DIR)/images +TARGET_DIR:=$(BASE_DIR)/target # define values for prepatched source trees for toolchains VENDOR_SITE:=$(call qstrip,$(BR2_VENDOR_SITE)) diff --git a/package/Makefile.in b/package/Makefile.in index 093108d..1c21924 100644 --- a/package/Makefile.in +++ b/package/Makefile.in @@ -112,7 +112,7 @@ COND_ARCH_FPU_SUFFIX:= endif ifeq ($(BR2_TOOLCHAIN_SOURCE),y) -TOOL_BUILD_DIR=$(BASE_DIR)/toolchain_build_$(ARCH)$(COND_ARCH_FPU_SUFFIX) +TOOL_BUILD_DIR=$(BASE_DIR)/toolchain # Quotes are needed for spaces et al in path components. TARGET_PATH="$(TOOL_BUILD_DIR)/bin:$(HOST_DIR)/bin:$(HOST_DIR)/usr/bin:$(STAGING_DIR)/bin:$(STAGING_DIR)/usr/bin:$(PATH)" @@ -124,8 +124,7 @@ KERNEL_CROSS=$(TARGET_CROSS) else TOOLCHAIN_EXTERNAL_PREFIX:=$(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_PREFIX)) TOOLCHAIN_EXTERNAL_PATH:=$(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_PATH)) -#TOOL_BUILD_DIR=$(BASE_DIR)/toolchain_build_$(TOOLCHAIN_EXTERNAL_PREFIX) -TOOL_BUILD_DIR=$(BASE_DIR)/toolchain_build_$(ARCH)$(COND_ARCH_FPU_SUFFIX) +TOOL_BUILD_DIR=$(BASE_DIR)/toolchain TARGET_PATH="$(HOST_DIR)/bin:$(HOST_DIR)/usr/bin:$(TOOL_BUILD_DIR)/bin:$(TOOLCHAIN_EXTERNAL_PATH)/bin:$(PATH)" #IMAGE:=$(BINARIES_DIR)/$(BR2_ROOTFS_PREFIX).$(TOOLCHAIN_EXTERNAL_PREFIX)$(ROOTFS_SUFFIX) IMAGE:=$(BINARIES_DIR)/$(BR2_ROOTFS_PREFIX).$(ARCH)$(COND_ARCH_FPU_SUFFIX)$(ROOTFS_SUFFIX) -- 1.6.0.4 ^ permalink raw reply related [flat|nested] 39+ messages in thread
* [Buildroot] [PATCH 5/5] Rename the output directories 2009-09-07 22:09 ` [Buildroot] [PATCH 5/5] Rename the output directories Thomas Petazzoni @ 2009-09-09 7:02 ` Peter Korsgaard 2009-09-09 7:22 ` Thomas Petazzoni 0 siblings, 1 reply; 39+ messages in thread From: Peter Korsgaard @ 2009-09-09 7:02 UTC (permalink / raw) To: buildroot >>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes: Thomas> In the output directory, we now have Thomas> - build/ where all the packages are built Thomas> - images/ where the final kernel and rootfs images are stored Thomas> - staging/ the staging directory (containing the development files Thomas> and libraries compiled for the target) Thomas> - target/ which contains the target root filesystem Thomas> - host/ which contains all the host programs Thomas> - stamps/ which contains the stamps files Why do we still need stamps/ if we get rid of project_build_*? Can't the stamp files just live with the sources, so you can just do rm -rf build/<package> to get it rebuilt? -- Bye, Peter Korsgaard ^ permalink raw reply [flat|nested] 39+ messages in thread
* [Buildroot] [PATCH 5/5] Rename the output directories 2009-09-09 7:02 ` Peter Korsgaard @ 2009-09-09 7:22 ` Thomas Petazzoni 2009-09-09 7:37 ` Peter Korsgaard 0 siblings, 1 reply; 39+ messages in thread From: Thomas Petazzoni @ 2009-09-09 7:22 UTC (permalink / raw) To: buildroot Le Wed, 09 Sep 2009 09:02:44 +0200, Peter Korsgaard <jacmet@uclibc.org> a ?crit : > Why do we still need stamps/ if we get rid of project_build_*? Can't > the stamp files just live with the sources, so you can just do rm -rf > build/<package> to get it rebuilt? Because the compilation of host packages uses the $(STAMP_DIR) a lot, see the result of "git grep STAMP_DIR". A few other places use $(STAMP_DIR) as well. Note: this is also something I don't like, but I think it's better to fix one thing at a time :-) Sincerly, Thomas -- Thomas Petazzoni, Free Electrons Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com ^ permalink raw reply [flat|nested] 39+ messages in thread
* [Buildroot] [PATCH 5/5] Rename the output directories 2009-09-09 7:22 ` Thomas Petazzoni @ 2009-09-09 7:37 ` Peter Korsgaard 0 siblings, 0 replies; 39+ messages in thread From: Peter Korsgaard @ 2009-09-09 7:37 UTC (permalink / raw) To: buildroot >>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes: Hi, >> Why do we still need stamps/ if we get rid of project_build_*? Can't >> the stamp files just live with the sources, so you can just do rm -rf >> build/<package> to get it rebuilt? Thomas> Because the compilation of host packages uses the $(STAMP_DIR) a lot, Thomas> see the result of "git grep STAMP_DIR". A few other places use Thomas> $(STAMP_DIR) as well. It did that to test the impact of having real dependencies (E.G. so you could one day run the top level makefile with -j. If host packages are the only thing we need stamps/ for, then I think we should just change the few host packages to use the normal virtual targets and ordering. Thomas> Note: this is also something I don't like, but I think it's better to Thomas> fix one thing at a time :-) ;) -- Bye, Peter Korsgaard ^ permalink raw reply [flat|nested] 39+ messages in thread
* [Buildroot] [RFC] [PATCH 0/5] Buildroot cleanup 2009-09-07 22:09 [Buildroot] [RFC] [PATCH 0/5] Buildroot cleanup Thomas Petazzoni ` (4 preceding siblings ...) 2009-09-07 22:09 ` [Buildroot] [PATCH 5/5] Rename the output directories Thomas Petazzoni @ 2009-09-08 17:03 ` Will Newton 2009-09-08 19:13 ` Jonathan dumaresq 2009-09-08 21:20 ` Peter Korsgaard 5 siblings, 2 replies; 39+ messages in thread From: Will Newton @ 2009-09-08 17:03 UTC (permalink / raw) To: buildroot On Mon, Sep 7, 2009 at 11:09 PM, Thomas Petazzoni<thomas.petazzoni@free-electrons.com> wrote: > Hello, > > I would like to propose a few patches to start a cleanup of > Buildroot. My goal is not only to cleanup Buildroot internally, but > also to clean it up so that it is easier to understand for our users. > > This thread is meant to be a preliminary discussion only and is not > yet a request for inclusion, because : > > ?* Some of the proposed changes remove features that I think confuse > ? our users and are not central in Buildroot operation, but others > ? might have different opinion on the matter ; > > ?* The changes are relatively invasive and I did only limited testing > ? on them. > > ?* The documentation is not updated with the changes. I'm waiting for > ? the community opinion on the changes before spending time to update > ? the documentation > > While the commit logs gives all the details, I would like to give an > quick overview of the proposed changes : > > ?1. Remove the "project" feature. > > ? ?This feature is meant to allow an user to build a Linux system for > ? ?several similar platforms where the differences are only in > ? ?Busybox, kernel and U-Boot configuration. While this feature might > ? ?be useful in some very specific cases, my opinion is that it adds > ? ?far too much complexity in Buildroot compared to the added-value > ? ?it gives. > > ? ?Removing this feature allows to instantly make the directory > ? ?layout a lot simpler to understand for a newcomer (no strane > ? ?project_build_ARCH directory anymore !) I think this is probably the right thing to do, the project support has never made much sense to me. > ?2. Remove the BOARD/LOCAL feature. > > ? ?This mechanism is a duplication of something that could already be > ? ?done in a different way: by adding a new target in target/device/. I didn't know this existed. > ?3. By default, put the output directories in a single directory, > ? ?named output/. > > ? ?Nothing complex, it just clarifies the tree for a new user. > > ?4. Remove BR2_TOPDIR_PREFIX and BR2_TOPDIR_SUFFIX > > ? ?The same thing can be done with O= I didn't know this existed either! > ?5. Rename the output directories with more sensible names. > > ? ?In the output directory, we now have > > ? ? - build/ ? ?where all the packages are built > ? ? - images/ ? where the final kernel and rootfs images are stored > ? ? - staging/ ?the staging directory (containing the development files > ? ? ? ? ? ? ? ? and libraries compiled for the target) > ? ? - target/ ? which contains the target root filesystem > ? ? - host/ ? ? which contains all the host programs > ? ? - stamps/ ? which contains the stamps files > > Thanks for your input, One thing I want to do quite often is to keep my toolchain but rebuild my target fs from scratch, so: # rm -rf build_i686 project_build_i686 # make It looks like this might be a little bit more complex now. It would be good to get some makefile targets that can do this, it's possible they already exist but I'm just not aware of them. ^ permalink raw reply [flat|nested] 39+ messages in thread
* [Buildroot] [RFC] [PATCH 0/5] Buildroot cleanup 2009-09-08 17:03 ` [Buildroot] [RFC] [PATCH 0/5] Buildroot cleanup Will Newton @ 2009-09-08 19:13 ` Jonathan dumaresq 2009-09-08 21:20 ` Peter Korsgaard 1 sibling, 0 replies; 39+ messages in thread From: Jonathan dumaresq @ 2009-09-08 19:13 UTC (permalink / raw) To: buildroot -----Message d'origine----- De?: buildroot-bounces at busybox.net [mailto:buildroot-bounces at busybox.net] De la part de Will Newton Envoy??: 8 septembre 2009 13:04 ??: Thomas Petazzoni Cc?: buildroot at uclibc.org Objet?: Re: [Buildroot] [RFC] [PATCH 0/5] Buildroot cleanup On Mon, Sep 7, 2009 at 11:09 PM, Thomas Petazzoni<thomas.petazzoni@free-electrons.com> wrote: > Hello, > > I would like to propose a few patches to start a cleanup of > Buildroot. My goal is not only to cleanup Buildroot internally, but > also to clean it up so that it is easier to understand for our users. > > This thread is meant to be a preliminary discussion only and is not > yet a request for inclusion, because : > > ?* Some of the proposed changes remove features that I think confuse > ? our users and are not central in Buildroot operation, but others > ? might have different opinion on the matter ; > > ?* The changes are relatively invasive and I did only limited testing > ? on them. > > ?* The documentation is not updated with the changes. I'm waiting for > ? the community opinion on the changes before spending time to update > ? the documentation > > While the commit logs gives all the details, I would like to give an > quick overview of the proposed changes : > > ?1. Remove the "project" feature. > > ? ?This feature is meant to allow an user to build a Linux system for > ? ?several similar platforms where the differences are only in > ? ?Busybox, kernel and U-Boot configuration. While this feature might > ? ?be useful in some very specific cases, my opinion is that it adds > ? ?far too much complexity in Buildroot compared to the added-value > ? ?it gives. > > ? ?Removing this feature allows to instantly make the directory > ? ?layout a lot simpler to understand for a newcomer (no strane > ? ?project_build_ARCH directory anymore !) I think this is probably the right thing to do, the project support has never made much sense to me. > ?2. Remove the BOARD/LOCAL feature. > > ? ?This mechanism is a duplication of something that could already be > ? ?done in a different way: by adding a new target in target/device/. I didn't know this existed. > ?3. By default, put the output directories in a single directory, > ? ?named output/. > > ? ?Nothing complex, it just clarifies the tree for a new user. > > ?4. Remove BR2_TOPDIR_PREFIX and BR2_TOPDIR_SUFFIX > > ? ?The same thing can be done with O= I didn't know this existed either! > ?5. Rename the output directories with more sensible names. > > ? ?In the output directory, we now have > > ? ? - build/ ? ?where all the packages are built > ? ? - images/ ? where the final kernel and rootfs images are stored > ? ? - staging/ ?the staging directory (containing the development files > ? ? ? ? ? ? ? ? and libraries compiled for the target) > ? ? - target/ ? which contains the target root filesystem > ? ? - host/ ? ? which contains all the host programs > ? ? - stamps/ ? which contains the stamps files > > Thanks for your input, One thing I want to do quite often is to keep my toolchain but rebuild my target fs from scratch, so: # rm -rf build_i686 project_build_i686 # make It looks like this might be a little bit more complex now. It would be good to get some makefile targets that can do this, it's possible they already exist but I'm just not aware of them. I'm in same position. This could be great ! Jonathan _______________________________________________ buildroot mailing list buildroot at busybox.net http://lists.busybox.net/mailman/listinfo/buildroot -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean. ^ permalink raw reply [flat|nested] 39+ messages in thread
* [Buildroot] [RFC] [PATCH 0/5] Buildroot cleanup 2009-09-08 17:03 ` [Buildroot] [RFC] [PATCH 0/5] Buildroot cleanup Will Newton 2009-09-08 19:13 ` Jonathan dumaresq @ 2009-09-08 21:20 ` Peter Korsgaard 2009-09-09 9:36 ` Will Newton 1 sibling, 1 reply; 39+ messages in thread From: Peter Korsgaard @ 2009-09-08 21:20 UTC (permalink / raw) To: buildroot >>>>> "Will" == Will Newton <will.newton@gmail.com> writes: Hi, >> ?4. Remove BR2_TOPDIR_PREFIX and BR2_TOPDIR_SUFFIX >> >> ? ?The same thing can be done with O= Will> I didn't know this existed either! It's documented though: http://buildroot.net/buildroot.html#building_out_of_tree -- Bye, Peter Korsgaard ^ permalink raw reply [flat|nested] 39+ messages in thread
* [Buildroot] [RFC] [PATCH 0/5] Buildroot cleanup 2009-09-08 21:20 ` Peter Korsgaard @ 2009-09-09 9:36 ` Will Newton 0 siblings, 0 replies; 39+ messages in thread From: Will Newton @ 2009-09-09 9:36 UTC (permalink / raw) To: buildroot On Tue, Sep 8, 2009 at 10:20 PM, Peter Korsgaard<jacmet@uclibc.org> wrote: >>>>>> "Will" == Will Newton <will.newton@gmail.com> writes: > > Hi, > > ?>> ?4. Remove BR2_TOPDIR_PREFIX and BR2_TOPDIR_SUFFIX > ?>> > ?>> ? ?The same thing can be done with O= > > ?Will> I didn't know this existed either! > > It's documented though: > > http://buildroot.net/buildroot.html#building_out_of_tree I was referring to the TOPDIR prefix and suffix options. Having delved into the makefiles it looks to me like O= is a better option. ^ permalink raw reply [flat|nested] 39+ messages in thread
[parent not found: <4AA62DD20200000D00128C56@gwia.alliedtelesyn.co.nz>]
* [Buildroot] [RFC] [PATCH 0/5] Buildroot cleanup [not found] <4AA62DD20200000D00128C56@gwia.alliedtelesyn.co.nz> @ 2009-09-08 19:54 ` angus salkeld 2009-09-08 20:15 ` Sven Neumann 2009-09-09 6:32 ` Thomas Petazzoni 0 siblings, 2 replies; 39+ messages in thread From: angus salkeld @ 2009-09-08 19:54 UTC (permalink / raw) To: buildroot Comments inline. On Tue, 2009-09-08 at 00:09 +0200, Thomas Petazzoni wrote: > Hello, > > I would like to propose a few patches to start a cleanup of > Buildroot. My goal is not only to cleanup Buildroot internally, but > also to clean it up so that it is easier to understand for our users. > > This thread is meant to be a preliminary discussion only and is not > yet a request for inclusion, because : > > * Some of the proposed changes remove features that I think confuse > our users and are not central in Buildroot operation, but others > might have different opinion on the matter ; > > * The changes are relatively invasive and I did only limited testing > on them. > > * The documentation is not updated with the changes. I'm waiting for > the community opinion on the changes before spending time to update > the documentation > > While the commit logs gives all the details, I would like to give an > quick overview of the proposed changes : > > 1. Remove the "project" feature. > > This feature is meant to allow an user to build a Linux system for > several similar platforms where the differences are only in > Busybox, kernel and U-Boot configuration. While this feature might > be useful in some very specific cases, my opinion is that it adds > far too much complexity in Buildroot compared to the added-value > it gives. > > Removing this feature allows to instantly make the directory > layout a lot simpler to understand for a newcomer (no strane > project_build_ARCH directory anymore !) > > 2. Remove the BOARD/LOCAL feature. > > This mechanism is a duplication of something that could already be > done in a different way: by adding a new target in target/device/. > Quite a few of our engineers like this feature. When you are testing that a change doesn't break other targets it is nice to have a shell per "board" and just be able to run "make" in each to re-build. Is the O= a direct replacement for this? > 3. By default, put the output directories in a single directory, > named output/. > > Nothing complex, it just clarifies the tree for a new user. > > 4. Remove BR2_TOPDIR_PREFIX and BR2_TOPDIR_SUFFIX > > The same thing can be done with O= > > 5. Rename the output directories with more sensible names. > > In the output directory, we now have > > - build/ where all the packages are built > - images/ where the final kernel and rootfs images are stored > - staging/ the staging directory (containing the development files > and libraries compiled for the target) > - target/ which contains the target root filesystem > - host/ which contains all the host programs > - stamps/ which contains the stamps files > We have a a number of boards to build and this is going put the burden on the end user to handle moving the output directory around. Not very user friendly for people who use buildroot in anything but the simplest case. Please still support the ability to build multiple targets within the same buildroot (in configuration). One option would be to make "O=<dir>" a configuration option (defaulting to the output directory). Another suggestion would be to completely separate out the toolchain into a new package "buildcross.git" that only builds the cross toolchain and then buildroot always uses the external toolchain. It would make buildroot's toolchain setup simpler (one toolchain mode). And make sharing toolchains more obvious. Regards Angus Salkeld > Thanks for your input, > > Thomas > _______________________________________________ > buildroot mailing list > buildroot at busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 39+ messages in thread
* [Buildroot] [RFC] [PATCH 0/5] Buildroot cleanup 2009-09-08 19:54 ` angus salkeld @ 2009-09-08 20:15 ` Sven Neumann 2009-09-08 21:27 ` Peter Korsgaard 2009-09-09 6:32 ` Thomas Petazzoni 1 sibling, 1 reply; 39+ messages in thread From: Sven Neumann @ 2009-09-08 20:15 UTC (permalink / raw) To: buildroot Hi, On Wed, 2009-09-09 at 07:54 +1200, angus salkeld wrote: > Another suggestion would be to completely separate out the toolchain > into a new package "buildcross.git" that only builds the cross > toolchain and then buildroot always uses the external toolchain. > It would make buildroot's toolchain setup simpler (one toolchain mode). > And make sharing toolchains more obvious. I like that idea. Can't really judge if it would be a success, but it seems like a nice solution that has the potential to simplify things. Sven ^ permalink raw reply [flat|nested] 39+ messages in thread
* [Buildroot] [RFC] [PATCH 0/5] Buildroot cleanup 2009-09-08 20:15 ` Sven Neumann @ 2009-09-08 21:27 ` Peter Korsgaard 2009-09-09 6:24 ` Thomas Petazzoni 0 siblings, 1 reply; 39+ messages in thread From: Peter Korsgaard @ 2009-09-08 21:27 UTC (permalink / raw) To: buildroot >>>>> "Sven" == Sven Neumann <s.neumann@raumfeld.com> writes: Sven> Hi, Sven> On Wed, 2009-09-09 at 07:54 +1200, angus salkeld wrote: >> Another suggestion would be to completely separate out the toolchain >> into a new package "buildcross.git" that only builds the cross >> toolchain and then buildroot always uses the external toolchain. >> It would make buildroot's toolchain setup simpler (one toolchain mode). >> And make sharing toolchains more obvious. Sven> I like that idea. Can't really judge if it would be a success, but it Sven> seems like a nice solution that has the potential to simplify things. I have been thinking about it myself. *REALLY* supporting toolchains for all the different architectures / variants, uclibc and (e)glibc and following up on compiler bugs takes quite some effort (and noone seems willing to do it for buildroot), so maybe the best long term solution is simply to deprecate the toolchain building stuff and just recommend crosstool-ng instead? This would make BR less selfcontained / one-stop-shop though. -- Bye, Peter Korsgaard ^ permalink raw reply [flat|nested] 39+ messages in thread
* [Buildroot] [RFC] [PATCH 0/5] Buildroot cleanup 2009-09-08 21:27 ` Peter Korsgaard @ 2009-09-09 6:24 ` Thomas Petazzoni 2009-09-09 7:06 ` Peter Korsgaard 0 siblings, 1 reply; 39+ messages in thread From: Thomas Petazzoni @ 2009-09-09 6:24 UTC (permalink / raw) To: buildroot Le Tue, 08 Sep 2009 23:27:41 +0200, Peter Korsgaard <jacmet@uclibc.org> a ?crit : > I have been thinking about it myself. *REALLY* supporting toolchains > for all the different architectures / variants, uclibc and (e)glibc > and following up on compiler bugs takes quite some effort (and noone > seems willing to do it for buildroot), so maybe the best long term > solution is simply to deprecate the toolchain building stuff and just > recommend crosstool-ng instead? That was my plan... > This would make BR less selfcontained / one-stop-shop though. until I met Buildroot users (I mean not end-users but organizations using Buildroot as the build system they ship with their devices) who told me that the selfcontained nature of BR was something they really liked. Thomas -- Thomas Petazzoni, Free Electrons Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com ^ permalink raw reply [flat|nested] 39+ messages in thread
* [Buildroot] [RFC] [PATCH 0/5] Buildroot cleanup 2009-09-09 6:24 ` Thomas Petazzoni @ 2009-09-09 7:06 ` Peter Korsgaard 0 siblings, 0 replies; 39+ messages in thread From: Peter Korsgaard @ 2009-09-09 7:06 UTC (permalink / raw) To: buildroot >>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes: Hi, Thomas> That was my plan... >> This would make BR less selfcontained / one-stop-shop though. Thomas> until I met Buildroot users (I mean not end-users but organizations Thomas> using Buildroot as the build system they ship with their devices) who Thomas> told me that the selfcontained nature of BR was something they really Thomas> liked. Yes, I know - I like it myself ;) But maybe integrating crosstool-ng support would be good enough? -- Bye, Peter Korsgaard ^ permalink raw reply [flat|nested] 39+ messages in thread
* [Buildroot] [RFC] [PATCH 0/5] Buildroot cleanup 2009-09-08 19:54 ` angus salkeld 2009-09-08 20:15 ` Sven Neumann @ 2009-09-09 6:32 ` Thomas Petazzoni 1 sibling, 0 replies; 39+ messages in thread From: Thomas Petazzoni @ 2009-09-09 6:32 UTC (permalink / raw) To: buildroot Hello, Thanks for your comments! Le Wed, 09 Sep 2009 07:54:25 +1200, "angus salkeld" <angus.salkeld@alliedtelesis.co.nz> a ?crit : > > 2. Remove the BOARD/LOCAL feature. > > > > This mechanism is a duplication of something that could already > > be done in a different way: by adding a new target in > > target/device/. > > > Quite a few of our engineers like this feature. > When you are testing that a change doesn't break other targets it is > nice to have a shell per "board" and just be able to run "make" in > each to re-build. Let's say your vendor name is Foo and you have two boards Bar1 and Bar2. Then you would create the following directories: target/device/foo/bar1 target/device/foo/bar2 In these directories you would have : * foo_bar1_defconfig and foo_bar2_defconfig, which are the default Buildroot configuration for the two boards * The Linux kernel configuration file * Optionnaly, a Busybox configuration file * Optionnaly, a target skeleton and a device table Then, to build a board, you would just do : make foo_bar1_defconfig make or for the other board: make foo_bar2_defconfig make This is a mechanism that currently exists, you can try it by yourself to verify it matches your requirements. I think the BOARD/LOCAL feature is just a duplication of this. Of course, there's an obvious lack of documentation on this mechanism. But this is something I'm working on currently. > > - build/ where all the packages are built > > - images/ where the final kernel and rootfs images are stored > > - staging/ the staging directory (containing the development > > files and libraries compiled for the target) > > - target/ which contains the target root filesystem > > - host/ which contains all the host programs > > - stamps/ which contains the stamps files > > > > We have a a number of boards to build and this is going put the burden > on the end user to handle moving the output directory around. > Not very user friendly for people who use buildroot in anything but > the simplest case. > > Please still support the ability to build multiple targets within the > same buildroot (in configuration). One option would be to make > "O=<dir>" a configuration option (defaulting to the output directory). That could be an option, if that makes it easier to use for your users. Sincerly, Thomas -- Thomas Petazzoni, Free Electrons Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com ^ permalink raw reply [flat|nested] 39+ messages in thread
[parent not found: <4AA775760200006C0000A21D@gwia.alliedtelesyn.co.nz>]
* [Buildroot] [RFC] [PATCH 0/5] Buildroot cleanup [not found] <4AA775760200006C0000A21D@gwia.alliedtelesyn.co.nz> @ 2009-09-08 21:51 ` angus salkeld 2009-09-09 6:26 ` Thomas Petazzoni 2009-09-09 7:03 ` Peter Korsgaard 0 siblings, 2 replies; 39+ messages in thread From: angus salkeld @ 2009-09-08 21:51 UTC (permalink / raw) To: buildroot > Sven> Hi, > Sven> On Wed, 2009-09-09 at 07:54 +1200, angus salkeld wrote: > > >> Another suggestion would be to completely separate out the toolchain > >> into a new package "buildcross.git" that only builds the cross > >> toolchain and then buildroot always uses the external toolchain. > >> It would make buildroot's toolchain setup simpler (one toolchain mode). > >> And make sharing toolchains more obvious. > > Sven> I like that idea. Can't really judge if it would be a success, but it > Sven> seems like a nice solution that has the potential to simplify things. > > I have been thinking about it myself. *REALLY* supporting toolchains for > all the different architectures / variants, uclibc and (e)glibc and > following up on compiler bugs takes quite some effort (and noone seems > willing to do it for buildroot), so maybe the best long term solution is > simply to deprecate the toolchain building stuff and just recommend > crosstool-ng instead? > > This would make BR less selfcontained / one-stop-shop though. > Well you could treat crosstool-ng as just another package that is available to build. So if you select crosstool-ng, buildroot automatically sets up the correct external toolchain options. Regards Angus Salkeld ^ permalink raw reply [flat|nested] 39+ messages in thread
* [Buildroot] [RFC] [PATCH 0/5] Buildroot cleanup 2009-09-08 21:51 ` angus salkeld @ 2009-09-09 6:26 ` Thomas Petazzoni 2009-09-09 7:03 ` Peter Korsgaard 1 sibling, 0 replies; 39+ messages in thread From: Thomas Petazzoni @ 2009-09-09 6:26 UTC (permalink / raw) To: buildroot Le Wed, 09 Sep 2009 09:51:32 +1200, "angus salkeld" <angus.salkeld@alliedtelesis.co.nz> a ?crit : > Well you could treat crosstool-ng as just another package that is > available to build. > So if you select crosstool-ng, buildroot automatically sets up the > correct external toolchain options. That's my long term plan. Introduce a new toolchain type in Buildroot: Crosstool-NG toolchain. Just like for uClibc today, Buildroot would produce/tune the Crosstool-NG configuration before running the Crosstool-NG compilation process. We could have this in parallel to the internal building system for toolchains for a while, and then when we're satisfied, switch to Crosstool-NG completely by removing the old mechanism. Sincerly, Thomas -- Thomas Petazzoni, Free Electrons Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com ^ permalink raw reply [flat|nested] 39+ messages in thread
* [Buildroot] [RFC] [PATCH 0/5] Buildroot cleanup 2009-09-08 21:51 ` angus salkeld 2009-09-09 6:26 ` Thomas Petazzoni @ 2009-09-09 7:03 ` Peter Korsgaard 1 sibling, 0 replies; 39+ messages in thread From: Peter Korsgaard @ 2009-09-09 7:03 UTC (permalink / raw) To: buildroot >>>>> "angus" == angus salkeld <angus.salkeld@alliedtelesis.co.nz> writes: Hi, >> This would make BR less selfcontained / one-stop-shop though. >> angus> Well you could treat crosstool-ng as just another package that angus> is available to build. So if you select crosstool-ng, buildroot angus> automatically sets up the correct external toolchain options. Yes, that sounds like a nice idea. I'll take a closer look at crosstool-ng in the near future to see how easy this would be.. -- Bye, Peter Korsgaard ^ permalink raw reply [flat|nested] 39+ messages in thread
end of thread, other threads:[~2009-09-10 7:33 UTC | newest]
Thread overview: 39+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-09-07 22:09 [Buildroot] [RFC] [PATCH 0/5] Buildroot cleanup Thomas Petazzoni
2009-09-07 22:09 ` [Buildroot] [PATCH 1/5] Remove the "project" feature Thomas Petazzoni
2009-09-08 6:27 ` Hans-Christian Egtvedt
2009-09-08 6:58 ` Sven Neumann
2009-09-08 7:07 ` Peter Korsgaard
2009-09-08 7:15 ` Sven Neumann
2009-09-08 7:23 ` Peter Korsgaard
2009-09-08 7:31 ` Thomas Petazzoni
2009-09-08 7:43 ` Peter Korsgaard
2009-09-08 7:49 ` Thomas Petazzoni
2009-09-08 6:59 ` Peter Korsgaard
2009-09-08 7:16 ` Thomas Petazzoni
2009-09-08 7:06 ` Peter Korsgaard
[not found] ` <20090908092408.787e9cf7@surf>
2009-09-08 7:31 ` Peter Korsgaard
2009-09-07 22:09 ` [Buildroot] [PATCH 2/5] Remove the BOARD/LOCAL feature Thomas Petazzoni
2009-09-07 22:09 ` [Buildroot] [PATCH 3/5] By default, put the output in an output/ directory Thomas Petazzoni
2009-09-09 10:19 ` Peter Korsgaard
2009-09-09 11:28 ` Thomas Petazzoni
2009-09-07 22:09 ` [Buildroot] [PATCH 4/5] Remove BR2_TOPDIR_PREFIX and BR2_TOPDIR_SUFFIX Thomas Petazzoni
2009-09-09 17:35 ` Bernhard Reutner-Fischer
2009-09-10 6:30 ` Thomas Petazzoni
2009-09-10 7:33 ` Peter Korsgaard
2009-09-07 22:09 ` [Buildroot] [PATCH 5/5] Rename the output directories Thomas Petazzoni
2009-09-09 7:02 ` Peter Korsgaard
2009-09-09 7:22 ` Thomas Petazzoni
2009-09-09 7:37 ` Peter Korsgaard
2009-09-08 17:03 ` [Buildroot] [RFC] [PATCH 0/5] Buildroot cleanup Will Newton
2009-09-08 19:13 ` Jonathan dumaresq
2009-09-08 21:20 ` Peter Korsgaard
2009-09-09 9:36 ` Will Newton
[not found] <4AA62DD20200000D00128C56@gwia.alliedtelesyn.co.nz>
2009-09-08 19:54 ` angus salkeld
2009-09-08 20:15 ` Sven Neumann
2009-09-08 21:27 ` Peter Korsgaard
2009-09-09 6:24 ` Thomas Petazzoni
2009-09-09 7:06 ` Peter Korsgaard
2009-09-09 6:32 ` Thomas Petazzoni
[not found] <4AA775760200006C0000A21D@gwia.alliedtelesyn.co.nz>
2009-09-08 21:51 ` angus salkeld
2009-09-09 6:26 ` Thomas Petazzoni
2009-09-09 7:03 ` Peter Korsgaard
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox