diff --git a/make/cache.mk b/make/cache.mk index 0c049057..a1372d97 100644 --- a/make/cache.mk +++ b/make/cache.mk @@ -6,6 +6,8 @@ CACHE_PROJECT_MK ?= .cache-project.mk CACHED_VARS_ONLY_PROJECT ?= \ PROJECT \ + PREREQ_BUILD \ + PREREQ_RUN \ PREREQ \ VERSION \ HEX_VERSION \ diff --git a/make/defs.mk b/make/defs.mk index f8beacec..0533ae55 100644 --- a/make/defs.mk +++ b/make/defs.mk @@ -503,6 +503,18 @@ endif INSTALL_FILE ?= $(INSTALL) INSTALL_DIR ?= $(INSTALL) +ifeq ($(origin PREREQ_BUILD),undefined) + PREREQ_BUILD := $(call proj_query, pkg-requires --no-subpackages --subsections=jw --syntax names-only --delimiter ' ' 'build devel' $(PROJECT)) +endif + +ifeq ($(origin PREREQ_RUN),undefined) + PREREQ_RUN := $(call proj_query, pkg-requires --no-subpackages --subsections=jw --syntax names-only --delimiter ' ' 'run' $(PROJECT)) +endif + +ifeq ($(origin PREREQ),undefined) + PREREQ := $(sort $(PREREQ_BUILD) $(PREREQ_RUN)) +endif + # ----- local.mk $(eval $(call try_include,$(JWBDIR)/make/local.mk)) diff --git a/make/make.mk b/make/make.mk index 373858b7..d71e0a23 100644 --- a/make/make.mk +++ b/make/make.mk @@ -9,8 +9,8 @@ include $(JWBDIR)/make/defs-dirs.mk include $(JWBDIR)/make/dev-utils.mk CACHED_FILES ?= $(VERSION_FILE) $(wildcard $(TOPDIR)/make/project.conf) -CACHED_VARS ?= PROJECT PREREQ VERSION HEX_VERSION FULL_NAME \ - WHICH PYTHON ECHO TEST BROWSER SED RM PWD ID CUT TR \ +CACHED_VARS ?= PROJECT PREREQ_BUILD PREREQ_RUN PREREQ VERSION HEX_VERSION \ + FULL_NAME WHICH PYTHON ECHO TEST BROWSER SED RM PWD ID CUT TR \ AWK GETENT XARGS FIND PRINTF PLATFORM_INFO OS_NAME_VERSION \ CAT BIN_INSTALL SUDO \ JW_PKG_LD_LIBRARY_PATH JW_PKG_EXE_PATH JW_PKG_PYTHON_PATH diff --git a/make/topdir.mk b/make/topdir.mk index b8957248..a4a4dd7f 100644 --- a/make/topdir.mk +++ b/make/topdir.mk @@ -80,23 +80,18 @@ REMOTE_GIT_DIR = /$(JANWARE_USER)/$(REMOTE_GIT_FLAVOUR)/$(PROJECT) REMOTE_GIT_URL = ssh://$(JANWARE_USER_PREFIX)devgit.janware.com$(REMOTE_GIT_DIR) ifneq ($(DONT_CHECK_PREREQ_DONE),true) - ifndef PREREQ - PREREQ := $(call proj_query,pkg-requires --no-subpackages --subsections=jw --syntax names-only --delimiter=' ' build $(PROJECT)) + ifndef PREREQ_DIRS_BUILD + PREREQ_DIRS_BUILD := $(call proj_query,proj-dir $(PREREQ_BUILD)) endif - ifndef PREREQ_DIRS - PREREQ_DIRS := $(call proj_query,proj-dir $(PREREQ)) - endif - PREREQ_DIRS_DONE := $(addsuffix /dirs-all.done,$(filter-out $(TOPDIR) /opt/%,$(PREREQ_DIRS))) + PREREQ_DIRS_BUILD_DONE := $(addsuffix /dirs-all.done,$(filter-out $(TOPDIR) /opt/%,$(PREREQ_DIRS_BUILD))) endif ifneq ($(SUBDIRS_TO_ITERATE),) - ifeq ($(MAKECMDGOALS),) SUBDIR_TARGETS = all else SUBDIR_TARGETS = $(filter $(ALLOWED_SUBDIR_TARGETS),$(MAKECMDGOALS)) endif - endif all: topdir config