.POSIX: .SUFFIXES: .o .c PREFIX = /usr/local BINDIR = $(PREFIX)/bin ZIGSRC = src/main.zig src/cimport.zig COMMSRC = util.c parse.c abi.c cfg.c mem.c ssa.c alias.c load.c \ copy.c fold.c simpl.c live.c spill.c rega.c emit.c AMD64SRC = amd64/targ.c amd64/sysv.c amd64/isel.c amd64/emit.c ARM64SRC = arm64/targ.c arm64/abi.c arm64/isel.c arm64/emit.c RV64SRC = rv64/targ.c rv64/abi.c rv64/isel.c rv64/emit.c SRCALL = $(ZIGSRC) $(COMMSRC) $(AMD64SRC) $(ARM64SRC) $(RV64SRC) zig-out/bin/roux: $(SRCALL) all.h ops.h amd64/all.h arm64/all.h rv64/all.h zig build install: roux zig build install --prefix="$(DESTDIR)$(BINDIR)" uninstall: zig build uninstall --prefix="$(DESTDIR)$(BINDIR)" clean: rm -fr qbe zig-cache zig-out qbe: zig-out/bin/roux ln -fs $< $@ check: qbe tools/test.sh all check-arm64: qbe TARGET=arm64 tools/test.sh all check-rv64: qbe TARGET=rv64 tools/test.sh all src: @echo $(SRCALL) .PHONY: clean check check-arm64 check-rv64 src install uninstall