다른 데이터 파일의 전체 내용이되는 값인 makefile에서 즉석에서 변수를 만들려면 어떻게해야합니까?
답변
Makefile의 변수를 다른 파일의 내용으로 설정하는 것을 좋아한다고 생각합니다.
FILE=test.txt
VARIABLE=`cat $(FILE)`
target:
echo $(VARIABLE)
답변
GNU make 가정 :
file := whatever.txt
variable := $(shell cat ${file})
답변
GNU make 버전 4.2는 파일 읽기 작업을 지원하므로 Maxim Egorushkin 의 훌륭한 답변 과 관련하여 이제이 문제를 해결할 수있는 선택적 방법이 있습니다.
FILE := test.txt
variable :=$(file < $(FILE))
답변
cat
Windows에는 존재하지 않습니다. Linux 및 Windows에서 작동하는 솔루션 :
cat := $(if $(filter $(OS),Windows_NT),type,cat)
variable := $(shell $(cat) filename)
설명 : Windows에는 항상 OS
‘Windows_NT’와 동일하게 정의 된 환경 변수가있는 것 같습니다. 이런 식으로 Windows의 경우 type
명령이 사용되고 Windows cat
가 아닌 경우 에는 사용됩니다.
답변
$(file op filename)
추가 된 이후 훨씬 더 간단합니다 .
VARIABLE = $(file < my_file.txt)
매뉴얼 페이지 : https://www.gnu.org/software/make/manual/html_node/File-Function.html#index-file_002c-reading-from
답변
GNU make를 사용하는 경우이 효과를 얻는 또 다른 방법은 다른 makefile의 make “include”를 사용하는 것입니다.
Makefile에서 :
include "./MyFile.mak"
내용이 포함 된 “MyFile.mak”파일을 만듭니다.
FILE := "my file content"
FILE += "more content 1"
FILE += "more content 2"
답변
플랫폼이 지정되지 않았기 때문에 이것이 Solaris에서 작동하는 방식입니다.
VERSION:sh = cat VERSION
all:
echo $(VERSION)