include ディレクティブを使用して作業ディレクトリを指定する

2024-04-02

GNU Make の -C dir オプション

使用例

以下の例では、-C オプションを使用して、subdir ディレクトリにある Makefile を実行します。

make -C subdir

このコマンドは、現在のディレクトリではなく、subdir ディレクトリに移動し、そのディレクトリにある Makefile を実行します。

複数ディレクトリの指定

-C オプションを複数回使用することで、複数のディレクトリを指定することができます。

make -C dir1 -C dir2

このコマンドは、まず dir1 ディレクトリに移動し、そのディレクトリにある Makefile を実行します。その後、dir2 ディレクトリに移動し、そのディレクトリにある Makefile を実行します。

オプションの組み合わせ

-C オプションは、他の make オプションと組み合わせて使用することができます。

make -C subdir -f Makefile.other

このコマンドは、subdir ディレクトリに移動し、Makefile.other という名前の Makefile を実行します。

注意事項

-C オプションを使用する場合は、指定されたディレクトリに Makefile が存在することを確認する必要があります。

また、-C オプションを使用して別のディレクトリに移動すると、現在のディレクトリは変更されます。元のディレクトリに戻するには、cd コマンドを使用する必要があります。

-C オプションは、make コマンドに作業ディレクトリを指定するために使用されます。これは、現在のディレクトリではなく、指定されたディレクトリで Makefile を検索し、実行することを意味します。

-C オプションは、複数のディレクトリを指定したり、他の make オプションと組み合わせて使用することができます。



GNU Make の -C dir オプションのサンプルコード

サブディレクトリにある Makefile を実行する

# 上位ディレクトリの Makefile

all:
	@echo "上位ディレクトリ"
	make -C subdir

subdir:
	@echo "サブディレクトリ"

複数のディレクトリにある Makefile を実行する

# Makefile

all:
	@echo "ディレクトリ1"
	make -C dir1

	@echo "ディレクトリ2"
	make -C dir2

この Makefile は、dir1dir2 というディレクトリにある Makefile を実行します。

オプションを指定して Makefile を実行する

# Makefile

all:
	@echo "ディレクトリ"
	make -C subdir -f Makefile.other

この Makefile は、subdir ディレクトリにある Makefile.other という名前の Makefile を実行します。

環境変数を設定して Makefile を実行する

# Makefile

all:
	@echo "環境変数 FOO は $FOO"
	make -C subdir FOO=bar

この Makefile は、subdir ディレクトリで FOO 環境変数を bar に設定して Makefile を実行します。

シンボリックリンクを使用して Makefile を実行する

# 上位ディレクトリの Makefile

all:
	@echo "上位ディレクトリ"
	make -C subdir

subdir:
	@echo "サブディレクトリ"

# サブディレクトリの Makefile

all:
	@echo "サブディレクトリ"

subdir ディレクトリは、上位ディレクトリのシンボリックリンクであるとします。

この場合、make コマンドは、subdir ディレクトリに移動せずに、シンボリックリンクを通して上位ディレクトリの Makefile を実行します。

-C オプションは、さまざまな状況で使用することができます。これらのサンプルコードを参考に、-C オプションを有効活用してください。



GNU Make で作業ディレクトリを指定する他の方法

VPATH 変数は、make コマンドに検索パスを指定するために使用されます。VPATH 変数に指定されたディレクトリは、make コマンドが Makefile を検索する際に優先的に検索されます。

# Makefile

VPATH = subdir

all:
	@echo "サブディレクトリの Makefile を実行"
	make -f Makefile

この Makefile は、subdir ディレクトリにある Makefile を優先的に検索します。

include ディレクティブは、Makefile に別の Makefile をインクルードするために使用されます。include ディレクティブで指定された Makefile は、現在のディレクトリではなく、指定されたディレクトリから読み込まれます。

# Makefile

include subdir/Makefile

all:
	@echo "サブディレクトリの Makefile をインクルード"

この Makefile は、subdir ディレクトリにある Makefile をインクルードします。

cd コマンドは、シェルで作業ディレクトリを変更するために使用されます。make コマンド内で cd コマンドを使用することで、作業ディレクトリを一時的に変更することができます。

