Merge "Restore "Bugfix backport: sysctl.conf vrouter namespace"""
[armband.git] / Makefile
1 root:=$(shell pwd)
2 include config.mk
3
4 all: build
5
6 config.mk: submodules-init
7         @ln -s -f ${root}/upstream/fuel/build/config.mk ${root}/config.mk
8
9 .PHONY: submodules-init submodules-clean
10 submodules-init:
11         @if [ ! -d ${root}/upstream/fuel/build ]; then \
12                 git submodule -q init; \
13                 git submodule -q sync; \
14                 git submodule update --remote; \
15         fi
16
17 # Cleans any changes made to submodules
18 submodules-clean:
19         @git submodule -q foreach \
20                 'git am --abort; \
21                 git checkout -q armband-workbench-root; \
22                 git branch -q -D armband-workbench; \
23                 git tag -d armband-workbench-root; \
24                 git reset -q --hard HEAD; git clean -xdff'
25
26 .PHONY: patches-export patches-import
27 # Generate patches from submodules
28 patches-export:
29         @git submodule -q foreach 'mkdir -p ${root}/patches/$$name'
30         @git submodule -q foreach 'git format-patch \
31                 -o ${root}/patches/$$name -N armband-workbench-root \
32             --no-signature'
33         @find ${root}/patches -name '*.patch' -exec sed -i -e '1d' {} \;
34
35 # apply patches from patches/* to respective submodules
36 patches-import:
37         @cd ${root}/upstream/fuel-agent && \
38                 git checkout -q ${FUEL_AGENT_COMMIT}
39         @cd ${root}/upstream/fuel-astute && \
40                 git checkout -q ${ASTUTE_COMMIT}
41         @cd ${root}/upstream/fuel-library && \
42                 git checkout -q ${FUELLIB_COMMIT}
43         @cd ${root}/upstream/fuel-mirror && \
44                 git checkout -q ${FUEL_MIRROR_COMMIT}
45         @cd ${root}/upstream/fuel-nailgun-agent && \
46                 git checkout -q ${FUEL_NAILGUN_AGENT_COMMIT}
47         @cd ${root}/upstream/fuel-web && \
48                 git checkout -q ${NAILGUN_COMMIT}
49         @git submodule -q foreach 'mkdir -p ${root}/patches/$$name'
50         @git submodule -q foreach 'git tag armband-workbench-root'
51         @git submodule -q foreach 'git checkout -q -b armband-workbench'
52         @git submodule -q foreach \
53                 'if [ ! -z "$$(ls ${root}/patches/$$name/)" ]; then \
54                         echo "-- patching $$name"; \
55                         git am ${root}/patches/$$name/*.patch; \
56                 fi'
57 clean-docker:
58         @if [ -d ${root}/upstream/fuel/build ]; then \
59                 sudo make -C ${root}/upstream/fuel/build deepclean; \
60         fi
61         @for container in $(shell sudo docker ps -a -q); do \
62                 sudo docker rm -f -v $${container}; \
63         done
64         @for image in $(shell sudo docker images -q); do \
65                 sudo docker rmi -f $${image}; \
66         done
67
68 clean-build:
69         sudo rm -rf /tmp/fuel-main
70         git -C ${root}/upstream/fuel reset --hard HEAD
71         git -C ${root}/upstream/fuel clean -xdff
72
73 release: export LC_ALL=en_US.UTF-8
74 release: submodules-clean clean-docker clean-build submodules-init patches-import build
75
76 ifneq ($(REVSTATE),)
77     EXTRA_PARAMS="REVSTATE=$(REVSTATE)"
78 endif
79
80 build:
81         cd ${root}/upstream/fuel/build && \
82                 make \
83                         BUILD_FUEL_PLUGINS="f_odlpluginbuild f_bgpvpn-pluginbuild" \
84                         UBUNTU_ARCH="amd64 arm64" \
85                         PRODNO="OPNFV_A_FUEL" \
86                         OPNFV_GIT_SHA=$(shell git rev-parse HEAD) \
87                         ASTUTE_REPO=${root}/upstream/fuel-astute \
88                         ASTUTE_COMMIT=HEAD \
89                         NAILGUN_REPO=${root}/upstream/fuel-web \
90                         NAILGUN_COMMIT=HEAD \
91                         FUEL_AGENT_REPO=${root}/upstream/fuel-agent \
92                         FUEL_AGENT_COMMIT=HEAD \
93                         FUEL_NAILGUN_AGENT_REPO=${root}/upstream/fuel-nailgun-agent \
94                         FUEL_NAILGUN_AGENT_COMMIT=HEAD \
95                         FUEL_MIRROR_REPO=${root}/upstream/fuel-mirror \
96                         FUEL_MIRROR_COMMIT=HEAD \
97                         FUELLIB_REPO=${root}/upstream/fuel-library \
98                         FUELLIB_COMMIT=HEAD \
99                         ODL_REPO=${root}/upstream/fuel-plugin-opendaylight \
100                         ODL_BRANCH=armband-workbench \
101                         ODL_CHANGE= \
102                         OPNFV_QUAGGE_PACKAGING_REPO="https://github.com/alexandruavadanii/opnfv-quagga-packaging" \
103                         OVS_NSH_DPDK_REPO=${root}/upstream/fuel-plugin-ovs \
104                         OVS_NSH_DPDK_BRANCH=HEAD \
105                         VSPERF_REPO=${root}/upstream/vswitchperf \
106                         VSPERF_BRANCH=armband-workbench \
107                         VSPERF_CHANGE= \
108                         YARDSTICK_REPO=${root}/upstream/yardstick \
109                         YARDSTICK_BRANCH=armband-workbench \
110                         YARDSTICK_CHANGE= \
111                         EXTRA_RPM_REPOS="armband,http://linux.enea.com/mos-repos/centos/mos9.0-centos7/armband/x86_64,10" \
112                         MIRROR_MOS_UBUNTU=linux.enea.com \
113                         $(EXTRA_PARAMS) \
114                         iso 2>&1 | tee ${root}/build.log
115