*** FIRST VERSION OF CI BUILD SCRIPT ***
[genesis.git] / fuel / build / cache.mk
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 ##############################################################################
10
11 ############################################################################
12 # BEGIN of variables to customize
13 #
14 SHELL = /bin/bash
15
16 #export BUILD_BASE = $(shell pwd)
17 #export CACHE_DIR = "$(BUILD_BASE)/cache"
18
19 CACHEDIRS := opendaylight/f_odl/package
20
21 CACHEFILES := opendaylight/.odl-build-history
22 CACHEFILES += opendaylight/.odl-build.log
23 CACHEFILES += .versions
24 CACHEFILES += fuel-6.0.1.iso
25 #CACHEFILES += $(ISOSRC)
26
27 CACHECLEAN = $(addsuffix .clean,$(CACHEDIRS))
28
29 .PHONY: prepare-cache
30 prepare-cache: make-cache-dir $(CACHEDIRS) $(CACHEFILES)
31
32 .PHONY: make-cache-dir
33 make-cache-dir:
34         @rm -rf ${CACHE_DIR}
35         @mkdir ${CACHE_DIR}
36
37
38 .PHONY: clean-cache
39 clean-cache: $(CACHECLEAN)
40         @rm -rf ${CACHE_DIR}
41
42 .PHONY: $(CACHEDIRS)
43 $(CACHEDIRS):
44         @mkdir -p $(dir ${CACHE_DIR}/$@)
45         @if [ ! -d ${BUILD_BASE}/$@ ]; then\
46            mkdir -p $(dir ${BUILD_BASE}/$@);\
47            ln -s ${BUILD_BASE}/$@ ${CACHE_DIR}/$@;\
48            rm -rf ${BUILD_BASE}/$@;\
49         else\
50            ln -s ${BUILD_BASE}/$@ ${CACHE_DIR}/$@;\
51         fi
52
53 .PHONY: $(CACHEFILES)
54 $(CACHEFILES):
55         @mkdir -p $(dir ${CACHE_DIR}/$@)
56         @if [ ! -f ${BUILD_BASE}/$@ ]; then\
57            mkdir $(dir ${BUILD_BASE}/$@);\
58            echo " " > ${BUILD_BASE}/$@;\
59            ln -s ${BUILD_BASE}/$@ ${CACHE_DIR}/$@;\
60            rm -f ${BUILD_BASE}/$@;\
61         else\
62            ln -s ${BUILD_BASE}/$@ ${CACHE_DIR}/$@;\
63         fi
64
65 .PHONY: validate-cache
66 validate-cache:
67 #       if [ $(shell md5sum ${BUILD_BASE}/config.mk) -ne $(shell cat ${CACHE_DIR}/.versions | grep config.mk awk '{print $NF}') ]; then\
68            echo "Cache does not match current config.mk definition, cache must be rebuilt";\
69            exit 1;\
70         fi;
71
72 #       if [ $(shell md5sum ${BUILD_BASE}/cache.mk) -ne $(shell cat ${CACHE_DIR}/.versions | grep config.mk awk '{print $NF}') ]; then\
73            echo "Cache does not match current cache.mk definition, cache must be rebuilt";\
74            exit 1;\
75         fi;
76
77 #       $(MAKE) -C opendaylight validate-cache
78 #       if [ $? -ne 0 ]; then\
79            echo "Cache does not match current OpenDaylight version, cach must be rebuilt";\
80            exit 1;\
81         fi;
82
83 #       $(SUBDIRS)
84
85 .PHONY: $(CACHECLEAN)
86 $(CACHECLEAN): %.clean:
87         rm -f ${CACHE_DIR}/$*