一个简单的例子,但是几乎可以不作修改用于任意一个project。
使用Sunstudio的C++编译器。使用其他编译器要修改下变量定义。
SHELL = /bin/sh
CXX = CC
CXXFLAGS = -g
DEPFLAGS = -xM1
TARGETFILE = mytest.exe
# Source Files
SOURCEFILES = $(wildcard *.cc)
# Object Files
OBJECTFILES = ${SOURCEFILES:.cc=.o}
build:${OBJECTFILES}
${CXX} ${CXXFLAGS} -o ${TARGETFILE} ${OBJECTFILES}
%.o : %.cc
${CXX} ${CXXFLAGS} -c $< -o $@
include ${OBJECTFILES:.o=.d}
%.d : %.cc
set -e; ${CXX} ${DEPFLAGS} $< /
| sed 's//($*/)/.o[ :]*//1.o $@ : /g' > $@; /
[ -s $@ ] || rm -f $@
.PHONY : clean
clean :
-rm ${TARGETFILE} ${OBJECTFILES} ${OBJECTFILES:.o=.d}