# ----- define these variables # CACHED_FILES = $(TOPDIR)/VERSION # CACHED_VARS = VERSION .PHONY: cache clean.cache CACHED_FILES ?= $(VERSION_FILE) $(wildcard $(TOPDIR)/make/project.conf) 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 CACHED_VARS_ONLY_PROJECT ?= \ PROJECT \ PREREQ_BUILD \ PREREQ_RUN \ PREREQ \ VERSION \ HEX_VERSION \ FULL_NAME \ JW_PKG_LD_LIBRARY_PATH \ JW_PKG_EXE_PATH \ JW_PKG_PYTHON_PATH # We need this to cache JW_PKG_PYTHON_PATH include $(JWBDIR)/make/py-path.mk all: cache clean: clean.cache clean.cache: rm -f $(CACHE_PROJECT_MK) cache: $(CACHE_PROJECT_MK) $(CACHE_PROJECT_MK): $(CACHED_FILES) $(JWBDIR)/make/cache.mk ifneq ($(wildcard $(CACHE_PROJECT_MK)),) rm -f $@ make $@ else @echo 'ifneq ($$(JW_PKG_NO_CACHE),true)' | tee $@.tmp @echo $(foreach v,$(CACHED_VARS),$v = $(value $(v)) EOL) | \ $(SED) 's/\s\+EOL/\n/g;' | \ $(SED) 's/\s*\(\S\+\)\s*=\s*\(.*\)\s*/ifndef \1\n \1 = \2\nendif\n/g;' | \ $(SED) 's|$(realpath $(TOPDIR))|$$(TOPDIR)|g' | \ $(SED) 's|$(realpath $(PROJECTS_DIR))|$$(PROJECTS_DIR)|g' | \ $(GREP) . | \ tee -a $@.tmp @echo 'endif # ifneq ($$(JW_PKG_NO_CACHE),true)' | tee -a $@.tmp mv $@.tmp $@ endif