Makefile †
configure †
自動変数 †
- 実行
make
centos6
6
centos7
7
自己文書化: helpを表示する †
- 「## コメント」部分が「make help」で表示される
- Makefile
install: ## install
@echo "install"
PHONY: help
help:
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
.DEFAULT_GOAL := help
コメント †
- 行頭に'#'
- インデントを付けると#を含めてそのまま表示される
ループ処理 †
エラーを無視して実行 †
- コマンド内エラー
- 通常、終了コードが0以外の場合、中断する
- 行頭"-": エラーを無視して実行する
- 行頭"@": コマンド行をechoしない
強制実行 †
ファイルチェック等 †
- GNU makeの場合、1行毎に sh -c 'コマンド' のように実行されるので、複数行の場合は行末にバックスラッシュを入れる必要がある
シェルの変更 †
- Makefile
SHELL := /bin/bash
OSでの条件分岐 †
- OS毎にMakefileを分ける
- Makefile
ifeq ($(OS),Windows_NT)
include Makefile.win
else
include Makefile.$(firstword $(subst _, ,$(shell uname -s)))
endif
- Makefile.Linux
all:
@echo "Linux"
- Makefile.Darwin
all:
@echo "Mac OS X"
シェルの実行 †
- `date`
- $(date)はダメ。代わりに$(shell date)が使える
- ホスト名の取得: HOST=$(shell hostname)
暗号化zipファイルを作る †
|
|