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 |