whitekfox’s diary

CS分野の学んだことや実践したことを備忘録としてまとめるノート

Makefile についてメモ

大学の勉強のおまけで作った. 楽をしたいので, Makefileにレシピを書いて自動化させる. 以前からMakefileのテンプレートが欲しいと思っていたので, これを機に簡易のテンプレートを作った.

ディレクトリ構成は以下のとおりである.

.
├── .git
├── .gitignore
├── LICENSE
├── Makefile
├── README.md
├── bin
├── inc
├── src
└── test

実際のMakefileは以下のとおりである.

シンボルについては以下の通り.

シンボル 説明
CC コンパイルコマンド g++
PROJECT_DIR プロジェクトのカレントディレクト .
SRC_DIR .cppファイルのディレクト $(PROJECT_DIR)/src
INC_DIR .hppファイルのディレクト $(PROJECT_DIR)/inc
BIN_DIR プログラム $(PROJECT_DIR)/bin
OBJ_DIR .oファイルのディレクト $(PROJECT_DIR)/obj
TEST_DIR テストコードのディレクト $(PROJECT_DIR)/test
SRCS 全ての.cppファイルのリスト $(wildcard $(SRC_DIR)/*.cpp)
OBJS 全ての.oファイルのリスト $(addprefix $(OBJ_DIR)/, $(notdir $(SRCS:.cpp=.o)))
INC_FLAGS includeするheaderのディレクトリを指定する -I$(INC_DIR)
CF_FLAGS コンパイルのオプション -std=c++14 -g -Wall

参考ページ