make・Makefile - 日付を変数化


 クラウディア


1. 概要
2. 日付を変数化
3. FreeBSD
4. 参考サイト

1. 概要

 「シェル - シェルスクリプト」で、似たようなことを書きましたが。  わりとありがちなことではないかと思います。  スクリプト内で、日付を変数として扱いたいという場面。  シェルスクリプトでできたので、いざ、「Makefile」へ記述しようとしたら、シェルスクリプトの変数と「make」の変数は、違うものでありますわん。

2. 日付を変数化

 これまた「シェル - シェルスクリプト」と同じことを書きますが、「date」コマンドで、日付の部分を書式化して取得するには

$ date "+%Y%m%d"
20210729
 とやればいいので、後は変数展開させるだけのことです。

today   = $(shell date "+%Y%m%d")

default	:
	@echo $(today)
 という「Makefile」を書いて、「make」すると、下記の出力が得られます。

20250626
 「YYYY-MM-DD」の書式で書く場合は、単に間に「-」をいれるだけなので、下記のように記述します。

today   = $(shell date "+%Y-%m-%d")

default	:
	@echo $(today)

3. FreeBSD

 「FreeBSD」の場合は、書式が異なるので、下記のようになります。

today != date +%Y-%m-%d

default	:
	@echo $(today)

4. 参考サイト

 本ページは、下記のサイトを参考にさせていただきました。
Makefile の変数展開はレシピの実行前に行われる

audiobook.jp
AbemaTV 無料体験
ベルリッツ
アフィリエイトのアクセストレード
earthcar(アースカー)
ハイスピードプラン
EMEET 1
Amazonギフトカード
薬屋の独り言
5G CONNECT
健康サポート特集
EaseUS
U-NEXT
TikTok Shop 【リピート用プログラム】
JETBOY
損保との違い
サウンドハウス
それがだいじWi-Fi
葬送のフリーレン Prime Video
ネットオークションの相場、統計、価格比較といえばオークファン
【usus ウズウズ】