Summary Files Commits Branches @commit @diff @stats
path: root / Year 2 / Implementation of Programming Languages / Transpiler / Makefile
blob: ad1bdf9b8b0e4d92383dea7f7a722917f44e133f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
CC=gcc
CFLAGS=-lfl
CXX=g++
CXXFLAGS=
LEX=flex
YACC=bison -t -d

.PHONY: all
all: build-frontend run-frontend build-transpiler run-transpiler

.PHONY: build-frontend
build-frontend: build-parser build-lexer
	cd build && $(CC) lex.yy.c commonlisp2transpilerstr.tab.c $(CFLAGS) -o frontend.out

.PHONY: build-lexer
build-lexer:
	cd frontend && $(LEX) commonlisp2transpilerstr.l && mkdir -p ../build/ && mv lex.yy.c ../build/

.PHONY: build-parser
build-parser:
	cd frontend && $(YACC) commonlisp2transpilerstr.y && mkdir -p ../build/ && mv commonlisp2transpilerstr.tab.* ../build/

.PHONY: run-frontend
run-frontend:
	cd build/ && ./frontend.out < ../src.cl >> CLTree.h

.PHONY: build-transpiler
build-transpiler:
	cd src/ && $(CXX) *.cpp */*.cpp $(CXXFLAGS) -o cltranspiler.out && mkdir -p ../build/ && mv cltranspiler.out ../build/

.PHONY: run-transpiler
run-transpiler:
	cd build/ && ./cltranspiler.out && mv transpiled.ll ..

.PHONY: tests
tests:
	cd tests && $(CXX) 'Tests_ALL.cpp' ../src/*/*.cpp $(CXXFLAGS) && ./a.out