scc

A fork of https://git.simple-cc.org/scc/ for Qute

git clone https://git.8pit.net/scc.git

 1.POSIX:
 2
 3DIRS =\
 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
14PROJECTDIR = ../../../..
15include $(PROJECTDIR)/scripts/rules.mk
16
17MORE_LDLIBS = -lscc
18
19QBE_OBJS =\
20	code.o\
21	main.o\
22	node.o\
23	parser.o\
24	sethi.o\
25	swtch.o\
26	symbol.o\
27
28OBJS =\
29	cfg.o\
30	$(QBE_OBJS)\
31
32QBE_AMD64_SYSV_OBJS=\
33	qbe_amd64-sysv/builtin.o\
34	$(QBE_OBJS)\
35
36QBE_ARM64_SYSV_OBJS=\
37	qbe_arm64-sysv/builtin.o\
38	$(QBE_OBJS)\
39
40QBE_RISCV64_SYSV_OBJS=\
41	qbe_riscv64-sysv/builtin.o\
42	$(QBE_OBJS)\
43
44Z80_SCC_OBJS =\
45	z80-scc/builtin.o\
46	$(OBJS) \
47
48TARGET  =\
49	cc2-qbe_amd64-sysv\
50	cc2-qbe_arm64-sysv\
51	cc2-qbe_riscv64-sysv\
52	cc2-z80-scc\
53
54all:
55	+@$(MAKE) $(DIRS)
56	+@$(MAKE) $(TARGET)
57
58main.o: error.h
59qbe_riscv64-sysv qbe_amd64-sysv qbe_arm64-sysv: qbe
60qbe_amd64-sysv: amd64-sysv
61qbe_arm64-sysv: arm64-sysv
62qbe_riscv64-sysv: riscv64-sysv
63
64error.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
69cc2-qbe_amd64-sysv: $(LIBSCC) $(QBE_AMD64_SYSV_OBJS)
70	$(CC) $(PROJ_LDFLAGS) $(QBE_AMD64_SYSV_OBJS) $(PROJ_LDLIBS) -o $@
71	cp $@ $(LIBEXEC)/scc
72
73cc2-qbe_arm64-sysv: $(LIBSCC) $(QBE_ARM64_SYSV_OBJS)
74	$(CC) $(PROJ_LDFLAGS) $(QBE_ARM64_SYSV_OBJS) $(PROJ_LDLIBS) -o $@
75	cp $@ $(LIBEXEC)/scc
76
77cc2-qbe_riscv64-sysv: $(LIBSCC) $(QBE_RISCV64_SYSV_OBJS)
78	$(CC) $(PROJ_LDFLAGS) $(QBE_RISCV64_SYSV_OBJS) $(PROJ_LDLIBS) -o $@
79	cp $@ $(LIBEXEC)/scc
80
81cc2-z80-scc: $(LIBSCC) $(Z80_SCC_OBJS)
82	$(CC) $(PROJ_LDFLAGS) $(Z80_SCC_OBJS) $(PROJ_LDLIBS) -o $@
83	cp $@ $(LIBEXEC)/scc
84
85clean:
86	rm -f error.h