コンパイル実行時にオブジェクトディレクトリやバイナリディレクトリがなかったときに,ディレクトリ生成するMakefileはいくらでも検索したら出てくるが,ディレクトリだけを生成するターゲットとmakeのルールの書き方がすぐに見つからなかったのでメモ.
オブジェクトファイルに依存してなければ作れば良い?
Makefile
BIN_DIR = ../bin
MAIN = $(BIN_DIR)/main
MAIN_SRC = $(addsuffix .cpp, $(MAIN))
MAIN_OBJ = $(MAIN_SRC:%=%.o)
all: $(BIN_DIR) $(MAIN)
$(BIN_DIR): $(wildcard *.o)
@if [ ! -d $(BIN_DIR) ]; then \
echo ";; mkdir $(BIN_DIR)"; mkdir $(BIN_DIR); \
fi
$(MAIN): $(MAIN_OBJ)
...(以下略)