forked from joelvaneenwyk/language84
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
62 lines (36 loc) · 1.15 KB
/
Copy pathMakefile
File metadata and controls
62 lines (36 loc) · 1.15 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
### Special variables and targets
.DEFAULT_GOAL = all
.PHONY: all clean
### Configuration variables
PROGRAMS = 84
LDFLAGS = -static -nostdlib -Wl,--build-id=none
CFLAGS_COMMON = -I. -std=gnu11 -fno-stack-protector
CFLAGS_SUPPORT_OPTIM = -O2
CFLAGS_SUPPORT_WARN = -Wall
CFLAGS_SUPPORT = $(CFLAGS_COMMON) $(CFLAGS_SUPPORT_OPTIM) $(CFLAGS_SUPPORT_WARN)
CFLAGS_GENERATED_OPTIM = -O0
CFLAGS_GENERATED_WARN = -Wno-unused-variable -Wno-unused-function -Wno-unused-value
CFLAGS_GENERATED = $(CFLAGS_COMMON) $(CFLAGS_GENERATED_OPTIM) $(CFLAGS_GENERATED_WARN)
Q = @
E = @ echo
### Local customization hook
-include local.make
### Default goal
all: 84_stable $(PROGRAMS)
### Clean
clean:
$(E) CLEAN
$(Q) rm -f support.o 84_stable
$(Q) rm -f $(PROGRAMS) $(PROGRAMS:%=%.c) $(PROGRAMS:%=%.c.d)
### Compile and link
$(PROGRAMS) 84_stable: %: %.c support.o
$(E) "CC $@"
$(Q) $(CC) $(CFLAGS_GENERATED) $(LDFLAGS) -o $@ $^
support.o: support.c support.h
$(E) "CC $@"
$(Q) $(CC) -c $(CFLAGS_SUPPORT) $<
$(PROGRAMS:%=%.c): 84_stable
$(E) "84 $@"
$(Q) ./84_stable $(@:%.c=%)
### Dependency files generated by the Language 84 compiler
-include $(PROGRAMS:%=%.c.d)