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

2024-04-02

GNU Make の --version オプション

コマンドラインから実行する

コマンドラインから --version オプションを実行すると、次の情報が表示されます。

  • Make ユーティリティのバージョン番号
  • メジャーバージョン番号
  • マイナーバージョン番号
  • パッチレベル
  • リリース候補番号 (存在する場合)
  • ビルドホスト
  • ビルド日時
$ make --version

GNU Make 4.3

Copyright (C) 1988-2023 Free Software Foundation, Inc.

This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Richard Stallman and Roland McGrath.

Built for x86_64-pc-linux-gnu

Host: x86_64-pc-linux-gnu

Compiled on: Thu Apr  6 17:57:59 2023

Make ファイル内で --version オプションを使用すると、Make ユーティリティのバージョン情報に基づいて条件付きの処理を実行できます。例えば、次の Make ファイルは、Make ユーティリティのバージョンが 4.3 以上である場合にのみ、foo というターゲットをビルドします。

ifeq ($(shell make --version | grep -E '^[4]\.[3]'),)

foo:

    echo "Building foo..."

endif

東京旅行 3 日間プラン

東京は、日本国の首都であり、世界で最も人口の多い都市の 1 つです。東京には、歴史的な寺院や神社、近代的な高層ビル、活気のあるショッピング街など、さまざまな観光スポットがあります。

ここでは、東京旅行 3 日間のプランをご紹介します。

1 日目

  • 午前: 皇居外苑を散策。皇居は、日本の天皇陛下のお住まいです。
  • 午後: 浅草寺を訪れる。浅草寺は、東京で最も古い寺院の 1 つです。
  • 夜: 新宿で食事と買い物を楽しむ。新宿は、東京で最も活気のあるエリアの 1 つです。

2 日目

  • 午前: 東京スカイツリーに登る。東京スカイツリーは、東京で最も高い建造物です。
  • 午後: 渋谷でショッピングを楽しむ。渋谷は、東京で最も流行の最先端を行くエリアの 1 つです。
  • 夜: 六本木でバーやクラブを楽しむ。六本木は、東京で最もナイトライフが活発なエリアの 1 つです。

3 日目

  • 午前: 築地市場で新鮮な魚介類を味わう。築地市場は、世界最大の魚市場の 1 つです。
  • 午後: 上野公園で散策。上野公園は、東京で最も大きな公園の 1 つです。
  • 夜: 秋葉原でアニメや漫画などのサブカルチャーを楽しむ。秋葉原は、東京で最もオタク文化が盛んなエリアの 1 つです。

このプランはあくまでも一例です。ご自身の興味や時間に合わせて、自由にプランを変更してください。

東京旅行を存分にお楽しみください!



さまざまなサンプルコード

Python

# Hello World プログラム

print("Hello, World!")

Java

public class HelloWorld {

    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

C++

#include <iostream>

int main() {
    std::cout << "Hello, World!" << std::endl;
    return 0;
}

JavaScript

console.log("Hello, World!");

PHP

<?php
    echo "Hello, World!";
?>

Ruby

puts "Hello, World!"

Go

package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
}

Swift

print("Hello, World!")

Kotlin

fun main(args: Array<String>) {
    println("Hello, World!")
}

Rust

fn main() {
    println!("Hello, World!");
}

これらのサンプルコードは、それぞれのプログラミング言語の基本的な構文を示しています。これらのコードを参考に、さまざまなプログラミング言語を試してみてください。

その他のサンプルコード

上記以外にも、さまざまなサンプルコードがインターネット上で公開されています。以下に、いくつかのサンプルコードのサイトを紹介します。

これらのサイトでは、さまざまなプログラミング言語のサンプルコードを検索することができます。また、自分のサンプルコードを公開することもできます。

さまざまなサンプルコードを参考に、プログラミングスキルを向上させていきましょう。



環境変数

Make ユーティリティのバージョン情報は、MAKEFLAGS 環境変数に設定されています。この環境変数を表示するには、次のコマンドを使用します。

$ echo $MAKEFLAGS

出力例:

-r -f Makefile

MAKEFLAGS 環境変数には、Make ユーティリティに渡されるすべてのオプションが含まれています。--version オプションは、-V という短縮形で表示されます。

Makefile ファイル

Make ユーティリティのバージョン情報は、Makefile ファイル内で取得することもできます。次のコードは、Make ユーティリティのバージョン情報を表示する Makefile ファイルの例です。

version:

    @echo "Make version: $(MAKE_VERSION)"

この Makefile ファイルを実行するには、次のコマンドを使用します。

$ make version

出力例:

Make version: 4.3

シェルスクリプト

Make ユーティリティのバージョン情報は、シェルスクリプト内で取得することもできます。次のコードは、Make ユーティリティのバージョン情報を表示するシェルスクリプトの例です。

#!/bin/bash

make --version | grep -E '^[4]\.[3]'

if [[ $? -eq 0 ]]; then
    echo "Make version is 4.3 or greater."
else
    echo "Make version is less than 4.3."
fi

このスクリプトを実行するには、次のコマンドを使用します。

$ ./version.sh

出力例:

Make version is 4.3 or greater.

これらの方法のいずれかを使用して、GNU Make のバージョン情報を取得することができます。




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

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



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

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


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

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


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

以下の例では、-C オプションを使用して、subdir ディレクトリにある Makefile を実行します。このコマンドは、現在のディレクトリではなく、subdir ディレクトリに移動し、そのディレクトリにある Makefile を実行します。



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

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


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

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


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

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


GNU Make の --no-print-directory オプション: ディレクトリ名の出力を抑制する

--no-print-directory オプションは、make が処理する各ディレクトリの名前を出力することを抑制します。これは、大量のディレクトリを処理する場合、出力を簡潔にするために役立ちます。オプションの詳細デフォルトの動作: make は、処理する各ディレクトリの名前を出力します。


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

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