- our dependencies are project specific. First (untested) attempt to take this fact...
authorBernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Tue, 21 Aug 2007 17:56:47 +0000 (17:56 -0000)
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Tue, 21 Aug 2007 17:56:47 +0000 (17:56 -0000)
  Will need to try to copy eventual pre-existing project-specific deps back
  to package/config in order not to mess up the corresponding timestamps (to avoid superfluous rebuilds)..

Makefile
package/Makefile.in
project/Makefile.in

index 9a52b0b8d7c23ddfdc89719c1114af399a1d3dc2..2cbb7275d86d0886eb1d1218a55882b91773c9c4 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -150,8 +150,6 @@ LIBTGTEXT=.so
 endif
 PREFERRED_LIB_FLAGS:=--enable-static --enable-shared
 
-BR2_DEPENDS_DIR=$(BASE_DIR)/package/config/buildroot-config/
-
 ##############################################################
 #
 # The list of stuff to build for the target toolchain
@@ -165,7 +163,11 @@ BASE_TARGETS:=uclibc
 endif
 TARGETS:=
 
+# setup uor pathes
 include project/Makefile.in
+
+BR2_DEPENDS_DIR=$(PROJECT_BUILD_DIR)/buildroot-config
+
 include toolchain/Makefile.in
 include package/Makefile.in
 
@@ -211,7 +213,12 @@ TARGETS_DIRCLEAN:=$(patsubst %,%-dirclean,$(TARGETS))
 # all targets depend on the crosscompiler and it's prerequisites
 $(TARGETS): $(BASE_TARGETS)
 
+$(BR2_DEPENDS_DIR): .config
+       rm -rf $@
+       cp -dpRf $(CONFIG)/buildroot-config $@
+
 dirs: $(DL_DIR) $(TOOL_BUILD_DIR) $(BUILD_DIR) $(STAGING_DIR) $(TARGET_DIR) \
+       $(BR2_DEPENDS_DIR) \
        $(BINARIES_DIR) $(PROJECT_BUILD_DIR)
 
 $(BASE_TARGETS): dirs
@@ -223,6 +230,7 @@ world: dependencies dirs target-host-info $(BASE_TARGETS) $(TARGETS)
        $(BASE_TARGETS) $(TARGETS) \
        $(TARGETS_CLEAN) $(TARGETS_DIRCLEAN) $(TARGETS_SOURCE) \
        $(DL_DIR) $(TOOL_BUILD_DIR) $(BUILD_DIR) $(STAGING_DIR) $(TARGET_DIR) \
+       $(BR2_DEPENDS_DIR) \
        $(BINARIES_DIR) $(PROJECT_BUILD_DIR)
 
 #############################################################
@@ -260,7 +268,7 @@ $(PROJECT_BUILD_DIR)/.root:
        -find $(TARGET_DIR) -type d -name .svn | xargs rm -rf
        touch $@
 
-$(TARGET_DIR): $(PROJECT_BUILD_DIR)/.root
+$(TARGET_DIR): $(PROJECT_BUILD_DIR)/.root
 
 erase-fakeroots:
        rm -f $(PROJECT_BUILD_DIR)/.fakeroot*
@@ -310,11 +318,13 @@ HOSTCFLAGS=$(CFLAGS_FOR_BUILD)
 export HOSTCFLAGS
 
 $(CONFIG)/conf:
+       @mkdir -p $(CONFIG)/buildroot-config
        $(MAKE) CC="$(HOSTCC)" -C $(CONFIG) conf
        -@if [ ! -f .config ] ; then \
                cp $(CONFIG_DEFCONFIG) .config; \
        fi
 $(CONFIG)/mconf:
+       @mkdir -p $(CONFIG)/buildroot-config
        $(MAKE) CC="$(HOSTCC)" -C $(CONFIG) conf mconf
        -@if [ ! -f .config ] ; then \
                cp $(CONFIG_DEFCONFIG) .config; \
