All of lore.kernel.org
 help / color / mirror / Atom feed
* [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; 30+ 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] 30+ 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; 30+ 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] 30+ 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; 30+ 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] 30+ 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; 30+ 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] 30+ 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; 30+ 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] 30+ 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; 30+ 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] 30+ 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; 30+ 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] 30+ 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; 30+ 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] 30+ 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; 30+ 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] 30+ 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; 30+ 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] 30+ 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; 30+ 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] 30+ 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; 30+ 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] 30+ 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; 30+ 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] 30+ 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; 30+ 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] 30+ messages in thread

* [Buildroot] [PATCH 1/5] Remove the "project" feature
       [not found]     ` <20090908092408.787e9cf7@surf>
@ 2009-09-08  7:31       ` Peter Korsgaard
  0 siblings, 0 replies; 30+ 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] 30+ 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; 30+ 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] 30+ 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; 30+ 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] 30+ 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; 30+ 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] 30+ 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; 30+ 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] 30+ 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; 30+ 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] 30+ 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; 30+ 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] 30+ 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; 30+ 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] 30+ 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; 30+ 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] 30+ 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; 30+ 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] 30+ 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; 30+ 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] 30+ 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; 30+ 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] 30+ 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; 30+ 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] 30+ 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; 30+ 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] 30+ 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; 30+ 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] 30+ 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; 30+ 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] 30+ messages in thread

end of thread, other threads:[~2009-09-10  7:33 UTC | newest]

Thread overview: 30+ 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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.