1
0
Fork 0
lesson-lisp/Makefile

57 lines
1.3 KiB
Makefile
Raw Normal View History

2023-05-04 12:27:39 +00:00
all: test
2023-05-03 18:42:26 +00:00
CAT = cat
2023-05-03 18:42:26 +00:00
CC = gcc
DIFF_Q = diff -q
RM_F = rm -f
2023-05-03 18:42:26 +00:00
CFLAGS = -Wall -Wextra
2023-05-04 11:18:16 +00:00
OBJS = \
2023-05-04 19:34:05 +00:00
src/builtins.c.o \
src/ctype.c.o \
2023-05-05 11:35:34 +00:00
src/eval.c.o \
2023-05-04 19:34:05 +00:00
src/lexer.c.o \
2023-05-06 18:40:30 +00:00
src/main.c.o \
2023-05-04 19:34:05 +00:00
src/object.c.o \
src/parser.c.o \
2023-05-05 18:26:07 +00:00
src/syntax.c.o \
2023-05-04 19:34:05 +00:00
src/tokens.c.o
2023-05-03 22:05:11 +00:00
2023-05-06 16:58:11 +00:00
TEST_OUTS = \
tests/arithm_ops.out \
tests/basic_data_structs.out \
tests/hello.out \
2023-05-06 18:31:07 +00:00
tests/arcana.out \
2023-05-06 17:26:27 +00:00
tests/equiv.out \
2023-05-06 16:58:11 +00:00
tests/logic_ops.out \
tests/syntax.out \
tests/type_conv.out \
tests/type_preds.out
2023-05-06 18:31:07 +00:00
repl: arcana-lisp
./arcana-lisp
2023-05-05 08:42:35 +00:00
2023-05-06 18:40:30 +00:00
test: $(TEST_OUTS)
2023-05-06 16:58:11 +00:00
$(DIFF_Q) tests/arithm_ops.txt tests/arithm_ops.out
$(DIFF_Q) tests/basic_data_structs.txt tests/basic_data_structs.out
$(DIFF_Q) tests/hello.txt tests/hello.out
2023-05-06 18:31:07 +00:00
$(DIFF_Q) tests/arcana.txt tests/arcana.out
2023-05-06 17:26:27 +00:00
$(DIFF_Q) tests/equiv.txt tests/equiv.out
2023-05-06 16:58:11 +00:00
$(DIFF_Q) tests/logic_ops.txt tests/logic_ops.out
$(DIFF_Q) tests/syntax.txt tests/syntax.out
$(DIFF_Q) tests/type_conv.txt tests/type_conv.out
$(DIFF_Q) tests/type_preds.txt tests/type_preds.out
2023-05-04 12:27:39 +00:00
2023-05-03 22:05:11 +00:00
clean:
2023-05-06 18:40:30 +00:00
$(RM_F) arcana-lisp $(OBJS) $(TEST_OUTS)
2023-05-03 18:42:26 +00:00
2023-05-06 18:40:30 +00:00
arcana-lisp: $(OBJS)
2023-05-03 18:42:26 +00:00
$(CC) -o $@ $^ $(CFLAGS)
%.c.o: %.c
$(CC) -c $< -o $@ $(CFLAGS)
2023-05-06 16:58:11 +00:00
2023-05-06 18:31:07 +00:00
tests/%.out: tests/%.scm arcana-lisp
$(CAT) $< | ./arcana-lisp > $@