2024/02/29(木) [n年前の日記]
#1 [prog] Makefile内でgccのバージョンを取得して処理を分けたい
Windows10 x64 22H2 + MinGW (gcc 6.3.0, gcc 9.2.0) の環境で、Makefile内でgccのバージョンを取得して処理を分けたいと思った。
gccのバージョンを取得するのは、以下が参考になった。
_シェルスクリプトやmakefileでのバージョン番号 x.y.z の比較 ShellScript - Qiita
gcc -dumpversion で、バージョン部分のみが取得できるらしい。
なので、Makefile内で以下を記述しておけば、gccのバージョンを GCC_VERSION という変数に入れられるはず。
ここまでできれば、ifeq - else - endif で処理を分けられそう。
gccのバージョンを取得するのは、以下が参考になった。
_シェルスクリプトやmakefileでのバージョン番号 x.y.z の比較 ShellScript - Qiita
gcc -dumpversion で、バージョン部分のみが取得できるらしい。
> gcc -dumpversion 6.3.0
なので、Makefile内で以下を記述しておけば、gccのバージョンを GCC_VERSION という変数に入れられるはず。
GCC_VERSION=$(shell gcc -dumpversion)
ここまでできれば、ifeq - else - endif で処理を分けられそう。
GCC_VERSION=$(shell gcc -dumpversion) ifeq ($(GCC_VERSION),6.3.0) # ---------------------------------------- # MinGW gcc 6.3.0 (SourceForge) glbitmfont_sample.exe: glbitmfont_sample.c glbitmfont.h Makefile gcc $< -o $@ -static -lSOIL -lglfw3dll -lopengl32 -lwinmm -lgdi32 -mwindows else # ---------------------------------------- # MinGW gcc 9.2.0 (OSDN), MSYS2 glbitmfont_sample.exe: glbitmfont_sample.c glbitmfont.h Makefile gcc $< -o $@ -static -lSOIL -lglfw3 -lopengl32 -lwinmm -lgdi32 -mwindows endif .PHONY: clean clean: rm -f *.exe *.o
[ ツッコむ ]
以上です。