scc

simple c99 compiler
git clone git://git.simple-cc.org/scc
Log | Files | Refs | Submodules | README | LICENSE

Makefile (1458B)


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