makefile模板

# Make command to use for dependencies
RM=rm
MKDIR=mkdir

APP=gate
LIB=-lpthread -lrt -ldl

OBJDIR=../_obj/$(APP)
EXEDIR=./bin
INCDIR=-I../../lib/svrlib/include -I../../lib/tinyxml -I../include
LIBDIR=

TINYXML=../../lib/tinyxml
EXEFILE=$(EXEDIR)/$(APP)
SRC := $(wildcard *.cpp $(TINYXML)/*.cpp)
OBJFILE := $(patsubst %.cpp, $(OBJDIR)/%.o, $(notdir ${SRC}))

COMPILE=g++ -c -o "$(OBJDIR)/$(*F).o" $(INCDIR) -w "$<"
LINK=g++ $(LIBDIR) -o "$(EXEFILE)" $(OBJFILE) $(LIB)

# Pattern rules
$(OBJDIR)/%.o : %.cpp
	$(COMPILE)
	
$(OBJDIR)/%.o : ../../lib/tinyxml/%.cpp
	$(COMPILE)

# Build rules
all: $(EXEFILE)

$(EXEFILE): $(OBJDIR) $(OBJFILE)
	$(MKDIR) -p $(EXEDIR)
	$(LINK)
	tar -xzvf ../../lib/svrlib/lib/centos/libsvr.tar.gz -C $(EXEDIR)/
	sh modify_ver.sh *.rc $(EXEFILE) $(APP)  

$(OBJDIR):
	$(MKDIR) -p $(OBJDIR)


# Rebuild this project
rebuild: cleanall all

# Clean this project
clean:
	$(RM) -f $(EXEFILE)
	$(RM) -f $(OBJFILE)

# Clean this project and all dependencies
cleanall: clean

 

posted on 2014-10-09 15:32  kangbry  阅读(162)  评论(0编辑  收藏  举报

导航