summaryrefslogtreecommitdiff
path: root/21sh/ll-expr/Makefile
diff options
context:
space:
mode:
Diffstat (limited to '21sh/ll-expr/Makefile')
-rw-r--r--21sh/ll-expr/Makefile27
1 files changed, 27 insertions, 0 deletions
diff --git a/21sh/ll-expr/Makefile b/21sh/ll-expr/Makefile
new file mode 100644
index 0000000..0293956
--- /dev/null
+++ b/21sh/ll-expr/Makefile
@@ -0,0 +1,27 @@
+CC = gcc
+CFLAGS = -Wall -Werror -Wextra -std=c99 -pedantic -Wvla -fsanitize=address
+CPPFLAGS = -Isrc -Isrc/parser -Isrc/lexer -Isrc/ast
+LDFLAGS = -fsanitize=address
+
+OBJS = src/ast/ast.o \
+ src/lexer/lexer.o \
+ src/parser/parser.o
+
+OBJ_AST = src/eval/ast_print.o
+OBJ_RPN = src/eval/rpn_print.o
+OBJ_TOKEN = src/eval/token_printer.o
+
+all: ast rpn token
+
+ast: $(OBJS) $(OBJ_AST)
+ $(CC) $(LDFLAGS) -o eval_ast $(OBJS) $(OBJ_AST)
+
+rpn: $(OBJS) $(OBJ_RPN)
+ $(CC) $(LDFLAGS) -o eval_rpn $(OBJS) $(OBJ_RPN)
+
+token: $(OBJS) $(OBJ_TOKEN)
+ $(CC) $(LDFLAGS) -o eval_token $(OBJS) $(OBJ_TOKEN)
+
+clean:
+ $(RM) $(OBJS) $(OBJ_AST) $(OBJ_TOKEN) $(OBJ_RPN) eval_*
+