TARGET = rs274ngc USE_AST_FACTORY ?= 0 DEBUG ?= 0 EMCDIR ?= $(HOME)/emc3 LD = g++ LDFLAGS = CPPFLAGS = \ -I$(EMCDIR)/src/emc/interpreter \ -I$(EMCDIR)/src/emc/interpreter/rs274ngc \ -I$(EMCDIR)/src/emc/hal_intf \ -I$(EMCDIR)/src/emc/init \ -I$(EMCDIR)/src/emc/kinematics \ -I$(EMCDIR)/src/emc/machine \ -I$(EMCDIR)/src/emc/motion \ -I$(EMCDIR)/src/emc/task \ -I$(EMCDIR)/src/emc/usr_intf \ -I$(EMCDIR)/src/include \ ifneq ($(USE_AST_FACTORY), 0) CPPFLAGS += -DUSE_AST_FACTORY endif ifeq ($(DEBUG), 0) CFLAGS = -O CXXFLAGS = -O else CFLAGS = -g CXXFLAGS = -g endif ANTLR = `which antlr || which runantlr` ANTLRFLAGS = RM = 'rm' -f OBJ = main.o $(TARGET).o $(TARGET)Parser.o $(TARGET)Lexer.o \ $(TARGET)Block.o ../Interpreter.o ../../machine/Model.o ifneq ($(USE_AST_FACTORY), 0) OBJ += $(TARGET)TreeWalker.o endif LIB = -lantlr $(TARGET): $(OBJ) $(LD) $(LDFLAGS) -o $@ $(OBJ) $(LIB) ifneq ($(USE_AST_FACTORY), 0) main.o: main.cpp $(TARGET)TreeWalker.hpp $(TARGET)Parser.hpp $(TARGET)Lexer.hpp else main.o: main.cpp $(TARGET)Parser.hpp $(TARGET)Lexer.hpp endif clean: -@$(RM) $(OBJ) $(TARGET)TreeWalkder.* $(TARGET)Parser.* $(TARGET)Lexer.* \ $(TARGET)TokenTypes.* .SECONDARY: $(addprefix $(TARGET)TreeWalkder,.cpp .hpp) \ $(addprefix $(TARGET)Parser,.cpp .hpp) \ $(addprefix $(TARGET)Lexer,.cpp .hpp) \ $(addprefix $(TARGET)TokenTypes,.hpp .txt) %Lexer.cpp: %.g $(ANTLR) $(ANTLRFLAGS) $< %Lexer.hpp: %.g $(ANTLR) $(ANTLRFLAGS) $< %Parser.cpp: %.g $(ANTLR) $(ANTLRFLAGS) $< %Parser.hpp: %.g $(ANTLR) $(ANTLRFLAGS) $< %TreeWalker.cpp: %.g $(ANTLR) $(ANTLRFLAGS) $< %TreeWalker.hpp: %.g $(ANTLR) $(ANTLRFLAGS) $<