-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
82 lines (59 loc) · 2.66 KB
/
Copy pathMakefile
File metadata and controls
82 lines (59 loc) · 2.66 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
CC ?= gcc
CFLAGS ?= -Wall -Wextra -O2 -Ihelpers
BIN_DIR := bin
HELPERS := fenix-memfd-exec fenix-memfd-script-exec fenix-memfd-self-reexec \
fenix-memfd-so-load fenix-shm-exec fenix-shm-so-load fenix-stdin-memexec \
fenix-pipe-exec fenix-proc-fd-exec fenix-lolbin-fd-exec \
fenix-deleted-exec fenix-init-module fenix-finit-module fenix-embedded-init-module
.PHONY: all helpers payloads clean
all: payloads helpers
# Payloads first: fenix-embedded-init-module needs hello_lkm.ko → hello_lkm_embed.h
helpers: $(BIN_DIR) $(addprefix $(BIN_DIR)/,$(HELPERS))
payloads/hello_lkm/hello_lkm.ko:
$(MAKE) -C payloads/hello_lkm hello_lkm.ko
$(BIN_DIR):
mkdir -p $(BIN_DIR)
$(BIN_DIR)/fenix-memfd-exec: helpers/fenix-memfd-exec.c | $(BIN_DIR)
$(CC) $(CFLAGS) -o $@ $<
$(BIN_DIR)/fenix-memfd-script-exec: helpers/fenix-memfd-script-exec.c | $(BIN_DIR)
$(CC) $(CFLAGS) -o $@ $<
$(BIN_DIR)/fenix-memfd-self-reexec: helpers/fenix-memfd-self-reexec.c | $(BIN_DIR)
$(CC) $(CFLAGS) -o $@ $<
$(BIN_DIR)/fenix-memfd-so-load: helpers/fenix-memfd-so-load.c | $(BIN_DIR)
$(CC) $(CFLAGS) -ldl -o $@ $<
$(BIN_DIR)/fenix-shm-exec: helpers/fenix-shm-exec.c | $(BIN_DIR)
$(CC) $(CFLAGS) -o $@ $<
$(BIN_DIR)/fenix-shm-so-load: helpers/fenix-shm-so-load.c | $(BIN_DIR)
$(CC) $(CFLAGS) -ldl -o $@ $<
$(BIN_DIR)/fenix-stdin-memexec: helpers/fenix-stdin-memexec.c | $(BIN_DIR)
$(CC) $(CFLAGS) -o $@ $<
$(BIN_DIR)/fenix-pipe-exec: helpers/fenix-pipe-exec.c | $(BIN_DIR)
$(CC) $(CFLAGS) -o $@ $<
$(BIN_DIR)/fenix-proc-fd-exec: helpers/fenix-proc-fd-exec.c | $(BIN_DIR)
$(CC) $(CFLAGS) -o $@ $<
$(BIN_DIR)/fenix-lolbin-fd-exec: helpers/fenix-lolbin-fd-exec.c | $(BIN_DIR)
$(CC) $(CFLAGS) -o $@ $<
$(BIN_DIR)/fenix-deleted-exec: helpers/fenix-deleted-exec.c | $(BIN_DIR)
$(CC) $(CFLAGS) -o $@ $<
$(BIN_DIR)/fenix-init-module: helpers/fenix-init-module.c | $(BIN_DIR)
$(CC) $(CFLAGS) -o $@ $<
$(BIN_DIR)/fenix-finit-module: helpers/fenix-finit-module.c | $(BIN_DIR)
$(CC) $(CFLAGS) -o $@ $<
payloads/hello_lkm/hello_lkm_embed.h: payloads/hello_lkm/hello_lkm.ko
$(MAKE) -C payloads/hello_lkm hello_lkm_embed.h
$(BIN_DIR)/fenix-embedded-init-module: helpers/fenix-embedded-init-module.c payloads/hello_lkm/hello_lkm_embed.h | $(BIN_DIR)
$(CC) $(CFLAGS) -Ipayloads/hello_lkm -o $@ helpers/fenix-embedded-init-module.c
payloads:
$(MAKE) -C payloads/hello_elf
$(MAKE) -C payloads/sleep_elf
$(MAKE) -C payloads/hello_lkm
$(MAKE) -C payloads/hello_lkm embed
$(MAKE) -C payloads/hello_so
$(MAKE) -C payloads/staged
clean:
rm -rf $(BIN_DIR)
$(MAKE) -C payloads/hello_elf clean
$(MAKE) -C payloads/sleep_elf clean
$(MAKE) -C payloads/hello_lkm clean
$(MAKE) -C payloads/hello_so clean
$(MAKE) -C payloads/staged clean