-
Notifications
You must be signed in to change notification settings - Fork 78
Expand file tree
/
Copy pathMakefile
More file actions
82 lines (67 loc) · 2.91 KB
/
Makefile
File metadata and controls
82 lines (67 loc) · 2.91 KB
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
OUT_DIR := out
API_CLIENT_DIR := out/gen/serverapi
API_CLIENT_GO_PACKAGE_NAME := serverapi
CHV_API_DIR := out/gen/chvapi
CHV_API_GO_PACKAGE_NAME := chvapi
RESTSERVER_BIN := ${OUT_DIR}/arrakis-restserver
CLIENT_BIN := ${OUT_DIR}/arrakis-client
GUESTINIT_BIN := ${OUT_DIR}/arrakis-guestinit
ROOTFSMAKER_BIN := ${OUT_DIR}/arrakis-rootfsmaker
CMDSERVER_BIN := ${OUT_DIR}/arrakis-cmdserver
CMDCLIENT_BIN := ${OUT_DIR}/arrakis-cmdclient
GUESTROOTFS_BIN := ${OUT_DIR}/arrakis-guestrootfs-ext4.img
VSOCKSERVER_BIN := ${OUT_DIR}/arrakis-vsockserver
VSOCKCLIENT_BIN := ${OUT_DIR}/arrakis-vsockclient
INITRAMFS_SRC_DIR := initramfs
.PHONY: all clean serverapi chvapi initramfs restserver client guestinit rootfsmaker cmdserver guestrootfs guest vsockclient vsockserver
clean:
rm -rf ${OUT_DIR}
all: serverapi chvapi restserver client guestinit rootfsmaker cmdserver guestrootfs guest vsockclient vsockserver
serverapi: ${OUT_DIR}/arrakis-serverapi.stamp
${OUT_DIR}/arrakis-serverapi.stamp: ./api/server-api.yaml
mkdir -p ${API_CLIENT_DIR}
openapi-generator-cli generate -i $< -g go -o ${API_CLIENT_DIR} --package-name ${API_CLIENT_GO_PACKAGE_NAME} \
--git-user-id abshkbh \
--git-repo-id arrakis/${API_CLIENT_DIR} \
--additional-properties=withGoMod=false \
--global-property models,supportingFiles,apis,apiTests=false
rm -rf openapitools.json
chvapi: ${OUT_DIR}/arrakis-chvapi.stamp
${OUT_DIR}/arrakis-chvapi.stamp: api/chv-api.yaml
mkdir -p ${API_CLIENT_DIR}
openapi-generator-cli generate -i ./api/chv-api.yaml -g go -o ${CHV_API_DIR} --package-name ${CHV_API_GO_PACKAGE_NAME} \
--git-user-id abshkbh \
--git-repo-id arrakis/${CHV_API_DIR} \
--additional-properties=withGoMod=false \
--global-property models,supportingFiles,apis,apiTests=false
rm -rf openapitools.json
restserver: serverapi chvapi
mkdir -p ${OUT_DIR}
CGO_ENABLED=0 go build -o ${RESTSERVER_BIN} ./cmd/restserver
client: serverapi
mkdir -p ${OUT_DIR}
CGO_ENABLED=0 go build -o ${CLIENT_BIN} ./cmd/client
# Build the guest init binary explicitly statically if "os" or "net" are used by
# using the CGO_ENABLED=0 flag.
guestinit:
mkdir -p ${OUT_DIR}
CGO_ENABLED=0 go build -o ${GUESTINIT_BIN} ./cmd/guestinit
rootfsmaker:
mkdir -p ${OUT_DIR}
CGO_ENABLED=0 go build -o ${ROOTFSMAKER_BIN} ./cmd/rootfsmaker
cmdserver:
mkdir -p ${OUT_DIR}
CGO_ENABLED=0 go build -o ${CMDSERVER_BIN} ./cmd/cmdserver
guestrootfs: rootfsmaker initramfs cmdserver vsockserver guestinit
mkdir -p ${OUT_DIR}
sudo ${OUT_DIR}/arrakis-rootfsmaker create -o ${GUESTROOTFS_BIN} -d ./resources/scripts/rootfs/Dockerfile
guest: guestinit rootfsmaker cmdserver guestrootfs
vsockclient:
mkdir -p ${OUT_DIR}
go build -o ${VSOCKCLIENT_BIN} ./cmd/vsockclient
vsockserver:
mkdir -p ${OUT_DIR}
CGO_ENABLED=0 go build -o ${VSOCKSERVER_BIN} ./cmd/vsockserver
initramfs: ${OUT_DIR}/initramfs.stamp
${OUT_DIR}/initramfs.stamp: ${INITRAMFS_SRC_DIR}/create-initramfs.sh
${INITRAMFS_SRC_DIR}/create-initramfs.sh