Makefile examples: Compact: Difference between revisions

From Wiki**3

(New page: <text> #---------------------------------------------------------------------------- # CONFIGURE THESE VARIABLES IF NEEDED #------------------------------------------...)
 
No edit summary
 
Line 16: Line 16:
LDFLAGS  = -L$(CDK_LIB_DIR) -lcdk
LDFLAGS  = -L$(CDK_LIB_DIR) -lcdk
COMPILER = compact
COMPILER = compact
#GEN = C


SRC_CPP = $(wildcard nodes/*.cpp) $(wildcard semantics/*.cpp) \
SRC_CPP = $(wildcard nodes/*.cpp) $(wildcard semantics/*.cpp) \

Latest revision as of 14:30, 9 March 2008

<text>

  1. ----------------------------------------------------------------------------
  2. CONFIGURE THESE VARIABLES IF NEEDED
  3. ----------------------------------------------------------------------------

ROOT = ${HOME}/compiladores/root CDK_INC_DIR = $(ROOT)/usr/include CDK_LIB_DIR = $(ROOT)/usr/lib

L_NAME=CompactScanner Y_NAME=CompactParser

YFLAGS = -dtv

  1. CXXFLAGS = -Wall -O6 -s -Isemantics -I. -I$(CDK_INC_DIR)

CXXFLAGS = -ggdb -Isemantics -I. -I$(CDK_INC_DIR) LDFLAGS = -L$(CDK_LIB_DIR) -lcdk COMPILER = compact

SRC_CPP = $(wildcard nodes/*.cpp) $(wildcard semantics/*.cpp) \

         $(wildcard ./*.cpp)

OFILES = $(SRC_CPP:%.cpp=%.o)

  1. ----------------------------------------------------------------------------
  2. DO NOT CHANGE AFTER THIS LINE
  3. ----------------------------------------------------------------------------

all: $(COMPILER)

%.o:: %.c

       $(CXX) $(CXXFLAGS) -c $< -o $@

%.o:: %.cpp

       $(CXX) $(CXXFLAGS) -c $< -o $@

%.tab.c:: %.y

        byacc -dtv -b $* $<

%.tab.h:: %.y

        byacc -dtv -b $* $<

$(L_NAME).cpp: $(L_NAME).l

       flex $<

$(Y_NAME).tab.c: $(Y_NAME).y $(Y_NAME).tab.h: $(Y_NAME).y

  1. this is needed to force byacc to run

$(L_NAME).o: $(L_NAME).cpp $(Y_NAME).tab.h

$(COMPILER): $(L_NAME).o $(Y_NAME).tab.o $(OFILES)

       $(CXX) -o $@ $^ $(LDFLAGS)

clean:

       $(RM) *.tab.[ch] *.o $(OFILES) $(L_NAME).cpp $(Y_NAME).output $(COMPILER)

depend:

       $(CXX) $(CXXFLAGS) -MM *.cpp > .makedeps

-include .makedeps </text>