# Makefile

all:
	@echo "現在のディレクトリ: $(PWD)"
	cd subdir
	@echo "サブディレクトリ: $(PWD)"
	make
	cd ..
	@echo "現在のディレクトリ: $(PWD)"

この Makefile は、subdir ディレクトリに一時的に移動し、そのディレクトリにある Makefile を実行します。

-C dir オプション以外にも、VPATH 変数、include ディレクティブ、cd コマンドを使用して GNU Make で作業ディレクトリを指定することができます。

これらの方法をそれぞれの特徴を理解して、状況に応じて使い分けてください。




"-w" オプションと Makefile の .SILENT ディレクティブ:徹底比較

-w オプションは、GNU Make における重要なコマンドラインオプションの一つです。このオプションは、警告メッセージの表示を制御するために使用されます。機能-w オプションには、以下の 3 つの機能があります。警告メッセージの抑制特定の警告メッセージの抑制



【徹底解説】GNU Makeの「-v」オプション:詳細情報表示でデバッグを極める

概要GNU Makeの「-v」オプションは、冗長モードを有効にし、Makeの処理過程における詳細情報を表示します。これは、Makeの動作を理解したり、デバッグしたりする際に役立ちます。表示内容「-v」オプションを指定すると、Makeは以下の情報を表示します。


あなたは使いこなせる?GNU Make の "-k" オプションとその他方法

上記のコマンドは、Makefile に記述されたすべてのターゲットを、エラーが発生しても すべて実行しようとします。-k オプションには、以下の 2 つの動作モードがあります。エラーがあっても処理を継続する エラーが発生しても、Make は処理を継続し、残りのターゲットを実行しようとします。 エラーが発生したターゲットは、$? 変数に格納されます。 詳細なエラー情報は、make -r コマンドで確認できます。


コマンド出力スッキリ!Makeの「-s」オプションでスマートなビルド環境を実現

このオプションの利点と欠点利点:Makeの出力結果が簡潔になり、必要な情報だけを確認しやすくなります。長時間実行される複雑なMakefileを処理する場合などに、画面が情報で埋もれるのを防ぎます。スクリプト内でMakeを呼び出す場合などに、余計な情報が出力されずに、処理をよりスマートに見せることができます。



GNU Make の "--dry-run" オプション:ビルド前にコマンドを確認する方法

--dry-run オプションは、GNU Make に実際の処理を実行せずに、ターゲットのビルドに必要なコマンドを表示させるためのオプションです。ビルド前にコマンドを確認したい場合や、トラブルシューティングに役立ちます。使用方法--dry-run オプションは、make コマンドラインで以下のいずれかの方法で指定できます。


GNU Make の --quiet オプションでメッセージ出力を抑制

--quiet オプションは、以下の動作を引き起こします。ヘッダーとフッターメッセージの抑制ターゲットの更新に関する情報の抑制レシピの実行に関する情報の抑制エラーメッセージの表示--quiet オプションは、単独で使用したり、他のオプションと組み合わせて使用したりできます。たとえば、-v オプションと組み合わせて使用すると、レシピの実行に関する詳細情報のみを表示できます。


GNU Make で特定の Makefile の一部のみを処理する

"-b" オプションは、コマンドラインで make コマンドを実行する際に指定します。オプションの後に、読み込むファイルの名前を指定します。例:このコマンドは、"Makefile. debug" というファイルを読み込み、その内容を Makefile として処理します。


GNU Make の --version オプションの詳細解説

コマンドラインから --version オプションを実行すると、次の情報が表示されます。Make ユーティリティのバージョン番号メジャーバージョン番号マイナーバージョン番号パッチレベルリリース候補番号 (存在する場合)ビルドホストビルド日時


【徹底解説】GNU Makeの「-v」オプション:詳細情報表示でデバッグを極める

概要GNU Makeの「-v」オプションは、冗長モードを有効にし、Makeの処理過程における詳細情報を表示します。これは、Makeの動作を理解したり、デバッグしたりする際に役立ちます。表示内容「-v」オプションを指定すると、Makeは以下の情報を表示します。