すこし汎用的な Makefile
比較的簡単なプロジェクト用に Makefile のテンプレートを作った。
ソースファイルとオブジェクトファイルのディレクトリを分けたところが、少し工夫したところ。
とはいえ、昔は階層化 Make まで頑張って対応していたので、あくまで簡易版。
# Directories
SRCDIR = ./sources
OBJDIR = ./objsTARGET =
SRCS = $(wildcard ${SRCDIR}/*.cpp)
OBJS = $(addprefix ${OBJDIR}/, $(notdir $(SRCS:.cpp=.o)))
DEPS = $(addprefix ${OBJDIR}/, $(notdir $(SRCS:.cpp=.d)))# for preprocesser
INCLUDES =
CPPFLAGS =# for C++ compiler
CXX = g++
CXXFLAGS = -g -Wall -MMD -MP# for linker
LD = ${CXX}
LIBDIRS =
LIBS =
LDFLAGS = ${LIBDIRS} ${LIBS}all: clean ${TARGET}
${TARGET}: ${OBJS}
${LD} -o $@ $^ ${LDFLAGS}${OBJDIR}/%.o: ${SRCDIR}/%.cpp
@[ -d ${OBJDIR} ]
${CXX} ${CXXFLAGS} -o $@ -c $<.PHONY: all clean
clean:
${RM} ${TARGET} ${OBJS} ${DEPS}-include ${DEPS}