Open3

Makefile についてのメモ

白湯白湯

.PHONY でターゲット名を指定しておくと、実際にファイルやディレクトリがある場合でも大丈夫。

.PHONY: ターゲット名
ターゲット名:
  コマンド


build ディレクトリが存在していても、make build で docker build を実行できる。

.PHONY: build
build:
  @docker build .
白湯白湯

変数を使うときの注意点

Makefile 内部で定義している変数を利用するときは ${変数名} で利用できるが、環境変数や一時的に定義した変数を利用する場合はエスケープが必要。($$変数名)

# Makefile で定義した変数
VAR="hoge"

foo:
  @echo ${VAR}

bar:
  @var="fuga" && echo $$var
白湯白湯

.env に定義してある変数を使う

.env
HOGE="hogehoge"
Makefile
foo:
  @source ./.env \
    && echo $$HOGE # hogehoge

include でも行けるらしい
この場合、変数は Makefile 変数になるようなので、利用するときは ${変数名} となる

Makefile
include ./.env

foo:
  @echo ${HOGE}