Makefile (1522B)
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 @cp $(TARGET) $(LIBEXEC)/scc 58 59 main.o: error.h 60 qbe_riscv64-sysv qbe_amd64-sysv qbe_arm64-sysv: qbe 61 qbe_amd64-sysv: amd64-sysv 62 qbe_arm64-sysv: arm64-sysv 63 qbe_riscv64-sysv: riscv64-sysv 64 65 error.h: cc2.h 66 trap 'rm -f $$$$.h' EXIT;\ 67 trap 'exit $?' HUP INT TERM;\ 68 awk -f generror.awk cc2.h > $$$$.h && mv $$$$.h $@ 69 70 cc2-qbe_amd64-sysv: $(LIBSCC) $(QBE_AMD64_SYSV_OBJS) 71 $(CC) $(PROJ_LDFLAGS) $(QBE_AMD64_SYSV_OBJS) $(PROJ_LDLIBS) -o $@ 72 73 cc2-qbe_arm64-sysv: $(LIBSCC) $(QBE_ARM64_SYSV_OBJS) 74 $(CC) $(PROJ_LDFLAGS) $(QBE_ARM64_SYSV_OBJS) $(PROJ_LDLIBS) -o $@ 75 76 cc2-qbe_riscv64-sysv: $(LIBSCC) $(QBE_RISCV64_SYSV_OBJS) 77 $(CC) $(PROJ_LDFLAGS) $(QBE_RISCV64_SYSV_OBJS) $(PROJ_LDLIBS) -o $@ 78 79 cc2-z80-scc: $(LIBSCC) $(Z80_SCC_OBJS) 80 $(CC) $(PROJ_LDFLAGS) $(Z80_SCC_OBJS) $(PROJ_LDLIBS) -o $@ 81 82 clean: 83 rm -f error.h