index 44a32d8c9f8c21de5a777810bb80bf9571cc5d59..8f0aefe6513c4478923c3fff1db3c69520b3e76a 100644 (file)
@@ -9,20 +9,6 @@ HOSTMAKE :=$(shell $(CONFIG_SHELL) -c "which $(HOSTMAKE)"  || type -p $(HOSTMAKE
 MAKE1:=$(HOSTMAKE) MAKE="$(firstword $(HOSTMAKE)) -j1"
 MAKE:=$(HOSTMAKE) -j$(BR2_JLEVEL)
 
-# Strip off the annoying quoting
-ARCH:=$(strip $(subst ",, $(BR2_ARCH)))
-#"))
-WGET:=$(strip $(subst ",, $(BR2_WGET))) $(SPIDER)
-#"))
-SVN:=$(strip $(subst ",, $(BR2_SVN)))
-#"))
-ZCAT:=$(strip $(subst ",, $(BR2_ZCAT)))
-#"))
-BZCAT:=$(strip $(subst ",, $(BR2_BZCAT)))
-#"))
-TAR_OPTIONS=$(subst ",, $(BR2_TAR_OPTIONS)) -xf
-#")
-
 
 ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
 TARGET_CFLAGS=$(TARGET_OPTIMIZATION) $(TARGET_DEBUGGING) \
@@ -72,34 +58,6 @@ endif
 #########################################################################
 
 
-BASE_DIR:=$(shell pwd)
-
-TOPDIR_PREFIX:=$(strip $(subst ",, $(BR2_TOPDIR_PREFIX)))_
-#"))
-TOPDIR_SUFFIX:=_$(strip $(subst ",, $(BR2_TOPDIR_SUFFIX)))
-#"))
-ifeq ($(TOPDIR_PREFIX),_)
-TOPDIR_PREFIX:=
-endif
-ifeq ($(TOPDIR_SUFFIX),_)
-TOPDIR_SUFFIX:=
-endif
-
-DL_DIR=$(strip $(subst ",, $(BR2_DL_DIR)))
-#"))
-ifeq ($(DL_DIR),)
-DL_DIR:=$(BASE_DIR)/dl
-endif
-#PATCH_DIR=$(BASE_DIR)/sources/patches
-
-# 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:=-$(strip $(subst ",, $(BR2_GNU_TARGET_SUFFIX)))
-#"))
-
-STAGING_DIR:=$(strip $(subst ",, $(BR2_STAGING_DIR)))
-#"))
 ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
 TOOL_BUILD_DIR=$(BASE_DIR)/$(TOPDIR_PREFIX)toolchain_build_$(ARCH)$(ARCH_FPU_SUFFIX)$(TOPDIR_SUFFIX)
 
index 2e8ee1b22d81b727cc7307e8245cdb95d6e9cec4..3c73bb93d3f2d40b74d361ae8ee6f6a9368e86a4 100644 (file)
@@ -5,6 +5,50 @@ TARGET_HOSTNAME:=$(strip $(subst ",,$(BR2_HOSTNAME)))
 BANNER:=$(strip $(subst ",,$(BR2_BANNER)))
 #"))
 
+
+# Strip off the annoying quoting
+ARCH:=$(strip $(subst ",, $(BR2_ARCH)))
+#"))
+WGET:=$(strip $(subst ",, $(BR2_WGET))) $(SPIDER)
+#"))
+SVN:=$(strip $(subst ",, $(BR2_SVN)))
+#"))
+ZCAT:=$(strip $(subst ",, $(BR2_ZCAT)))
+#"))
+BZCAT:=$(strip $(subst ",, $(BR2_BZCAT)))
+#"))
+TAR_OPTIONS=$(subst ",, $(BR2_TAR_OPTIONS)) -xf
+#")
+
+
+BASE_DIR:=$(shell pwd)
+
+TOPDIR_PREFIX:=$(strip $(subst ",, $(BR2_TOPDIR_PREFIX)))_
+#"))
+TOPDIR_SUFFIX:=_$(strip $(subst ",, $(BR2_TOPDIR_SUFFIX)))
+#"))
+ifeq ($(TOPDIR_PREFIX),_)
+TOPDIR_PREFIX:=
+endif
+ifeq ($(TOPDIR_SUFFIX),_)
+TOPDIR_SUFFIX:=
+endif
+
+DL_DIR=$(strip $(subst ",, $(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:=-$(strip $(subst ",, $(BR2_GNU_TARGET_SUFFIX)))
+#"))
+
+STAGING_DIR:=$(strip $(subst ",, $(BR2_STAGING_DIR)))
+#"))
+
 # 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)