summaryrefslogtreecommitdiff
path: root/Makefile
blob: 8bcb8b34dfeb798d8893103fab926efeb209e351 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#!make

# if not set, set defaults 
#PARALLEL_BUILDS ?= 0
PACKER_LOG ?= 0
# always use DISPLAY :99
DISPLAY=:99
#export DISPLAY
# include .env vars
-include .env
# export all
export

VM_NAME_FILE := .vm_name
VM_NAME := $(shell cat $(VM_NAME_FILE))
SRC_QCOW2 := iso/$(VM_NAME)-build1.qcow2
DST_QCOW2 := iso/$(VM_NAME)-build2.qcow2
SRC_CHECKSUM := iso/$(VM_NAME)-build1.qcow2.checksum
DST_CHECKSUM := iso/$(VM_NAME)-build2.qcow2.checksum


.PHONY: help
help:
	@echo "make working:"
	@echo "- will use local.pkrvars.hcl if exists or vyos.pkrvars.hcl"
	@echo "- will load .env if file exists"

	@echo "make usage:"
	@echo "  make build - build image with 'packer build'"
	@echo "  make init  - init 'packer init'"
	@echo "  make upgrade  - init 'packer init -upgrade'"
	@echo "  make clean - remove output files"
	@echo "  make x11server - start Xvfb X11 server on DISPLAY=:99. Require apt install xvfb"





# ifneq ("$(wildcard .env)","") 
# include .env
# export
# endif


.PHONY: build1
build1:
# if exist local.pkrvars.hcl load it
ifneq ($(wildcard local.pkrvars.hcl),) 
	packer build \
	-var-file=local.pkrvars.hcl \
	-parallel-builds=0 \
	vyos-image1.pkr.hcl
else
	packer build \
	-var-file=vyos.pkrvars.hcl \
	-parallel-builds=0 \
	vyos-image1.pkr.hcl
endif


.PHONY: build2
build2:
	# create a copy of qcow2 - if build2 fail you can run again
	cp -f $(SRC_QCOW2) $(DST_QCOW2)
	cp -f $(SRC_CHECKSUM) $(DST_CHECKSUM)
	sed -i 's/$(VM_NAME)-build1.qcow2/$(VM_NAME)-build2.qcow2/' $(DST_CHECKSUM)
	cat iso/*.checksum > iso/SHA256SUM

# if exist local.pkrvars.hcl load it
ifneq ($(wildcard local.pkrvars.hcl),) 
	packer build \
	-var-file=local.pkrvars.hcl \
	-parallel-builds=0 \
	vyos-image2.pkr.hcl
else
	packer build \
	-var-file=vyos.pkrvars.hcl \
	-parallel-builds=0 \
	vyos-image2.pkr.hcl
endif

.PHONY: init
init:
	packer init vyos-image1.pkr.hcl
	packer init vyos-image2.pkr.hcl

.PHONY: upgrade
upgrade:
	packer init -upgrade vyos-image1.pkr.hcl
	packer init -upgrade vyos-image2.pkr.hcl

.PHONY: clean
clean:
	rm -rf output/*

# you need to run this first to use headless=false
.PHONY: x11server
x11server:
	Xvfb :99 -screen 0 1024x768x16 &
	export DISPLAY=:99