CXX = g++ ARGS = -std=c++17 -Ibuild -Isrc BISON = /opt/homebrew/opt/bison/bin/bison FLEX = flex TARGET = build/py2rb $(TARGET): build/parser.o build/lexer.o build/main.o $(CXX) $^ -o $@ build/parser.cpp build/parser.hpp: src/parser.y | build $(BISON) -d -o build/parser.cpp src/parser.y build/lexer.cpp build/lexer.hpp: src/lexer.l build/parser.hpp src/scanner.hpp src/indent_stack.hpp build $(FLEX) --header-file=build/lexer.hpp -o build/lexer.cpp src/lexer.l build/%.o: build/%.cpp $(CXX) -c $(ARGS) $< -o $@ build/%.o: src/%.cpp | build $(CXX) -c $(ARGS) $< -o $@ src/ast.hpp: src/ast/base.hpp src/ast/expressions.hpp src/ast/literals.hpp src/ast/operators.hpp src/ast/statements.hpp src/ast/string_utils.hpp build: mkdir -p build clean: rm -rf build run: $(TARGET) $(TARGET) test: $(TARGET) test/tester.sh .PHONY: clean run test