diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..012ccbb --- /dev/null +++ b/Makefile @@ -0,0 +1,38 @@ +# Simple Makefile to build packer templates +# TODO: +# - allow overriding packer variables +# - check for hypervisors (and invalidate targets) +# - provisioning logic +BUILDERS = qemu vmware-iso virtualbox-iso +TEMPLATES := $(basename $(filter-out base.json,$(wildcard *.json))) +TARGETS := $(foreach builder, $(BUILDERS), $(foreach template, $(TEMPLATES), $(builder)/$(template))) +PACKER_OPTS := -var-file=base.json + +.PHONY: all list clean +all: list + +$(TARGETS): +ifndef ROOTPW + $(error ROOTPW is not set) +endif + + $(info Building '$(@F)' with '$(@D)') + packer build -only=$(@D) \ + $(PACKER_OPTS) \ + -var='vm_name=$(@F)' \ + $(@F).json + +list: + $(info Possible targets:) + @(for F in $(TARGETS); do echo -e "\t$$F" ; done) + +clean: + $(foreach builder,$(BUILDERS),rm -rf $(builder)/;) + +# convenience do-nothing targets for auto-complete +qemu/ubuntu-16.04-amd64: +qemu/centos-7.3-x86_64: +virtualbox-iso/ubuntu-16.04-amd64: +virtualbox-iso/centos-7.3-x86_64: +vmware-iso/ubuntu-16.04-amd64: +vmware-iso/centos-7.3-x86_64: |