MakefileでFreeBSDのバージョンを確認する

MakefileでFreeBSDのバージョンを確認する

私のMakefileには次の行があります。

PLATFORM     = $(shell uname -r)
OLD_FREEBSD  = 7.3-RELEASE-p2                                                                                                                                            
ifeq ($(OLD_FREEBSD), $(findstring $(OLD_FREEBSD),$(PLATFORM)))
... 
do some stuff
...
else
... 
do some other stuff
...
endif

これは期待どおりに機能します。しかし、一部のFreeBSD 7.3イメージでは、 "uname -r"コマンドの出力が7.2-RELEASE-p2として表示されることがわかりました。なぜこれが動作するのかわかりませんが、このバリエーションを紹介する必要があります。また、このMakefile(gmakeで実行)は、最新のFreeBSDとCentOSで動作する必要があります。もしそうなら、オペレーティングシステムが7.3か7.2であるかを確認する最良の方法は何ですか?

ベストアンサー1

文字列(単語)をさまざまな文字列と比較できます。フィルター、その単語に一致するすべての項目を返します。例えば、

...
OLDER_FREEBSD  = 7.2-RELEASE-p2
M = $(filter $(PLATFORM),$(OLD_FREEBSD) $(OLDER_FREEBSD))
ifneq ($(M),)
...

おすすめ記事