Search This Blog

Thursday 29 December 2011

Makefile for c++ project

#---------------------------------------------------------------# # #---------------------------------------------------------------# # TARGETS: # wire - default target # dwire - debug target # tag - For generating tag file # clean/fresh - clean obj files. #---------------------------------------------------------------# #-- Customized variables BINDIR=bin OBJDIR=obj SRCDIR=src INCDIR=include CC = g++ CWARN = -W -Wall -Wshadow -Wimplicit -Wreturn-type -Wcomment -Wtrigraphs -Wformat -Wparentheses -Wpointer-arith -Wuninitialized -O CDBG = -g $(CWARN) -fno-inline CFLAGS = -I$(INCDIR) $(CDBG) DFLAGS = -I$(INCDIR) -g $(CWARN) -fno-inline -DDEBUG=1 CTAG = ctags CTAGFILE = filelist # src, object and bin files TGT=wire #Debug Target DBGTGT=dwire HEADERS = $(INCDIR)/global.h COMMONOBJS = $(OBJDIR)/BaseStation.o $(OBJDIR)/SubscriberStation.o $(OBJDIR)/Packet.o $(OBJDIR)/Queue.o $(OBJDIR)/Global.o $(OBJDIR)/Simulate.o OBJS = $(COMMONOBJS) $(OBJDIR)/main.o DBGOBJS = $(COMMONOBJS) $(OBJDIR)/main.dbg.o #-- Rules all: $(TGT) dbg: $(DBGTGT) $(TGT): $(BINDIR)/$(TGT) @echo "$@ uptodate" $(DBGTGT): $(BINDIR)/$(DBGTGT) @echo "$@ uptodate" $(BINDIR)/$(DBGTGT): $(DBGOBJS) $(CC) $(CFLAGS) -o $@ $(DBGOBJS) $(OBJDIR)/%.dbg.o: $(SRCDIR)/%.cpp $(CC) $(CFLAGS) -DDEBUG=1 -c -o $@ $? $(BINDIR)/$(TGT): $(OBJS) $(CC) $(CFLAGS) -o $@ $(OBJS) $(OBJDIR)/%.o: $(SRCDIR)/%.cpp $(CC) $(CFLAGS) -c -o $@ $? .PHONY : clean depend fresh tag : find src/*.cpp include/*.h > filelist $(CTAG) -L $(CTAGFILE) clean : -rm -f $(OBJDIR)/*.o $(PARSE_C) $(PARSE_H) -rm -f $(SRCDIR)/*.output $(LEX_C) -rm -f */*~ *~ core -rm -f $(BINDIR)/$(TGT) $(BINDIR)/$(DBGTGT) fresh : clean all

No comments:

Post a Comment

Blogger Widgets