나는 GNU Make가 지금까지 가장 일반적으로 사용된다는 것을 알고 있지만 GNU Make가 실제 사용되는 make 프로그램인지 확인하는 방법을 찾고 있습니다. Makefile에서 인쇄할 수 있는 특수 변수가 있습니까? 예를 들면 다음과 같습니다.
@echo "$(MAKE_VERSION)"
GNU Make와 다른 변형이 모두 설치되어 있으면 어떻게 됩니까?
which make
/usr/bin/make
답변1
사용:
$(MAKE) --version
여기서 일하세요. 내 결과는 다음과 같습니다
make --version
GNU Make 3.82
Built for i686-pc-linux-gnu
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
답변2
~에서GNU 제작 매뉴얼:
기본적으로 make는 makefile을 찾을 때 다음 이름을 순서대로 시도합니다: GNUmakefile, makefile 및 Makefile.
따라서 make 파일의 이름을 지정하면 GNUmakefile
GNU make에서만 읽을 수 있고 다른 make에서는 읽을 수 없음을 보장해야 합니다.
답변3
~에서여기makefile에서 이 작업을 수행하는 유일한 방법은 다음과 같습니다.
ifeq (3.81,$(firstword $(sort $(MAKE_VERSION) 3.81)))
# stuff that requires make-3.81 or higher
endif