X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=build%2FMakefile;h=ff615a473e6c98650eb3a68fca2e0261a3a92aea;hb=159f6368364792b8cb9e960e7cbb73ea1784dc15;hp=b002ed6e164d8406666eb8d8934e1c56a17b9370;hpb=a80018e923eec6e92e841692bc9a42d9740b6d31;p=apex.git diff --git a/build/Makefile b/build/Makefile index b002ed6e..ff615a47 100644 --- a/build/Makefile +++ b/build/Makefile @@ -12,35 +12,55 @@ export CENTDNLD = http://mirrors.cat.pdx.edu/centos/7.2.1511/isos/x86_64/CentOS- export CENTISO = $(shell pwd)/$(shell basename $(CENTDNLD)) export RELEASE = "0" export ISO = $(shell pwd)/release/OPNFV-CentOS-7-x86_64-${RELEASE}.iso + +export RPM_DIST = $(shell rpm -E %dist) + +export TACKER_REPO := $(shell awk -F\= '/^tacker_repo/ {print $$2}' variables.sh ) +export TACKER_BRANCH := $(shell awk -F\= '/^tacker_branch/ {print $$2}' variables.sh ) +export TACKER_COMMIT := $(shell git ls-remote $(TACKER_REPO) $(TACKER_BRANCH) | awk '{print substr($$1,1,7)}') + +export TACKERCLIENT_REPO := $(shell awk -F\= '/^tackerclient_repo/ {print $$2}' variables.sh ) +export TACKERCLIENT_BRANCH := $(shell awk -F\= '/^tackerclient_branch/ {print $$2}' variables.sh ) +export TACKERCLIENT_COMMIT := $(shell git ls-remote $(TACKERCLIENT_REPO) $(TACKERCLIENT_BRANCH) | awk '{print substr($$1,1,7)}') + +export CONGRESS_REPO := $(shell awk -F\= '/^congress_repo/ {print $$2}' variables.sh ) +export CONGRESS_BRANCH := $(shell awk -F\= '/^congress_branch/ {print $$2}' variables.sh ) +export CONGRESS_COMMIT := $(shell git ls-remote $(CONGRESS_REPO) $(CONGRESS_BRANCH) | awk '{print substr($$1,1,7)}') + +export NETVPP_VERS := $(shell grep Version $(shell pwd)/rpm_specs/networking-vpp.spec | head -n 1 | awk '{ print $$2 }') +export NETVPP_REPO := $(shell awk -F\= '/^netvpp_repo/ {print $$2}' variables.sh ) +export NETVPP_BRANCH := $(shell awk -F\= '/^netvpp_branch/ {print $$2}' variables.sh ) +export NETVPP_COMMIT := $(shell git ls-remote $(NETVPP_REPO) $(NETVPP_BRANCH) | awk '{print substr($$1,1,7)}') + export RPMVERS = $(shell grep Version $(shell pwd)/rpm_specs/opnfv-apex.spec | head -n 1 | awk '{ print $$2 }') export RPMCOM = $(shell pwd)/noarch/opnfv-apex-common-$(RPMVERS)-$(shell echo ${RELEASE} | tr -d '_-').noarch.rpm export RPMUDR = $(shell pwd)/noarch/opnfv-apex-undercloud-$(RPMVERS)-$(shell echo ${RELEASE} | tr -d '_-').noarch.rpm export RPMODL = $(shell pwd)/noarch/opnfv-apex-$(RPMVERS)-$(shell echo ${RELEASE} | tr -d '_-').noarch.rpm export RPMONO = $(shell pwd)/noarch/opnfv-apex-onos-$(RPMVERS)-$(shell echo ${RELEASE} | tr -d '_-').noarch.rpm -export RPMSFC = $(shell pwd)/noarch/opnfv-apex-opendaylight-sfc-$(RPMVERS)-$(shell echo ${RELEASE} | tr -d '_-').noarch.rpm - .PHONY: all all: iso .PHONY: clean -clean: images-clean rpms-clean iso-clean tacker-clean congress-clean vpp-clean +clean: images-clean rpms-clean iso-clean tacker-clean tackerclient-clean congress-clean networking-vpp-clean .PHONY: images -images: undercloud overcloud-full overcloud-opendaylight overcloud-onos overcloud-opendaylight-sfc +images: undercloud overcloud-full overcloud-opendaylight overcloud-onos .PHONY: images-clean -images-clean: undercloud-clean overcloud-full-clean overcloud-opendaylight-clean overcloud-onos-clean overcloud-opendaylight-sfc-clean - @rm -rf images/ +images-clean: undercloud-clean overcloud-full-clean overcloud-opendaylight-clean overcloud-onos-clean + rm -rf images/ .PHONY: rpms -rpms: common-rpm undercloud-rpm opendaylight-rpm onos-rpm opendaylight-sfc-rpm +rpms: common-rpm undercloud-rpm opendaylight-rpm onos-rpm .PHONY: rpms-check -rpms-check: common-rpm-check undercloud-rpm-check opendaylight-rpm-check onos-rpm-check opendaylight-sfc-rpm-check +rpms-check: common-rpm-check undercloud-rpm-check opendaylight-rpm-check onos-rpm-check .PHONY: rpms-clean -rpms-clean: common-rpm-clean undercloud-rpm-clean opendaylight-rpm-clean onos-rpm-clean opendaylight-sfc-rpm-clean +rpms-clean: common-rpm-clean undercloud-rpm-clean opendaylight-rpm-clean onos-rpm-clean + rm -rf noarch + rm -rf BUILDROOT opnfv-apex-common.tar.gz: pushd ../ && git archive --format=tar.gz --prefix=opnfv-apex-common-$(RPMVERS)/ HEAD > build/opnfv-apex-common.tar.gz @@ -57,6 +77,12 @@ $(RPMCOM): # build the common RPM rpmbuild --clean -ba rpm_specs/opnfv-apex-common.spec -D '_topdir %(echo `pwd`)' -D '_builddir %(echo `pwd`)' -D '_sourcedir %(echo `pwd`)' -D '_rpmdir %(echo `pwd`)' -D '_specdir %(echo `pwd`)' -D '_srcrpmdir %(echo `pwd`)' -D "release $(shell echo $(RELEASE) | tr -d '_-')" +.PHONY: common-rpm-clean +common-rpm-clean: + rm -rf opnfv-apex-common-$(RPMVERS) + rm -rf opnfv-apex-common.tar.gz + + ################## # PYTHON TESTS # ################## @@ -88,120 +114,87 @@ python-pep8-check: .PHONY: tacker-clean tacker-clean: - @rm -rf openstack-tacker-2015.2 - @rm -f openstack-tacker.tar.gz + rm -rf openstack-tacker-2016.2 + rm -f openstack-tacker.tar.gz openstack-tacker.tar.gz: @echo "Preparing the Tacker RPM prerequisites" - git clone http://github.com/trozet/tacker -b SFC_colorado openstack-tacker-2015.2 - tar czf openstack-tacker.tar.gz openstack-tacker-2015.2 + git clone $(TACKER_REPO) -b $(TACKER_BRANCH) openstack-tacker-2016.2 + tar czf openstack-tacker.tar.gz openstack-tacker-2016.2 .PHONY: tacker-rpm -tacker-rpm: openstack-tacker.tar.gz openstack-tacker-2015.2-1.trozet.noarch.rpm +tacker-rpm: openstack-tacker.tar.gz noarch/openstack-tacker-2016.2-1.git$(TACKER_COMMIT).noarch.rpm -openstack-tacker-2015.2-1.trozet.noarch.rpm: +noarch/openstack-tacker-2016.2-1.git$(TACKER_COMMIT).noarch.rpm: @echo "Building the Tacker RPM" - rpmbuild --clean -bb --target noarch rpm_specs/openstack-tacker.spec -D '_topdir %(echo `pwd`)' -D '_builddir %(echo `pwd`)' -D '_sourcedir %(echo `pwd`)' -D '_rpmdir %(echo `pwd`)' -D '_specdir %(echo `pwd`)' -D '_srcrpmdir %(echo `pwd`)' + rpmbuild --clean -ba --target noarch rpm_specs/openstack-tacker.spec -D '_topdir %(echo `pwd`)' -D '_builddir %(echo `pwd`)' -D '_sourcedir %(echo `pwd`)' -D '_rpmdir %(echo `pwd`)' -D '_specdir %(echo `pwd`)' -D '_srcrpmdir %(echo `pwd`)' -D 'git .git$(TACKER_COMMIT)' ################# # TACKERCLIENT # ################# .PHONY: tackerclient-clean - tackerclient-clean: - @rm -rf python-tackerclient-2015.2 - @rm -f python-tackerclient.tar.gz + rm -rf python-tackerclient-2016.2 + rm -f python-tackerclient.tar.gz python-tackerclient.tar.gz: @echo "Preparing the TackerClient RPM prerequisites" - git clone http://github.com/trozet/python-tackerclient -b SFC_refactor python-tackerclient-2015.2 - tar czf python-tackerclient.tar.gz python-tackerclient-2015.2 + git clone $(TACKERCLIENT_REPO) -b $(TACKERCLIENT_BRANCH) python-tackerclient-2016.2 + tar czf python-tackerclient.tar.gz python-tackerclient-2016.2 .PHONY: tackerclient-rpm -tackerclient-rpm: python-tackerclient.tar.gz python-tackerclient-2015.2-1.trozet.noarch.rpm +tackerclient-rpm: python-tackerclient.tar.gz noarch/python-tackerclient-2016.2-1.git$(TACKERCLIENT_COMMIT).noarch.rpm -python-tackerclient-2015.2-1.trozet.noarch.rpm: +noarch/python-tackerclient-2016.2-1.git$(TACKERCLIENT_COMMIT).noarch.rpm: @echo "Building the TackerClient RPM" - rpmbuild --clean -bb --target noarch rpm_specs/python-tackerclient.spec -D '_topdir %(echo `pwd`)' -D '_builddir %(echo `pwd`)' -D '_sourcedir %(echo `pwd`)' -D '_rpmdir %(echo `pwd`)' -D '_specdir %(echo `pwd`)' -D '_srcrpmdir %(echo `pwd`)' + rpmbuild --clean -ba --target noarch rpm_specs/python-tackerclient.spec -D '_topdir %(echo `pwd`)' -D '_builddir %(echo `pwd`)' -D '_sourcedir %(echo `pwd`)' -D '_rpmdir %(echo `pwd`)' -D '_specdir %(echo `pwd`)' -D '_srcrpmdir %(echo `pwd`)' -D 'git .git$(TACKERCLIENT_COMMIT)' ############### # CONGRESS # ############### .PHONY: congress-clean - congress-clean: @rm -rf openstack-congress-2016.1 @rm -f openstack-congress.tar.gz openstack-congress.tar.gz: @echo "Preparing the Congress RPM prerequisites" - git clone http://github.com/openstack/congress -b stable/mitaka openstack-congress-2016.1 + git clone $(CONGRESS_REPO) -b $(CONGRESS_BRANCH) openstack-congress-2016.1 cd openstack-congress-2016.1 && curl -O https://radez.fedorapeople.org/openstack-congress.service tar czf openstack-congress.tar.gz openstack-congress-2016.1 .PHONY: congress-rpm -congress-rpm: openstack-congress.tar.gz openstack-congress-2016.1-1.noarch.rpm +congress-rpm: openstack-congress.tar.gz noarch/openstack-congress-2016.1-1.git$(CONGRESS_COMMIT).noarch.rpm -openstack-congress-2016.1-1.noarch.rpm: + +noarch/openstack-congress-2016.1-1.git$(CONGRESS_COMMIT).noarch.rpm: @echo "Building the Congress RPM" - rpmbuild --clean -bb --target noarch rpm_specs/openstack-congress.spec -D '_topdir %(echo `pwd`)' -D '_builddir %(echo `pwd`)' -D '_sourcedir %(echo `pwd`)' -D '_rpmdir %(echo `pwd`)' -D '_specdir %(echo `pwd`)' -D '_srcrpmdir %(echo `pwd`)' + rpmbuild --clean -ba --target noarch rpm_specs/openstack-congress.spec -D '_topdir %(echo `pwd`)' -D '_builddir %(echo `pwd`)' -D '_sourcedir %(echo `pwd`)' -D '_rpmdir %(echo `pwd`)' -D '_specdir %(echo `pwd`)' -D '_srcrpmdir %(echo `pwd`)' -D 'git .git$(CONGRESS_COMMIT)' -############### -# VPP # -############### +################## +# NETWORKING-VPP # +################## -VPP_DIR = vpp -MAVEN = apache-maven-3.3.9 -MAVEN_FILE = $(MAVEN)-bin.tar.gz - -.PHONY: vpp-clean -vpp-clean: - @rm -f vpp-bin.tar.gz - @rm -rf vpp-bin vpp - @rm -rf honeycomb $(MAVEN) $(MAVEN_FILE) honeycomb-1.0.0-99.noarch.rpm - @rm -rf networking-vpp networking-vpp.noarch.rpm - -.PHONY: vpp-build -vpp-build: vpp-bin.tar.gz - -vpp-bin.tar.gz: vpp honeycomb $(MAVEN) - $(MAKE) -C $(VPP_DIR) UNATTENDED=yes install-dep bootstrap build pkg-rpm - $(MAKE) -C $(VPP_DIR)/build-root PLATFORM=vpp TAG=vpp_debug vpp-api-install - pushd vpp/vpp-api/python && python setup.py bdist - pushd vpp/build-root/build-vpp-native/vpp-api/java/ && ../../../../../$(MAVEN)/bin/mvn install:install-file -Dfile=jvpp-registry-16.12.jar -DgroupId=io.fd.vpp -DartifactId=jvpp-registry -Dversion=16.12-SNAPSHOT -Dpackaging=jar - pushd vpp/build-root/build-vpp-native/vpp-api/java/ && ../../../../../$(MAVEN)/bin/mvn install:install-file -Dfile=jvpp-core-16.12.jar -DgroupId=io.fd.vpp -DartifactId=jvpp-core -Dversion=16.12-SNAPSHOT -Dpackaging=jar - pushd honeycomb && ../$(MAVEN)/bin/mvn clean install -DskipTests - pushd honeycomb/packaging/rpm/ && BUILD_NUMBER=99 ./rpmbuild.sh - mkdir vpp-bin - mv vpp/build-root/*.rpm vpp-bin/ - mv honeycomb/packaging/rpm/RPMS/noarch/*.rpm . - mv vpp/vpp-api/python/dist/*.tar.gz vpp-bin/ - tar czf vpp-bin.tar.gz vpp-bin - -vpp: - git clone https://gerrit.fd.io/r/vpp - -honeycomb: - git clone https://gerrit.fd.io/r/p/honeycomb.git - -$(MAVEN): $(MAVEN_FILE) - tar zxvf apache-maven-3.3.9-bin.tar.gz - cp mvn_settings.xml $(MAVEN)/conf/settings.xml - -$(MAVEN_FILE): - wget http://www.webhostingjams.com/mirror/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz +.PHONY: networking-vpp-clean +networking-vpp-clean: + @rm -rf networking-vpp + @rm -rf networking-vpp-* + @rm -f networking-vpp.tar.gz + @rm -f networking-vpp-agent.service -.PHONY: networking-vpp-rpm -networking-vpp-rpm: networking-vpp.noarch.rpm +networking-vpp.tar.gz: + @echo "Preparing the networking-vpp RPM prerequisites" + git clone $(NETVPP_REPO) networking-vpp-$(NETVPP_VERS) + tar czf networking-vpp.tar.gz networking-vpp-$(NETVPP_VERS) -networking-vpp.noarch.rpm: networking-vpp - pushd networking-vpp && python setup.py bdist_rpm --binary-only - mv networking-vpp/dist/*.rpm networking-vpp.noarch.rpm +.PHONY: networking-vpp-rpm +networking-vpp-rpm: noarch/networking-vpp-$(NETVPP_VERS)-1.git$(NETVPP_COMMIT)$(RPM_DIST).noarch.rpm -networking-vpp: - git clone -b stable_vlan_rewrite https://github.com/fepan/networking-vpp.git +noarch/networking-vpp-$(NETVPP_VERS)-1.git$(NETVPP_COMMIT)$(RPM_DIST).noarch.rpm: networking-vpp.tar.gz + @echo "Building the Networking VPP RPM" + rpmbuild --clean -ba --target noarch rpm_specs/networking-vpp.spec -D '_topdir %(echo `pwd`)' -D '_builddir %(echo `pwd`)' -D '_sourcedir %(echo `pwd`)' -D '_rpmdir %(echo `pwd`)' -D '_specdir %(echo `pwd`)' -D '_srcrpmdir %(echo `pwd`)' -D 'git .git$(NETVPP_COMMIT)' ############### # UNDERCLOUD # @@ -209,7 +202,9 @@ networking-vpp: .PHONY: undercloud-clean undercloud-clean: - @rm -f images/undercloud.* + rm -f images/undercloud.* + rm -rf opnfv-tht.tar.gz + rm -rf opnfv-tht/ .PHONY: undercloud undercloud: images/undercloud.qcow2 @@ -236,19 +231,29 @@ $(RPMUDR): @echo "Building the Apex Undercloud RPM" rpmbuild --clean -ba rpm_specs/opnfv-apex-undercloud.spec -D '_topdir %(echo `pwd`)' -D '_builddir %(echo `pwd`)' -D '_sourcedir %(echo `pwd`)' -D '_rpmdir %(echo `pwd`)' -D '_specdir %(echo `pwd`)' -D '_srcrpmdir %(echo `pwd`)' -D "release $(shell echo $(RELEASE) | tr -d '_-')" +.PHONY: undercloud-rpm-clean +undercloud-rpm-clean: + rm -rf opnfv-apex-undercloud-$(RPMVERS) + rm -rf opnfv-apex-undercloud.tar.gz + + ############### # OVERCLOUD # ############### .PHONY: overcloud-full-clean overcloud-full-clean: - @rm -rf images/overcloud-full.d - @rm -f images/overcloud-full.* + rm -rf images/overcloud-full.d + rm -f images/overcloud-full.* + rm -rf opnfv-puppet-tripleo.tar.gz + rm -rf opnfv-puppet-tripleo/ + rm -rf os-net-config.tar.gz + rm -rf os-net-config/ .PHONY: overcloud-full overcloud-full: images/overcloud-full.qcow2 -images/overcloud-full.qcow2: tacker-rpm tackerclient-rpm congress-rpm networking-vpp-rpm +images/overcloud-full.qcow2: congress-rpm tacker-rpm networking-vpp-rpm @echo "Building the Apex Base Overcloud Image" @./overcloud-full.sh @@ -282,6 +287,12 @@ $(RPMODL): # build the overcloud RPM rpmbuild --clean -ba rpm_specs/opnfv-apex.spec -D '_topdir %(echo `pwd`)' -D '_builddir %(echo `pwd`)' -D '_sourcedir %(echo `pwd`)' -D '_rpmdir %(echo `pwd`)' -D '_specdir %(echo `pwd`)' -D '_srcrpmdir %(echo `pwd`)' -D "release $(shell echo $(RELEASE) | tr -d '_-')" +.PHONY: opendaylight-rpm-clean +opendaylight-rpm-clean: + rm -rf opnfv-apex-$(RPMVERS) + rm -rf opnfv-apex.tar.gz + + ############### # ONOS # ############### @@ -301,7 +312,9 @@ images/overcloud-full-onos.qcow2: images/overcloud-full.qcow2 .PHONY: onos-rpm-clean onos-rpm-clean: - @rpmbuild --clean rpm_specs/opnfv-apex-onos.spec -D "release $(shell echo $RELEASE | tr -d '_-')" + @#rpmbuild --clean rpm_specs/opnfv-apex-onos.spec -D "release $(shell echo $RELEASE | tr -d '_-')" + rm -rf opnfv-apex-onos-$(RPMVERS) + rm -rf opnfv-apex-onos.tar.gz opnfv-apex-onos.tar.gz: images/overcloud-full-onos.qcow2 tar -czf opnfv-apex-onos.tar.gz --xform="s:images/overcloud-full-onos.qcow2:opnfv-apex-onos-$(RPMVERS)/build/images/overcloud-full-onos.qcow2:" images/overcloud-full-onos.qcow2 @@ -318,35 +331,6 @@ $(RPMONO): # build the overcloud RPM rpmbuild --clean -ba rpm_specs/opnfv-apex-onos.spec -D '_topdir %(echo `pwd`)' -D '_builddir %(echo `pwd`)' -D '_sourcedir %(echo `pwd`)' -D '_rpmdir %(echo `pwd`)' -D '_specdir %(echo `pwd`)' -D '_srcrpmdir %(echo `pwd`)' -D "release $(shell echo $(RELEASE) | tr -d '_-')" -############### -# ODL-SFC # -############### - -.PHONY: overcloud-opendaylight-sfc-clean -overcloud-opendaylight-sfc-clean: - @rm -f images/overcloud-full-opendaylight-sfc.qcow2 - -.PHONY: overcloud-opendaylight-sfc -overcloud-opendaylight-sfc: images/overcloud-full-opendaylight-sfc.qcow2 - -images/overcloud-full-opendaylight-sfc.qcow2: images/overcloud-full-opendaylight.qcow2 - @echo "Building the Apex OpenDaylight Overcloud Image" - @./overcloud-opendaylight-sfc.sh - -opnfv-apex-opendaylight-sfc.tar.gz: images/overcloud-full-opendaylight-sfc.qcow2 - tar -czf opnfv-apex-opendaylight-sfc.tar.gz --xform="s:images/overcloud-full-opendaylight-sfc.qcow2:opnfv-apex-opendaylight-sfc-$(RPMVERS)/build/images/overcloud-full-opendaylight-sfc.qcow2:" images/overcloud-full-opendaylight-sfc.qcow2 - -.PHONY: opendaylight-sfc-rpm-check -opendaylight-sfc-rpm-check: opnfv-apex-opendaylight-sfc.tar.gz - rpmbuild --clean -bi -bl rpm_specs/opnfv-apex-opendaylight-sfc.spec -D '_topdir %(echo `pwd`)' -D '_builddir %(echo `pwd`)' -D '_sourcedir %(echo `pwd`)' -D '_rpmdir %(echo `pwd`)' -D '_specdir %(echo `pwd`)' -D '_srcrpmdir %(echo `pwd`)' -D "release $(shell echo $(RELEASE) | tr -d '_-')" - -.PHONY: opendaylight-sfc-rpm -opendaylight-sfc-rpm: opnfv-apex-opendaylight-sfc.tar.gz $(RPMSFC) - -$(RPMSFC): - @echo "Building the Apex OpenDaylight SFC RPM" - rpmbuild --clean -ba rpm_specs/opnfv-apex-opendaylight-sfc.spec -D '_topdir %(echo `pwd`)' -D '_builddir %(echo `pwd`)' -D '_sourcedir %(echo `pwd`)' -D '_rpmdir %(echo `pwd`)' -D '_specdir %(echo `pwd`)' -D '_srcrpmdir %(echo `pwd`)' -D "release $(shell echo $(RELEASE) | tr -d '_-')" - ############### # ISO # ############### @@ -385,7 +369,6 @@ iso: iso-clean images rpms $(CENTISO) @ln $(RPMUDR) centos/Packages @ln $(RPMODL) centos/Packages @ln $(RPMONO) centos/Packages - @ln $(RPMSFC) centos/Packages # add packages to the centos packages cd centos/Packages && yumdownloader openvswitch cd centos/Packages && yumdownloader openstack-tripleo