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