-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
53 lines (41 loc) · 1.12 KB
/
Makefile
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
PACKER_CACHE_DIR := $(builddir)/packer_cache
UNAME := $(shell uname)
OUTPUT_DIR := ./target/build
VM_NAME := alpine-base.raw
ifeq ($(UNAME), Linux)
accel=kvm
display="gtk"
headless="false"
endif
ifeq ($(UNAME), Darwin)
display="cocoa"
headless="false"
accel=hvf
endif
all: qemu
# use `@` to hide command
pre-build:
@task -t Taskfile.local.yml
build-qemu:
@packer build \
-var "accel=$(accel)" \
-var "display=$(display)" \
-var "headless=$(headless)" \
-force -only qemu.alpine-base .
qemu: pre-build build-qemu compress
build-vb:
@packer build \
-var "accel=$(accel)" \
-var "display=$(display)" \
-var "headless=$(headless)" \
-force -only virtualbox-iso.alpine-base .
virtualbox: pre-build build-vb extract convert compress clean
clean:
@rm -vf $(OUTPUT_DIR)/$(VM_NAME)-disk001.vmdk $(OUTPUT_DIR)/$(VM_NAME).ova
compress:
@pigz $(OUTPUT_DIR)/$(VM_NAME)
convert:
@qemu-img convert -f vmdk $(OUTPUT_DIR)/$(VM_NAME)-disk001.vmdk -O raw $(OUTPUT_DIR)/$(VM_NAME)
extract:
@tar -C $(OUTPUT_DIR) -xf $(OUTPUT_DIR)/$(VM_NAME).ova $(VM_NAME)-disk001.vmdk
.PHONY: qemu pre-build virtualbox extract convert clean compress