aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile36
1 files changed, 36 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..b5d63a1
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,36 @@
+ifeq ($(mode), release)
+ CFLAGS = -O2 -Wall
+else
+ CFLAGS = -g -Wall -Wextra -DCIBIC_DEBUG
+endif
+
+all: cibic
+
+db:
+ gdb cibic
+
+cibic: lex.yy.o cibic.tab.o ast.o main.o semantics.o ssa.o mips.o
+ mkdir -p bin
+ gcc -o bin/cibic lex.yy.o cibic.tab.o ast.o main.o semantics.o ssa.o mips.o
+ cp bin/cibic cibic
+lex.yy.o: lex.yy.c cibic.tab.c
+ gcc -c lex.yy.c
+cibic.tab.o: cibic.tab.c
+ gcc -c cibic.tab.c
+main.o: main.c
+# gcc -c main.c -g -Wall -Wextra
+ast.o: ast.c ast.h
+# gcc -c ast.c -g -Wall -Wextra -DCIBIC_DEBUG
+semantics.o: semantics.c semantics.h
+# gcc -c semantics.c -g -Wall -Wextra -DCIBIC_DEBUG
+ssa.o: ssa.c ssa.h
+# gcc -c ssa.c -g -Wall -Wextra -DCIBIC_DEBUG
+mips.o: mips.c mips.h
+# gcc -c mips.c -g -Wall -Wextra -DCIBIC_DEBUG
+lex.yy.c: cibic.l
+ flex cibic.l
+cibic.tab.c: cibic.y
+ bison -d cibic.y
+
+clean:
+ rm -f cibic lex.yy.c cibic.tab.c cibic.tab.h *.o