ねこ元帥の中の人@リウマチ

日々の覚書など。ブログ名はオンラインゲームのアカウント名をいつも「ねこ元帥」にしているから。そして、2013年11月リウマチと診断されたとです。(2012年11月から時々手足に原因不明の痛みが発生、2013年9月以降は足の痛みが常態化、2013年12月30日からMTX服用開始、4月過ぎるころにはわずかの痛みが残る程度まで回復して現在に至る。)

makeテンプレート

############################################################
# TARGET
############################################################
TARGET = Hoge.exe

ARCH =

SRCS = $(wildcard ../src/*.cpp)

OBJS = $(notdir $(subst .cpp,.o,$(SRCS)))

LIBS = -lsocket -lnsl -lpthread

VPATH = ../src

INCLUDE_PATH = -I../include

LIBRARY_PATH = -L/usr/lib -L/usr/local/lib

############################################################
# COMMAND
############################################################
RM  := rm
MV  := mv
CXX := g++
CC  := g++
AR  := ar
RANLIB := ranlib
SED := sed

############################################################
# OPTION
############################################################
CXXFLAGS = -D_POSIX

CPPFLAGS = $(INCLUDE_PATH)

LDFLAGS  = $(LIBRARY_PATH)

dependencies = $(subst .o,.d,$(OBJS))

############################################################
# MAKE RULE
############################################################
$(ARCH): $(OBJS)
	$(AR) r $(ARCH) $(OBJS)
	$(RANLIB) $(ARCH)

$(TARGET): $(OBJS)
	$(LINK.cpp) $(TARGET) $(OBJS) $(LIBS)

.PHONY: all clean

all: $(ARCH) $(TARGET)

clean:
	$(RM) $(ARCH) $(TARGET) $(OBJS) $(dependencies) 2> /dev/null

ifneq "$(MAKECMDGOALS)" "clean"
include $(dependencies)
endif

%.d: %.cpp
	$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -M $< | \
	$(SED) 's,\($(notdir $*)\.o\) *:,$(dir $@) \1 $@: ,' > $@.tmp
	$(MV) $@.tmp $@