Makefile - scc - simple c99 compiler
HTML git clone git://git.simple-cc.org/scc
DIR Log
DIR Files
DIR Refs
DIR README
DIR LICENSE
---
Makefile (1580B)
---
1 .POSIX:
2
3 DIRS =\
4 amd64-sysv\
5 arm64-sysv\
6 i386-sysv\
7 riscv64-sysv\
8 qbe\
9 qbe_amd64-sysv\
10 qbe_arm64-sysv\
11 qbe_riscv64-sysv\
12 z80-scc\
13
14 PROJECTDIR = ../../../..
15 include $(PROJECTDIR)/scripts/rules.mk
16
17 MORE_LDLIBS = -lscc
18
19 QBE_OBJS =\
20 code.o\
21 main.o\
22 node.o\
23 parser.o\
24 sethi.o\
25 swtch.o\
26 symbol.o\
27
28 OBJS =\
29 cfg.o\
30 $(QBE_OBJS)\
31
32 QBE_AMD64_SYSV_OBJS=\
33 qbe_amd64-sysv/builtin.o\
34 $(QBE_OBJS)\
35
36 QBE_ARM64_SYSV_OBJS=\
37 qbe_arm64-sysv/builtin.o\
38 $(QBE_OBJS)\
39
40 QBE_RISCV64_SYSV_OBJS=\
41 qbe_riscv64-sysv/builtin.o\
42 $(QBE_OBJS)\
43
44 Z80_SCC_OBJS =\
45 z80-scc/builtin.o\
46 $(OBJS) \
47
48 TARGET =\
49 cc2-qbe_amd64-sysv\
50 cc2-qbe_arm64-sysv\
51 cc2-qbe_riscv64-sysv\
52 cc2-z80-scc\
53
54 all:
55 +@$(MAKE) $(DIRS)
56 +@$(MAKE) $(TARGET)
57
58 main.o: error.h
59 qbe_riscv64-sysv qbe_amd64-sysv qbe_arm64-sysv: qbe
60 qbe_amd64-sysv: amd64-sysv
61 qbe_arm64-sysv: arm64-sysv
62 qbe_riscv64-sysv: riscv64-sysv
63
64 error.h: cc2.h
65 trap 'rm -f $$$$.h' EXIT;\
66 trap 'exit $?' HUP INT TERM;\
67 awk -f generror.awk cc2.h > $$$$.h && mv $$$$.h $@
68
69 cc2-qbe_amd64-sysv: $(LIBSCC) $(QBE_AMD64_SYSV_OBJS)
70 $(CC) $(PROJ_LDFLAGS) $(QBE_AMD64_SYSV_OBJS) $(PROJ_LDLIBS) -o $@
71 cp $@ $(LIBEXEC)/scc
72
73 cc2-qbe_arm64-sysv: $(LIBSCC) $(QBE_ARM64_SYSV_OBJS)
74 $(CC) $(PROJ_LDFLAGS) $(QBE_ARM64_SYSV_OBJS) $(PROJ_LDLIBS) -o $@
75 cp $@ $(LIBEXEC)/scc
76
77 cc2-qbe_riscv64-sysv: $(LIBSCC) $(QBE_RISCV64_SYSV_OBJS)
78 $(CC) $(PROJ_LDFLAGS) $(QBE_RISCV64_SYSV_OBJS) $(PROJ_LDLIBS) -o $@
79 cp $@ $(LIBEXEC)/scc
80
81 cc2-z80-scc: $(LIBSCC) $(Z80_SCC_OBJS)
82 $(CC) $(PROJ_LDFLAGS) $(Z80_SCC_OBJS) $(PROJ_LDLIBS) -o $@
83 cp $@ $(LIBEXEC)/scc
84
85 clean:
86 rm -f error.h