python2ruby/makefile

40 lines
940 B
Makefile

CXX = g++
ARGS = -std=c++17 -Ibuild -Isrc
#BISON = /opt/homebrew/opt/bison/bin/bison
BISON = 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/main.o: src/main.cpp build src/codegen.hpp
$(CXX) -c $(ARGS) src/main.cpp -o build/main.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
src/codegen.hpp : src/ast.hpp
build:
mkdir -p build
clean:
rm -rf build
run: $(TARGET)
$(TARGET)
test: $(TARGET)
test/tester.sh
.PHONY: clean run test