1
0
Fork 0
lesson-lisp/Makefile

46 lines
864 B
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
TEST_SCM = test.scm
TEST_EXP = test.txt
TEST_OUT = test.out
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 \
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-05 11:35:34 +00:00
MAIN_OBJS = $(OBJS) src/main.c.o
TEST_OBJS = $(OBJS) src/main-test.c.o
2023-05-05 14:15:43 +00:00
repl: arcane-scheme-lisp
./arcane-scheme-lisp
2023-05-05 08:42:35 +00:00
2023-05-06 10:54:37 +00:00
test: arcane-scheme-lisp arcane-scheme-lisp-test
2023-05-05 14:15:43 +00:00
./arcane-scheme-lisp-test
$(CAT) $(TEST_SCM) | ./arcane-scheme-lisp > $(TEST_OUT)
$(DIFF_Q) $(TEST_EXP) $(TEST_OUT)
2023-05-04 12:27:39 +00:00
2023-05-03 22:05:11 +00:00
clean:
$(RM_F) arcane-scheme-lisp arcane-scheme-lisp-test $(MAIN_OBJS) $(TEST_OBJS) $(TEST_OUT)
2023-05-05 11:35:34 +00:00
2023-05-05 14:15:43 +00:00
arcane-scheme-lisp: $(MAIN_OBJS)
2023-05-05 11:35:34 +00:00
$(CC) -o $@ $^ $(CFLAGS)
2023-05-03 18:42:26 +00:00
2023-05-05 14:15:43 +00:00
arcane-scheme-lisp-test: $(TEST_OBJS)
2023-05-03 18:42:26 +00:00
$(CC) -o $@ $^ $(CFLAGS)
%.c.o: %.c
$(CC) -c $< -o $@ $(CFLAGS)