1 #############################################################################
2 # Copyright (c) 2015 Ericsson AB and others.
3 # stefan.k.berg@ericsson.com
4 # jonas.bjurel@ericsson.com
5 # All rights reserved. This program and the accompanying materials
6 # are made available under the terms of the Apache License, Version 2.0
7 # which accompanies this distribution, and is available at
8 # http://www.apache.org/licenses/LICENSE-2.0
9 ##############################################################################
12 CACHEVALIDATE := $(addsuffix .validate,$(SUBDIRS))
13 CACHECLEAN := $(addsuffix .clean,$(CACHEFILES) $(CACHEDIRS))
15 ############################################################################
16 # BEGIN of variables to customize
18 CACHEFILES += .versions
19 CACHEFILES += stack/deploy-ramdisk-ironic.initramfs
20 CACHEFILES += stack/deploy-ramdisk-ironic.kernel
21 CACHEFILES += stack/ironic-python-agent.initramfs
22 CACHEFILES += stack/ironic-python-agent.kernel
23 CACHEFILES += stack/ironic-python-agent.vmlinuz
24 CACHEFILES += stack/overcloud-full.initrd
25 CACHEFILES += stack/overcloud-full.qcow2
26 CACHEFILES += stack/overcloud-full.vmlinuz
27 CACHEFILES += $(shell basename $(ISOSRC))
29 # END of variables to customize
30 ############################################################################
33 prepare-cache: make-cache-dir $(CACHEDIRS) $(CACHEFILES)
35 .PHONY: make-cache-dir
41 clean-cache: $(CACHECLEAN)
46 @mkdir -p $(dir $(CACHE_DIR)/$@)
47 @if [ ! -d $(BUILD_BASE)/$@ ]; then\
48 mkdir -p $(BUILD_BASE)/$@;\
50 @ln -s $(BUILD_BASE)/$@ $(CACHE_DIR)/$@
54 @mkdir -p $(dir $(CACHE_DIR)/$@)
55 @if [ ! -d $(dir $(BUILD_BASE)/$@) ]; then\
56 mkdir -p $(dir $(BUILD_BASE)/$@);\
59 @if [ ! -f $(BUILD_BASE)/$@ ]; then\
60 echo " " > $(BUILD_BASE)/$@;\
61 ln -s $(BUILD_BASE)/$@ $(CACHE_DIR)/$@;\
62 rm -f $(BUILD_BASE)/$@;\
64 ln -s $(BUILD_BASE)/$@ $(CACHE_DIR)/$@;\
67 .PHONY: validate-cache
68 validate-cache: $(CACHEVALIDATE)
69 @if [[ $(shell md5sum $(BUILD_BASE)/config.mk | cut -f1 -d " ") != $(shell cat $(VERSION_FILE) | grep config.mk | awk '{print $$NF}') ]]; then\
70 echo "Cache does not match current config.mk definition, cache must be rebuilt";\
74 @if [[ $(shell md5sum $(BUILD_BASE)/cache.mk | cut -f1 -d " ") != $(shell cat $(VERSION_FILE) | grep cache.mk | awk '{print $$NF}') ]]; then\
75 echo "Cache does not match current cache.mk definition, cache must be rebuilt";\
79 .PHONY: $(CACHEVALIDATE)
80 $(CACHEVALIDATE): %.validate:
81 @echo VALIDATE $(CACHEVALIDATE)
82 $(MAKE) -C $* -f Makefile validate-cache
85 $(CACHECLEAN): %.clean:
86 rm -rf ${CACHE_DIR}/$*