summaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
authorPeter Korsgaard <peter@korsgaard.com>2014-02-28 14:30:23 +0100
committerPeter Korsgaard <peter@korsgaard.com>2014-02-28 14:30:23 +0100
commitb108fdcb83d457e5d43298fb93dbfd805d076f24 (patch)
tree7fbd64a13fc915f5cea93708419cb3c6aa1b40ea /Makefile
parenta6cfaea44e5105cb66e4e797042f64335f5e7c01 (diff)
parent9e40a1005f51d10784db295797ed270a130d79d5 (diff)
downloadbuildroot-b108fdcb83d457e5d43298fb93dbfd805d076f24.tar.gz
buildroot-b108fdcb83d457e5d43298fb93dbfd805d076f24.zip
Merge branch 'next'
Conflicts: Makefile package/dmraid/Config.in package/gdb/Config.in.host package/linux-headers/linux-headers.mk package/python/python.mk package/python3/python3.mk package/rt-tests/Config.in package/sdl/sdl.mk package/systemd/systemd-01-fix-getty-unit.patch package/systemd/systemd-02-fix-page-size.patch package/systemd/systemd-03-uclibc-fix.patch package/udev/Config.in package/udisks/Config.in package/vlc/vlc.mk system/Config.in Quite some merge conflicts, hopefully I didn't screw up anything. Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile46
1 files changed, 29 insertions, 17 deletions
diff --git a/Makefile b/Makefile
index 18b631dd4a..2e5d11ef9d 100644
--- a/Makefile
+++ b/Makefile
@@ -25,7 +25,7 @@
#--------------------------------------------------------------
# Set and export the version string
-export BR2_VERSION:=2014.02
+export BR2_VERSION:=2014.05-git
# Check for minimal make version (note: this check will break at make 10.x)
MIN_MAKE_VERSION=3.81
@@ -43,7 +43,20 @@ export HOSTARCH := $(shell uname -m | \
-e s/macppc/powerpc/\
-e s/sh.*/sh/)
-# This top-level Makefile can *not* be executed in parallel
+# Parallel execution of this Makefile is disabled because it changes
+# the packages building order, that can be a problem for two reasons:
+# - If a package has an unspecified optional dependency and that
+# dependency is present when the package is built, it is used,
+# otherwise it isn't (but compilation happily proceeds) so the end
+# result will differ if the order is swapped due to parallel
+# building.
+# - Also changing the building order can be a problem if two packages
+# manipulate the same file in the target directory.
+#
+# Taking into account the above considerations, if you still want to execute
+# this top-level Makefile in parallel comment the ".NOTPARALLEL" line and
+# build using the following command:
+# make BR2_JLEVEL= -j$((`getconf _NPROCESSORS_ONLN`+1))
.NOTPARALLEL:
# absolute path
@@ -383,8 +396,6 @@ include system/system.mk
include $(BR2_EXTERNAL)/external.mk
-TARGETS+=target-finalize
-
ifeq ($(BR2_ENABLE_LOCALE_PURGE),y)
TARGETS+=target-purgelocales
endif
@@ -401,11 +412,8 @@ endif
include fs/common.mk
-TARGETS+=target-post-image
-
TARGETS_SOURCE:=$(patsubst %,%-source,$(TARGETS) $(BASE_TARGETS))
TARGETS_DIRCLEAN:=$(patsubst %,%-dirclean,$(TARGETS))
-TARGETS_ALL:=$(patsubst %,__real_tgt_%,$(TARGETS))
# host-* dependencies have to be handled specially, as those aren't
# visible in Kconfig and hence not added to a variable like TARGETS.
@@ -428,9 +436,6 @@ HOST_SOURCE += $(addsuffix -source,$(sort $(TARGETS_HOST_DEPS) $(HOST_DEPS)))
TARGETS_LEGAL_INFO:=$(patsubst %,%-legal-info,\
$(TARGETS) $(BASE_TARGETS) $(TARGETS_HOST_DEPS) $(HOST_DEPS))))
-# all targets depend on the crosscompiler and it's prerequisites
-$(TARGETS_ALL): __real_tgt_%: $(BASE_TARGETS) %
-
dirs: $(BUILD_DIR) $(STAGING_DIR) $(TARGET_DIR) \
$(HOST_DIR) $(BINARIES_DIR) $(STAMP_DIR)
@@ -439,11 +444,16 @@ $(BUILD_DIR)/buildroot-config/auto.conf: $(BR2_CONFIG)
prepare: $(BUILD_DIR)/buildroot-config/auto.conf
-world: $(BASE_TARGETS) $(TARGETS_ALL)
+# Add base dependencies to all targets even on those not based on the
+# package framework.
+$(TARGETS): dirs prepare dependencies
+
+world: target-post-image
.PHONY: all world toolchain dirs clean distclean source outputmakefile \
legal-info legal-info-prepare legal-info-clean printvars \
- $(BASE_TARGETS) $(TARGETS) $(TARGETS_ALL) \
+ target-finalize target-post-image \
+ $(BASE_TARGETS) $(TARGETS) $(TARGETS_ROOTFS) \
$(TARGETS_DIRCLEAN) $(TARGETS_SOURCE) $(TARGETS_LEGAL_INFO) \
$(BUILD_DIR) $(STAGING_DIR) $(TARGET_DIR) \
$(HOST_DIR) $(BINARIES_DIR) $(STAMP_DIR)
@@ -503,7 +513,9 @@ endif
STRIP_FIND_CMD += -type f \( -perm /111 -o -name '*.so*' \)
STRIP_FIND_CMD += -not \( $(call findfileclauses,libpthread*.so* $(call qstrip,$(BR2_STRIP_EXCLUDE_FILES))) \) -print
-target-finalize:
+$(TARGETS_ROOTFS): target-finalize
+
+target-finalize: $(TARGETS)
rm -rf $(TARGET_DIR)/usr/include $(TARGET_DIR)/usr/share/aclocal \
$(TARGET_DIR)/usr/lib/pkgconfig $(TARGET_DIR)/usr/share/pkgconfig \
$(TARGET_DIR)/usr/lib/cmake $(TARGET_DIR)/usr/share/cmake
@@ -518,10 +530,10 @@ endif
rm -rf $(TARGET_DIR)/usr/doc $(TARGET_DIR)/usr/share/doc
rm -rf $(TARGET_DIR)/usr/share/gtk-doc
-rmdir $(TARGET_DIR)/usr/share 2>/dev/null
-ifeq ($(BR2_PACKAGE_PYTHON_PY_ONLY),y)
+ifeq ($(BR2_PACKAGE_PYTHON_PY_ONLY)$(BR2_PACKAGE_PYTHON3_PY_ONLY),y)
find $(TARGET_DIR)/usr/lib/ -name '*.pyc' -print0 | xargs -0 rm -f
endif
-ifeq ($(BR2_PACKAGE_PYTHON_PYC_ONLY),y)
+ifeq ($(BR2_PACKAGE_PYTHON_PYC_ONLY)$(BR2_PACKAGE_PYTHON3_PYC_ONLY),y)
find $(TARGET_DIR)/usr/lib/ -name '*.py' -print0 | xargs -0 rm -f
endif
rm -rf $(TARGET_DIR)/usr/lib/luarocks
@@ -608,7 +620,7 @@ target-generatelocales: host-localedef
done
endif
-target-post-image:
+target-post-image: $(TARGETS_ROOTFS)
@$(foreach s, $(call qstrip,$(BR2_ROOTFS_POST_IMAGE_SCRIPT)), \
$(call MESSAGE,"Executing post-image script $(s)"); \
$(USER_HOOKS_EXTRA_ENV) $(s) $(BINARIES_DIR) $(call qstrip,$(BR2_ROOTFS_POST_SCRIPT_ARGS))$(sep))
@@ -645,7 +657,7 @@ legal-info: dirs legal-info-clean legal-info-prepare $(TARGETS_LEGAL_INFO) \
@rm -f $(LEGAL_WARNINGS)
show-targets:
- @echo $(TARGETS)
+ @echo $(TARGETS) $(TARGETS_ROOTFS)
graph-build: $(O)/build/build-time.log
@install -d $(O)/graphs
OpenPOWER on IntegriCloud