+#######################
+# PYTHON PEP8 CHECK #
+#######################
+
+.PHONY: python-pep8-check
+python-pep8-check:
+ pep8 ../lib/python
+ pep8 ../tests
+
+###############
+# TACKER #
+###############
+
+.PHONY: tacker-clean
+
+tacker-clean:
+ rm -rf openstack-tacker-2016.2
+ rm -f openstack-tacker.tar.gz
+
+openstack-tacker.tar.gz:
+ @echo "Preparing the Tacker RPM prerequisites"
+ 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 noarch/openstack-tacker-2016.2-1.git$(TACKER_COMMIT).noarch.rpm
+
+noarch/openstack-tacker-2016.2-1.git$(TACKER_COMMIT).noarch.rpm:
+ @echo "Building the Tacker RPM"
+ 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-2016.2
+ rm -f python-tackerclient.tar.gz
+
+python-tackerclient.tar.gz:
+ @echo "Preparing the TackerClient RPM prerequisites"
+ 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 noarch/python-tackerclient-2016.2-1.git$(TACKERCLIENT_COMMIT).noarch.rpm
+
+noarch/python-tackerclient-2016.2-1.git$(TACKERCLIENT_COMMIT).noarch.rpm:
+ @echo "Building the TackerClient RPM"
+ 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 $(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 noarch/openstack-congress-2016.1-1.git$(CONGRESS_COMMIT).noarch.rpm
+
+
+noarch/openstack-congress-2016.1-1.git$(CONGRESS_COMMIT).noarch.rpm:
+ @echo "Building the Congress RPM"
+ 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)'
+
+##################
+# NETWORKING-VPP #
+##################
+
+.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
+
+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)
+
+.PHONY: networking-vpp-rpm
+networking-vpp-rpm: noarch/networking-vpp-$(NETVPP_VERS)-1.git$(NETVPP_COMMIT)$(RPM_DIST).noarch.rpm
+
+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)'