diff options
| author | 2023-05-10 20:38:32 +0200 | |
|---|---|---|
| committer | 2023-05-10 20:38:32 +0200 | |
| commit | 9100ed2b5dd01df8e6b766c7bc2a12c0dd44f1ff (patch) | |
| tree | 0598b126bdddb7db462a2f0915e272d4345c0c39 /Makefile | |
initial commit
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..f9f3e12 --- /dev/null +++ b/Makefile @@ -0,0 +1,33 @@ +SRC=main.c io.c mem.c parse.c lex.c type.c targ.c eval.c ir.c irdump.c +CFLAGS=-Wall -std=c11 -pedantic +OBJ=$(patsubst %.c,obj/%.o,$(SRC)) +OUT=cchomp + +all: CFLAGS += -g -Og +all: $(OUT) + +opt: CFLAGS += -O2 +opt: $(OUT) + +dbg: CFLAGS += -g -fsanitize=address -fsanitize=undefined +dbg: $(OUT) + +$(OUT): $(OBJ) + $(CC) $(CFLAGS) -o $@ $(OBJ) + +obj/%.o: %.c common.h + @mkdir -p obj/ + $(CC) $(CFLAGS) -c -o $@ $< + +obj/main.o: parse.h +obj/parse.o: parse.h ir.h +obj/ir.o: ir.h +obj/irdump.o: ir.h op.def +obj/lex.o: parse.h +obj/eval.o: parse.h +obj/io.o: parse.h keywords.def + +clean: + $(RM) -r obj/ $(OUT) + +.PHONY: clean |