# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
+SHELL = /bin/bash
############################################################################
# BEGIN of variables to customize
#
-SHELL = /bin/bash
-
-include config.mk
+#Input args
+export UNIT_TEST = FALSE
+export INTERACTIVE = TRUE
+export ISOSRC = file:$(shell pwd)/fuel-6.0.1.iso
+export ISOCACHE = $(shell pwd)/$(shell basename $(ISOSRC))
+export PRODNO = "OPNFV_BGS"
+export REVSTATE = "P0000"
+export NEWISO = $(shell pwd)/release/opnfv-${REVSTATE}.iso
+
+# Note! Invoke with "make REVSTATE=RXXXX all" to make release build!
+# Invoke with ICOCACHE=/full/path/to/iso if cached ISO is in non-standard location.
-export BUILD_BASE = $(shell pwd)
+#Build variables
+export BUILD_BASE := $(shell pwd)
export DEB_DEST := $(BUILD_BASE)/release/packages/ubuntu/pool/main
+export UDEB_DEST := $(BUILD_BASE)/release/packages/ubuntu/pool/debian-installer
export PUPPET_DEST := $(BUILD_BASE)/release/puppet/modules
-
-ISOSRC = file:$(shell pwd)/fuel-6.0.1.iso
-ISOCACHE = $(shell pwd)/$(shell basename $(ISOSRC))
-PRODNO = "OPNFV_BGS"
-REVSTATE = "P0000"
-NEWISO = $(shell pwd)/release/opnfv-${REVSTATE}.iso
-DOCKERIMG = opnfv.org/ubuntu-builder:14.04
-# Note! Invoke with "make REVSTATE=RXXXX iso" to make release build!
-# Invoke with ICOCACHE=/full/path/to/iso if cached ISO is in non-standard location.
-#
-# END of variables to customize
-#############################################################################
+export CACHE_DIR := $(BUILD_BASE)/cache
+export VERSION_FILE := $(BUILD_BASE)/.versions
+export DOCKERIMG = opnfv.org/ubuntu-builder:14.04
export TOPDIR := $(shell pwd)
-ORIGDIR := $(TOPDIR)/origiso
+
+#Build subclasses
SUBDIRS := f_isoroot
SUBDIRS += f_opnfv_puppet
SUBDIRS += f_l23network
SUBDIRS += f_resolvconf
SUBDIRS += f_ntp
-#SUBDIRS += f_gif
-#SUBDIRS += f_libnss
-#SUBDIRS += f_libpcs
-#SUBDIRS += f_libxt
-#SUBDIRS += f_comm_java
-#SUBDIRS += f_ca_cert
-#SUBDIRS += f_atk_wrap
-#SUBDIRS += f_jre_head
-#SUBDIRS += f_jre
-#SUBDIRS += f_java
+SUBDIRS += f_odl_docker
#SUBDIRS += f_odl
-
-
# f_example is only an example of how to generate a .deb package and
# should not be enabled in official builds.
#SUBDIRS += f_example
+ORIGDIR := $(TOPDIR)/origiso
+#
+# END of variables to customize
+#############################################################################
+
SUBCLEAN = $(addsuffix .clean,$(SUBDIRS))
+
.PHONY: all
all:
@docker version >/dev/null 2>&1 || (echo 'No Docker installation available'; exit 1)
+ @echo "Versions of cached build results built by" $(shell hostname) "at" $(shell date -u) > $(VERSION_FILE)
+ @echo "cache.mk" $(shell md5sum $(BUILD_BASE)/cache.mk | cut -f1 -d " ") >> $(VERSION_FILE)
+ @echo "config.mk" $(shell md5sum $(BUILD_BASE)/config.mk | cut -f1 -d " ") >> $(VERSION_FILE)
+ $(MAKE) -C f_odl_docker -f Makefile all
@make -C docker
@docker/runcontext $(DOCKERIMG) $(MAKE) $(MAKEFLAGS) iso
+############################################################################
+# BEGIN of Include definitions
+#
+include config.mk
+include cache.mk
+#
+# END Include definitions
+#############################################################################
+
$(ISOCACHE):
# Clone Fuel to non-persistent location and build
cd /tmp && git clone $(FUEL_MAIN_REPO)
cd /tmp/fuel-main && git checkout $(FUEL_MAIN_TAG)
+ @echo "fuel" `git -C /tmp/fuel-main show | grep commit | head -1 | cut -d " " -f2` >> $(VERSION_FILE)
# Setup cgroups for docker-in-docker
sudo /root/enable_dockerx2
# Patch to fix race condition when doing "Docker-in-Docker" build
.PHONY: $(SUBDIRS)
$(SUBDIRS):
- @mkdir -p release/packages/ubuntu/pool/main release/puppet/modules release/isoroot
+ @mkdir -p release/packages/ubuntu/pool/main release/packages/ubuntu/pool/debian-installer release/puppet/modules release/isoroot
$(MAKE) -C $@ -f Makefile release
.PHONY: patch-packages
.PHONY: prepare
prepare:
- $(MAKE) -C opendaylight -f Makefile setup
+ #$(MAKE) -C opendaylight -f Makefile setup
.PHONY: odl
odl:
- $(MAKE) -C opendaylight -f Makefile
+ #$(MAKE) -C opendaylight -f Makefile
.PHONY: build-clean $(SUBCLEAN)
build-clean: $(SUBCLEAN)
@rm -f $(NEWISO)
.PHONY: clean $(SUBCLEAN)
-clean: prepare $(SUBCLEAN)
+clean: clean-cache prepare $(SUBCLEAN)
$(MAKE) -C patch-packages -f Makefile clean
- $(MAKE) -C opendaylight -f Makefile clean
+ #$(MAKE) -C opendaylight -f Makefile clean
@rm -f *.iso
@rm -Rf release
@rm -Rf newiso
@rm -f f_odl
@rm -f $(NEWISO)
+ @rm -f $(BUILD_BASE)/.versions
$(SUBCLEAN): %.clean:
$(MAKE) -C $* -f Makefile clean