GNU Make の --no-print-directory オプション: ディレクトリ名の出力を抑制する
GNU Make の --no-print-directory オプション
--no-print-directory
オプションは、make
が処理する各ディレクトリの名前を出力することを抑制します。これは、大量のディレクトリを処理する場合、出力を簡潔にするために役立ちます。
オプションの詳細
- デフォルトの動作:
make
は、処理する各ディレクトリの名前を出力します。
- --no-print-directory オプションを指定した場合:
make
は、ディレクトリの名前を出力しません。
- その他の関連オプション:
-s
オプション: すべてのターゲットに関するメッセージを出力しない-w
オプション: 暗黙的なルールに関する警告メッセージを出力しない
例
以下の例では、--no-print-directory
オプションを使用して、make
が処理するディレクトリの名前を出力しないようにしています。
make --no-print-directory
補足
--no-print-directory
オプションは、make
の動作をわずかに変更するだけです。- 大量のディレクトリを処理する場合、このオプションを使用すると、出力を簡潔にすることができます。
- 他のオプションと組み合わせて使用することで、さらに出力を制御することができます。
GNU Make の --no-print-directory オプションを使用したサンプルコード
以下の例では、src
ディレクトリと bin
ディレクトリ内のすべてのファイルのビルドを行います。--no-print-directory
オプションを使用することで、処理するディレクトリの名前を出力しないようにしています。
# Makefile
all:
make -C src
make -C bin
clean:
make -C src clean
make -C bin clean
サブディレクトリを再帰的に処理する場合
以下の例では、src
ディレクトリとそのサブディレクトリ内のすべてのファイルのビルドを行います。--no-print-directory
オプションを使用することで、処理するディレクトリの名前を出力しないようにしています。
# Makefile
all:
make -C src
clean:
make -C src clean
特定のディレクトリのみを処理する場合
以下の例では、src/foo
ディレクトリ内のすべてのファイルのビルドを行います。--no-print-directory
オプションを使用することで、処理するディレクトリの名前を出力しないようにしています。
# Makefile
all:
make -C src/foo
clean:
make -C src/foo clean
特定のファイルのみを処理する場合
以下の例では、src/foo.c
ファイルのみをビルドします。--no-print-directory
オプションを使用することで、処理するディレクトリの名前を出力しないようにしています。
# Makefile
all:
make -C src foo.c
clean:
make -C src clean
複数のオプションを組み合わせて使用する場合
以下の例では、-s
オプションと --no-print-directory
オプションを組み合わせて使用しています。-s
オプションは、すべてのターゲットに関するメッセージを出力しないようにします。
# Makefile
all:
make -s --no-print-directory
clean:
make -s --no-print-directory clean
環境変数を使用する場合
以下の例では、MAKEFLAGS
環境変数を使用して、--no-print-directory
オプションを常に指定するようにしています。
# Makefile
export MAKEFLAGS := --no-print-directory
all:
# ここにビルドの処理
clean:
# ここにクリーンアップの処理
補足
- 上記のサンプルコードは、あくまでも参考です。
- 実際のコードは、プロジェクトの要件に合わせて変更する必要があります。
GNU Make でディレクトリの名前を出力しないその他の方法
ターゲット名にディレクトリの名前を含めなければ、make
はディレクトリの名前を出力しません。
例
# Makefile
all:
cd src && make
clean:
cd src && make clean
.PHONY
ターゲットを使用して、ディレクトリの名前を出力しないターゲットを作成することができます。
例
# Makefile
.PHONY: all clean
all:
cd src && make
clean:
cd src && make clean
サイレントルールを使用して、特定のターゲットに関するメッセージを出力しないようにすることができます。
例
# Makefile
all:
cd src && make
clean:
cd src && make clean
silent:
@
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
@-$(silent)
上記の例では、%.o
ターゲットはサイレントルールになっています。そのため、make
はこのターゲットに関するメッセージを出力しません。
環境変数を使用する
MAKEFLAGS
環境変数を使用して、-s
オプションを常に指定するようにすることができます。
例
# Makefile
export MAKEFLAGS := -s
all:
# ここにビルドの処理
clean:
# ここにクリーンアップの処理
補足
- 上記の方法以外にも、ディレクトリの名前を出力しない方法はいくつかあります。
- 具体的な方法は、プロジェクトの要件に合わせて選択する必要があります。
GNU Make で特定の Makefile の一部のみを処理する
"-b" オプションは、コマンドラインで make コマンドを実行する際に指定します。オプションの後に、読み込むファイルの名前を指定します。例:このコマンドは、"Makefile. debug" というファイルを読み込み、その内容を Makefile として処理します。
"-w" オプションと Makefile の .SILENT ディレクティブ:徹底比較
-w オプションは、GNU Make における重要なコマンドラインオプションの一つです。このオプションは、警告メッセージの表示を制御するために使用されます。機能-w オプションには、以下の 3 つの機能があります。警告メッセージの抑制特定の警告メッセージの抑制
GNU Make の --version オプションの詳細解説
コマンドラインから --version オプションを実行すると、次の情報が表示されます。Make ユーティリティのバージョン番号メジャーバージョン番号マイナーバージョン番号パッチレベルリリース候補番号 (存在する場合)ビルドホストビルド日時
include ディレクティブを使用して作業ディレクトリを指定する
以下の例では、-C オプションを使用して、subdir ディレクトリにある Makefile を実行します。このコマンドは、現在のディレクトリではなく、subdir ディレクトリに移動し、そのディレクトリにある Makefile を実行します。
GNU Make の --quiet オプションでメッセージ出力を抑制
--quiet オプションは、以下の動作を引き起こします。ヘッダーとフッターメッセージの抑制ターゲットの更新に関する情報の抑制レシピの実行に関する情報の抑制エラーメッセージの表示--quiet オプションは、単独で使用したり、他のオプションと組み合わせて使用したりできます。たとえば、-v オプションと組み合わせて使用すると、レシピの実行に関する詳細情報のみを表示できます。
GNU Make の --version オプションの詳細解説
コマンドラインから --version オプションを実行すると、次の情報が表示されます。Make ユーティリティのバージョン番号メジャーバージョン番号マイナーバージョン番号パッチレベルリリース候補番号 (存在する場合)ビルドホストビルド日時
"-w" オプションと Makefile の .SILENT ディレクティブ:徹底比較
-w オプションは、GNU Make における重要なコマンドラインオプションの一つです。このオプションは、警告メッセージの表示を制御するために使用されます。機能-w オプションには、以下の 3 つの機能があります。警告メッセージの抑制特定の警告メッセージの抑制
include ディレクティブを使用して作業ディレクトリを指定する
以下の例では、-C オプションを使用して、subdir ディレクトリにある Makefile を実行します。このコマンドは、現在のディレクトリではなく、subdir ディレクトリに移動し、そのディレクトリにある Makefile を実行します。
GNU Make の --quiet オプションでメッセージ出力を抑制
--quiet オプションは、以下の動作を引き起こします。ヘッダーとフッターメッセージの抑制ターゲットの更新に関する情報の抑制レシピの実行に関する情報の抑制エラーメッセージの表示--quiet オプションは、単独で使用したり、他のオプションと組み合わせて使用したりできます。たとえば、-v オプションと組み合わせて使用すると、レシピの実行に関する詳細情報のみを表示できます。
GNU Make の include ディレクティブの詳細
--include-dir=dir オプションは、GNU Make に .mk ファイルの検索パスを追加するために使用されます。このオプションは、include ディレクティブで指定されたファイルが見つからない場合に役立ちます。オプションの詳細: