Makefile
Makefileはmakeコマンドで使用するファイル
タスクの依存関係に応じて処理を実行してくれるのでタスクランナーとして使われがち
BSD MakeとGNU makeがあるけれど、このページはGNU makeが前提
GNU Projectのページ
Make - GNU Project - Free Software Foundation
GNU makeドキュメント
Top (GNU make)
Overview (GNU make)
Introduction (GNU make)
Makefileの基本
LDFLAGSとLDLIBS
自動変数($@や$^などのついて)
Makefileの自動変数
Makefileのテンプレート
扱いやすそうなMakefileテンプレート
カレントディレクトリを取得する
code:Makefile
# ~/project/Makefile
MAKEFILE_DIR1 := $(dir $(lastword $(MAKEFILE_LIST))
# →~/project/
# 末尾の/が付く
MAKEFILE_DIR2 := $(abspath $(shell dirname $(lastword $(MAKEFILE_LIST))))
# →~/project
# 末尾の/が付かない
関連
ビルドツール
Meson
CMake
Bazel
Rakefile
OMake
Autotools
安全なC/C++のコンパイルオプション
確認用
Q. Makefileとは
Q. カレントディレクトリを取得
Q. 実行するコマンドを表示しない
Q. 実行するコマンドを表示(dry-runモード)
Q. 更新が必要かどうか終了ステータスに保存
Q. 全てのデバッグ情報を表示
Q. デバッグ情報を指定し表示
Q. makeのトレース情報を表示
Q. makeのデータベースを出力
Q. 未定義変数の参照時に警告を表示
Q. 指定されたファイルを変更されていると仮定
Q. インクルードするmakefileのディレクトリの指定
Q. レシピの並列実行
Q. 並列実行時の出力メッセージをグループ化
Q. @付き、-
参考
カレントディレクトリを取得
makeコマンドのオプションについて その2 | Linuxコマンド.NET
Makefile のディレクトリを取得
メモ
Make覚書 - Qiita
Makefileの関数 - Qiita
make (UNIX) - Wikipedia
Make (software) - Wikipedia
make基礎知識
RHEL 9 での C および C++ アプリケーションの開発 Red Hat Enterprise Linux 9 | Red Hat Customer Portal
chppl-tool/chppl-tool/src/makefile at 7a49782ad7f2a68292dbb7dcfbf976fa39c714c3 · nocotan/chppl-tool
Makefile Tutorial By Example
Makefile Tutorial By Example
#ビルド