通用的Makefile

 

一個通用的Makefile寫法,可以自動將當前的.cpp作爲編譯目標,自帶clean,使用時只需將程序名稱、庫和頭文件等改一下即可正常工作。

 

XX = g++

CXXFLAGS =  -std=c++11  -c  -g 
CLIBS = -L../../lib/linux  -lssl 
INCLUDE_DIRS = -I../../include  

SRC=$(wildcard *.cpp)
OBJECTS:=$(patsubst %.cpp,%.o,$(SRC))

PROGRAM:= p2ptest
BINDIR := ../bin/$(PROGRAM)
TARGET = $(BINDIR)/$(PROGRAM)



all: MD $(TARGET)  


$(TARGET) : $(OBJECTS) 
	$(XX) -static-libstdc++  -o $(TARGET)  $(OBJECTS)  $(CLIBS)  


$(OBJECTS) : %.o : %.cpp 
	$(XX)  $(CXXFLAGS) $< -o $@ $(INCLUDE_DIRS) 

MD:
	mkdir -p  $(BINDIR)


	
	

.PHONY : clean

clean:
	rm -rf $(TARGET) $(OBJECTS)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章