Makefile에서 cat을 사용하여 생성된 변수에서 문자열 교체를 수행하는 방법은 무엇입니까?

Makefile에서 cat을 사용하여 생성된 변수에서 문자열 교체를 수행하는 방법은 무엇입니까?

광산에서는 Makefile파일 내용을 기반으로 일부 변수를 할당하고 파일 내용에 대한 문자열 대체를 수행하여 새 변수를 정의하려고 합니다.

.file-a내 프로젝트 디렉토리에 다음 내용이 포함된 파일이 있습니다 .

foo-bar

Makefile모습은 다음과 같습니다.

FILE_A_NAME := .file-a
FILE_A_CONTENTS := `cat $(FILE_A_NAME)`
NEW_VAR := $(subst -,_, $(FILE_A_CONTENTS))

.PHONY: foo
foo: 
    @echo $(NEW_VAR)

make fooecho 하고 싶지만 foo_bar대신 다음과 같은 결과를 얻습니다.

cat: .file_a: No such file or directory

NEW_VAR교체가 이루어지고 있는 것 같습니다 FILE_A_NAME. 교체 작업을 수행하려면 어떻게 해야 합니까 FILE_A_CONTENTS?

답변1

shell다음을 실행하려면 이 함수를 사용해야 합니다 cat.

FILE_A_CONTENTS := $(shell cat $(FILE_A_NAME))

관련 정보