diff options
| author | Fabio Porcedda <fabio.porcedda@gmail.com> | 2014-02-14 10:55:04 +0100 |
|---|---|---|
| committer | Peter Korsgaard <peter@korsgaard.com> | 2014-02-14 21:08:35 +0100 |
| commit | b2fd9f90e23e25ab6c55f116c2cf3c244d122ec2 (patch) | |
| tree | c1f67ca23f1efe0a696751a5145e65ad7ea603cd /package | |
| parent | 6f13130ac9a1a5eebfccbd8c9f04a6ec3f5ceba2 (diff) | |
package: add toolchain dependency to every target package
This commit makes the dependency from the target toolchain explicit.
This way we can buid from command line a package that use
inner-generic-package right after the configuration phase, example:
make clean <package-name>
Also remove TARGETS_ALL because the only purpose was to add toolchain
dependency so it's superseded by this commit.
To prevent circular dependency add the new variable
<pkgname>_ADD_TOOLCHAIN_DEPENDENCY to avoid adding the toolchain
dependency for toolchain packages.
This is also a step forward supporting top-level parallel make.
Signed-off-by: Fabio Porcedda <fabio.porcedda@gmail.com>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Diffstat (limited to 'package')
| -rw-r--r-- | package/glibc/glibc.mk | 3 | ||||
| -rw-r--r-- | package/linux-headers/linux-headers.mk | 3 | ||||
| -rw-r--r-- | package/pkg-autotools.mk | 3 | ||||
| -rw-r--r-- | package/pkg-cmake.mk | 2 | ||||
| -rw-r--r-- | package/pkg-generic.mk | 14 | ||||
| -rw-r--r-- | package/pkg-python.mk | 2 | ||||
| -rw-r--r-- | package/uclibc/uclibc.mk | 3 |
7 files changed, 25 insertions, 5 deletions
diff --git a/package/glibc/glibc.mk b/package/glibc/glibc.mk index 89eaaf6de..f50b4591b 100644 --- a/package/glibc/glibc.mk +++ b/package/glibc/glibc.mk @@ -31,6 +31,9 @@ endif GLIBC_LICENSE = GPLv2+ (programs), LGPLv2.1+, BSD-3c, MIT (library) GLIBC_LICENSE_FILES = $(addprefix $(GLIBC_SRC_SUBDIR)/,COPYING COPYING.LIB LICENSES) +# glibc is part of the toolchain so disable the toolchain dependency +GLIBC_ADD_TOOLCHAIN_DEPENDENCY = NO + # Before (e)glibc is configured, we must have the first stage # cross-compiler and the kernel headers GLIBC_DEPENDENCIES = host-gcc-initial linux-headers host-gawk diff --git a/package/linux-headers/linux-headers.mk b/package/linux-headers/linux-headers.mk index 30d307659..6dac9e36f 100644 --- a/package/linux-headers/linux-headers.mk +++ b/package/linux-headers/linux-headers.mk @@ -17,6 +17,9 @@ LINUX_HEADERS_SOURCE = linux-$(LINUX_HEADERS_VERSION).tar.xz LINUX_HEADERS_INSTALL_STAGING = YES +# linux-headers is part of the toolchain so disable the toolchain dependency +LINUX_HEADERS_ADD_TOOLCHAIN_DEPENDENCY = NO + define LINUX_HEADERS_INSTALL_STAGING_CMDS (cd $(@D); \ $(TARGET_MAKE_ENV) $(MAKE) \ diff --git a/package/pkg-autotools.mk b/package/pkg-autotools.mk index 5f6c31d15..32ceef208 100644 --- a/package/pkg-autotools.mk +++ b/package/pkg-autotools.mk @@ -210,7 +210,8 @@ endef # This must be repeated from inner-generic-package, otherwise we get an empty # _DEPENDENCIES if _AUTORECONF is YES. Also filter the result of _AUTORECONF # away from the non-host rule -$(2)_DEPENDENCIES ?= $(filter-out host-automake host-autoconf host-libtool $(1),\ +$(2)_DEPENDENCIES ?= $(filter-out host-automake host-autoconf host-libtool \ + host-toolchain $(1),\ $(patsubst host-host-%,host-%,$(addprefix host-,$($(3)_DEPENDENCIES)))) diff --git a/package/pkg-cmake.mk b/package/pkg-cmake.mk index dbe0d97c9..f7e454bdd 100644 --- a/package/pkg-cmake.mk +++ b/package/pkg-cmake.mk @@ -89,7 +89,7 @@ endif # This must be repeated from inner-generic-package, otherwise we only get # host-cmake in _DEPENDENCIES because of the following line -$(2)_DEPENDENCIES ?= $(filter-out $(1),$(patsubst host-host-%,host-%,$(addprefix host-,$($(3)_DEPENDENCIES)))) +$(2)_DEPENDENCIES ?= $(filter-out host-toolchain $(1),$(patsubst host-host-%,host-%,$(addprefix host-,$($(3)_DEPENDENCIES)))) $(2)_DEPENDENCIES += host-cmake diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk index e5b04ff64..b135b140e 100644 --- a/package/pkg-generic.mk +++ b/package/pkg-generic.mk @@ -351,8 +351,18 @@ endif $(2)_REDISTRIBUTE ?= YES - -$(2)_DEPENDENCIES ?= $(filter-out $(1),$(patsubst host-host-%,host-%,$(addprefix host-,$($(3)_DEPENDENCIES)))) +# When a target package is a toolchain dependency set this variable to +# 'NO' so the 'toolchain' dependency is not added to prevent a circular +# dependency +$(2)_ADD_TOOLCHAIN_DEPENDENCY ?= YES + +$(2)_DEPENDENCIES ?= $(filter-out host-toolchain $(1),\ + $(patsubst host-host-%,host-%,$(addprefix host-,$($(3)_DEPENDENCIES)))) +ifeq ($(4),target) +ifeq ($$($(2)_ADD_TOOLCHAIN_DEPENDENCY),YES) +$(2)_DEPENDENCIES += toolchain +endif +endif $(2)_INSTALL_STAGING ?= NO $(2)_INSTALL_IMAGES ?= NO diff --git a/package/pkg-python.mk b/package/pkg-python.mk index 9b3c97af3..f33980aae 100644 --- a/package/pkg-python.mk +++ b/package/pkg-python.mk @@ -142,7 +142,7 @@ endif # be derived automatically from the dependencies of the corresponding # target package. For example, target packages need # host-python-distutilscross, but not host packages. -$(2)_DEPENDENCIES ?= $(filter-out host-python host-python-setuptools host-python-distutilscross $(1),$(patsubst host-host-%,host-%,$(addprefix host-,$($(3)_DEPENDENCIES)))) +$(2)_DEPENDENCIES ?= $(filter-out host-python host-python-setuptools host-python-distutilscross host-toolchain $(1),$(patsubst host-host-%,host-%,$(addprefix host-,$($(3)_DEPENDENCIES)))) # Target packages need both the python interpreter on the target (for # runtime) and the python interpreter on the host (for diff --git a/package/uclibc/uclibc.mk b/package/uclibc/uclibc.mk index 7df9721c3..ea1c6946a 100644 --- a/package/uclibc/uclibc.mk +++ b/package/uclibc/uclibc.mk @@ -22,6 +22,9 @@ endif UCLIBC_INSTALL_STAGING = YES +# uclibc is part of the toolchain so disable the toolchain dependency +UCLIBC_ADD_TOOLCHAIN_DEPENDENCY = NO + # Before uClibc is configured, we must have the first stage # cross-compiler and the kernel headers UCLIBC_DEPENDENCIES = host-gcc-initial linux-headers |
