GNU Make の include ディレクティブの詳細
GNU Make の --include-dir=dir オプションの詳細解説
--include-dir=dir
オプションは、GNU Make に .mk
ファイルの検索パスを追加するために使用されます。このオプションは、include
ディレクティブで指定されたファイルが見つからない場合に役立ちます。
オプションの詳細:
dir
は、検索するディレクトリの名前です。複数のディレクトリを指定したい場合は、カンマで区切ることができます。--include-dir
オプションは、コマンドラインで指定するか、Makefile 内でMAKEFLAGS
変数に設定することができます。- このオプションは、
-I
オプションと同等の機能です。
例:
以下の例では、--include-dir
オプションを使用して、./include
ディレクトリと /usr/local/include
ディレクトリ内の .mk
ファイルを検索するように Make に指示しています。
make --include-dir=./include --include-dir=/usr/local/include
その他の注意点:
--include-dir
オプションは、include
ディレクティブで指定されたファイルよりも優先されます。- このオプションは、
-include
オプションとは異なり、指定されたディレクトリ内のすべての.mk
ファイルが検索されます。 - 検索対象となるファイルは、
*.mk
という拡張子を持つファイルだけでなく、Makefile
という名前のファイルも含まれます。
補足:
- 上記の例では、
./include
ディレクトリと/usr/local/include
ディレクトリを指定していますが、これはあくまでも例です。実際の環境に合わせて、適切なディレクトリを指定する必要があります。 --include-dir
オプションは、include
ディレクティブで指定されたファイルが見つからない場合にのみ使用されます。通常は、include
ディレクティブで必要なファイルを直接指定することを推奨します。
- 何かご不明な点があれば、お気軽にご質問ください。
- より詳細な情報は、GNU Make の公式ドキュメントを参照してください。
GNU Make の --include-dir オプションのサンプルコード
make --include-dir=./include --include-dir=/usr/local/include
この例では、./include
ディレクトリと /usr/local/include
ディレクトリ内の .mk
ファイルを検索します。
MAKEFLAGS 変数を使用して設定する
export MAKEFLAGS="-I ./include -I /usr/local/include"
make
この例では、MAKEFLAGS
変数を使用して、--include-dir
オプションを Makefile 内で設定しています。
サブディレクトリ内のファイルを検索する
make --include-dir=./include/subdir
この例では、./include/subdir
ディレクトリ内の .mk
ファイルを検索します。
相対パスと絶対パスを混在させる
make --include-dir=./include --include-dir=/usr/local/include/subdir
この例では、./include
ディレクトリと /usr/local/include/subdir
ディレクトリ内の .mk
ファイルを検索します。
ワイルドカードを使用する
make --include-dir=./include/*.mk
この例では、./include
ディレクトリ内のすべての .mk
ファイルを検索します。
.mk ファイル以外のファイルを検索する
make --include-dir=./include --include-dir=/usr/local/include *.inc
この例では、./include
ディレクトリと /usr/local/include
ディレクトリ内の *.inc
ファイルを検索します。
複数のコマンドラインオプションを組み合わせる
make --include-dir=./include --debug=yes
この例では、--include-dir
オプションと --debug
オプションを組み合わせて使用しています。
Makefile 内で --include-dir オプションを使用する
# Makefile
all:
@echo "Hello, world!"
include $(MAKEFLAGS)
# ./include ディレクトリ内の *.mk ファイルを検索
include-dir ./include
この例では、Makefile 内で --include-dir
オプションを使用して、./include
ディレクトリ内の .mk
ファイルを検索しています。
GNU Make で include ディレクティブを使用する他の方法
VPATH
変数は、include
ディレクティブで指定されたファイルが最初に検索されるディレクトリを指定します。
# Makefile
VPATH = ./include
all:
@echo "Hello, world!"
# ./include ディレクトリ内の foo.mk ファイルを検索
include foo.mk
vpath
ターゲットは、特定のファイルパターンに対して検索パスを設定することができます。
# Makefile
vpath %.mk ./include
all:
@echo "Hello, world!"
# ./include ディレクトリ内の bar.mk ファイルを検索
include bar.mk
-include
オプションは、コマンドラインで特定のファイルを強制的に include します。
make -include ./include/foo.mk
+=
演算子を使用して、VPATH
変数や vpath
ターゲットの値に追加することができます。
# Makefile
VPATH += ./include
all:
@echo "Hello, world!"
# ./include ディレクトリ内の baz.mk ファイルを検索
include baz.mk
環境変数
MAKEINCLUDE
環境変数を使用して、include
ディレクティブで指定されたファイルの検索パスを設定することができます。
export MAKEINCLUDE=./include
make
- 複数のディレクトリを検索したい場合は、
VPATH
変数またはvpath
ターゲットを使用するのが一般的です。 - 特定のファイルを強制的に include したい場合は、
-include
オプションを使用します。 - 複数の Makefile で共通の検索パスを設定したい場合は、環境変数を使用するのが便利です。
X
GNU Make の --jobs オプションを使った実際のプロジェクトの例
--jobs[=jobs] オプションは、GNU Make で同時に実行されるジョブ(コマンド)の数を指定します。これは、複数のターゲットを並行してビルドしたり、依存関係のないレシピを同時に実行したりする場合に便利です。構文オプションjobs: ジョブ数の指定。省略すると、デフォルトのジョブ数が使用されます。
GNU Make の --quiet オプションでメッセージ出力を抑制
--quiet オプションは、以下の動作を引き起こします。ヘッダーとフッターメッセージの抑制ターゲットの更新に関する情報の抑制レシピの実行に関する情報の抑制エラーメッセージの表示--quiet オプションは、単独で使用したり、他のオプションと組み合わせて使用したりできます。たとえば、-v オプションと組み合わせて使用すると、レシピの実行に関する詳細情報のみを表示できます。
GNU Make の --version オプションの詳細解説
コマンドラインから --version オプションを実行すると、次の情報が表示されます。Make ユーティリティのバージョン番号メジャーバージョン番号マイナーバージョン番号パッチレベルリリース候補番号 (存在する場合)ビルドホストビルド日時
あなたは使いこなせる?GNU Make の "-k" オプションとその他方法
上記のコマンドは、Makefile に記述されたすべてのターゲットを、エラーが発生しても すべて実行しようとします。-k オプションには、以下の 2 つの動作モードがあります。エラーがあっても処理を継続する エラーが発生しても、Make は処理を継続し、残りのターゲットを実行しようとします。 エラーが発生したターゲットは、$? 変数に格納されます。 詳細なエラー情報は、make -r コマンドで確認できます。
GNU Make の --no-print-directory オプション: ディレクトリ名の出力を抑制する
--no-print-directory オプションは、make が処理する各ディレクトリの名前を出力することを抑制します。これは、大量のディレクトリを処理する場合、出力を簡潔にするために役立ちます。オプションの詳細デフォルトの動作: make は、処理する各ディレクトリの名前を出力します。
【徹底解説】GNU Makeの「-v」オプション:詳細情報表示でデバッグを極める
概要GNU Makeの「-v」オプションは、冗長モードを有効にし、Makeの処理過程における詳細情報を表示します。これは、Makeの動作を理解したり、デバッグしたりする際に役立ちます。表示内容「-v」オプションを指定すると、Makeは以下の情報を表示します。
コマンド出力スッキリ!Makeの「-s」オプションでスマートなビルド環境を実現
このオプションの利点と欠点利点:Makeの出力結果が簡潔になり、必要な情報だけを確認しやすくなります。長時間実行される複雑なMakefileを処理する場合などに、画面が情報で埋もれるのを防ぎます。スクリプト内でMakeを呼び出す場合などに、余計な情報が出力されずに、処理をよりスマートに見せることができます。
GNU Make の --quiet オプションでメッセージ出力を抑制
--quiet オプションは、以下の動作を引き起こします。ヘッダーとフッターメッセージの抑制ターゲットの更新に関する情報の抑制レシピの実行に関する情報の抑制エラーメッセージの表示--quiet オプションは、単独で使用したり、他のオプションと組み合わせて使用したりできます。たとえば、-v オプションと組み合わせて使用すると、レシピの実行に関する詳細情報のみを表示できます。
GNU Make の --version オプションの詳細解説
コマンドラインから --version オプションを実行すると、次の情報が表示されます。Make ユーティリティのバージョン番号メジャーバージョン番号マイナーバージョン番号パッチレベルリリース候補番号 (存在する場合)ビルドホストビルド日時
include ディレクティブを使用して作業ディレクトリを指定する
以下の例では、-C オプションを使用して、subdir ディレクトリにある Makefile を実行します。このコマンドは、現在のディレクトリではなく、subdir ディレクトリに移動し、そのディレクトリにある Makefile を実行します。