export BUILD_DIR=$(dir $(abspath $(lastword $(MAKEFILE_LIST))))build export CXX=g++ export CXXFLAGS= _OBJS-top=ast.o main.o DEBUG=a ifdef DEBUG CXXFLAGS+=-g endif OBJS-top=$(patsubst %,$(BUILD_DIR)/%,$(_OBJS-top)) .PHONY: directories parser gen clean default: docconv directories docconv: parser gen $(OBJS-top) $(CXX) $(CXXFLAGS) -o $@ $(BUILD_DIR)/*.o $(BUILD_DIR)/%.o: %.cpp $(CXX) -c $(CXXFLAGS) -o $@ $< parser: directories $(MAKE) -C parsers gen: directories $(MAKE) -C gens directories: mkdir -p $(BUILD_DIR) clean: rm -rf $(BUILD_DIR)