1 UBUNTU_BOXES= precise quantal raring saucy trusty utopic vivid
2 DEBIAN_BOXES= squeeze wheezy sid jessie
4 FEDORA_BOXES= rawhide 23 22 21 20 19
5 TODAY=$(shell date -u +"%Y-%m-%d")
7 # Replace i686 with i386 and x86_64 with amd64
8 ARCH=$(shell uname -m | sed -e "s/68/38/" | sed -e "s/x86_64/amd64/")
12 all: ubuntu debian fedora
14 ubuntu: $(UBUNTU_BOXES)
15 debian: $(DEBIAN_BOXES)
16 centos: $(CENTOS_BOXES)
17 fedora: $(FEDORA_BOXES)
19 # REFACTOR: Figure out how can we reduce duplicated code
20 $(UBUNTU_BOXES): CONTAINER = "vagrant-base-${@}-$(ARCH)"
21 $(UBUNTU_BOXES): PACKAGE = "output/${TODAY}/vagrant-lxc-${@}-$(ARCH).box"
23 @mkdir -p $$(dirname $(PACKAGE))
24 @sudo -E ./mk-debian.sh ubuntu $(@) $(ARCH) $(CONTAINER) $(PACKAGE)
25 @sudo chmod +rw $(PACKAGE)
26 @sudo chown ${USER}: $(PACKAGE)
27 $(DEBIAN_BOXES): CONTAINER = "vagrant-base-${@}-$(ARCH)"
28 $(DEBIAN_BOXES): PACKAGE = "output/${TODAY}/vagrant-lxc-${@}-$(ARCH).box"
30 @mkdir -p $$(dirname $(PACKAGE))
31 @sudo -E ./mk-debian.sh debian $(@) $(ARCH) $(CONTAINER) $(PACKAGE)
32 @sudo chmod +rw $(PACKAGE)
33 @sudo chown ${USER}: $(PACKAGE)
34 $(CENTOS_BOXES): CONTAINER = "vagrant-base-centos-${@}-$(ARCH)"
35 $(CENTOS_BOXES): PACKAGE = "output/${TODAY}/vagrant-lxc-centos-${@}-$(ARCH).box"
37 @mkdir -p $$(dirname $(PACKAGE))
38 @sudo -E ./mk-centos.sh $(@) $(ARCH) $(CONTAINER) $(PACKAGE)
39 @sudo chmod +rw $(PACKAGE)
40 @sudo chown ${USER}: $(PACKAGE)
41 $(FEDORA_BOXES): CONTAINER = "vagrant-base-fedora-${@}-$(ARCH)"
42 $(FEDORA_BOXES): PACKAGE = "output/${TODAY}/vagrant-lxc-fedora-${@}-$(ARCH).box"
44 @mkdir -p $$(dirname $(PACKAGE))
45 @sudo -E ./mk-fedora.sh $(@) $(ARCH) $(CONTAINER) $(PACKAGE)
46 @sudo chmod +rw $(PACKAGE)
47 @sudo chown ${USER}: $(PACKAGE)
49 acceptance: CONTAINER = "vagrant-base-acceptance-$(ARCH)"
50 acceptance: PACKAGE = "output/${TODAY}/vagrant-lxc-acceptance-$(ARCH).box"
52 @mkdir -p $$(dirname $(PACKAGE))
53 @PUPPET=1 CHEF=1 sudo -E ./mk-debian.sh ubuntu precise $(ARCH) $(CONTAINER) $(PACKAGE)
54 @sudo chmod +rw $(PACKAGE)
55 @sudo chown ${USER}: $(PACKAGE)
58 @test -z '$(version)' && echo 'version parameter not provided to `make`!' && exit 1 || return 0
59 gh release create -d -a output/${TODAY} $(version)
61 git push && git push --tags
63 clean: ALL_BOXES = ${DEBIAN_BOXES} ${UBUNTU_BOXES} ${CENTOS_BOXES} ${FEDORA_BOXES} acceptance
65 @for r in $(ALL_BOXES); do \
66 sudo -E ./clean.sh $${r}\
67 vagrant-base-$${r}-$(ARCH) \
68 output/${TODAY}/vagrant-lxc-$${r}-$(ARCH).box; \