같은 것을 포함한다. 고전적인 표기법에서
, 그 같은 것입니다 :
# Not functional — see discussion
.SUFFIXES: .in # Add .in as a suffix
M4 = m4
M4FLAGS =
M4SCRIPT = xyz.m4
.in:
${M4} ${M4FLAGS} ${M4SCRIPT} $< > $*
이 인식 된 접미사로 .in
을 추가하고 당신이 지정된 명령을 사용하지 않고 파일에 .in
접미사 파일을 변환 말한다 3 개의 매크로로 $<
은 확장명이 .in
인 파일의 이름입니다. $*
은 확장자가없는 파일의 이름입니다.
변환 할 파일이 xyz.in
과 같은 이름이고 xyz
으로 변환해야하는 경우에만 해당 표기법이 작동합니다. xyz.h.in
을 xyz.h
으로 변환해야하는 경우에는 작동하지 않습니다.
접미사가 .h.in
및 .h
, 그러나 .h.in.h:
및 make
와 두 시작 사이의 변환에 대한 규칙 혼란 도착를되도록 지정하는 것이 가능하다. GNU 만들 그러나
이를 수용 할 수있는 접미사 규칙을 정의하기위한 대안 표기법이 있습니다
.SUFFIXES: .h.in .h # Add .h.in and .h as suffixes
M4 = m4
M4FLAGS =
M4SCRIPT = xyz.m4
%.h: %.h.in
${M4} ${M4FLAGS} ${M4SCRIPT} $< > $*.h
%.h: %.h.in
라인은 두 개의 점으로 접미사를 처리 할 수 있습니다. 유일한 불편은 .c.in
또는 .y.in
또는 .mk.in
과 같은 각 확장에 대해 비슷한 매핑을 제공해야한다는 것입니다.
(맥 OS X 10.7.4에서 테스트. 그 메이크 xyz.mk
경우, 당신은 빈 파일 xyz.h.in
을 만든 다음 make -n -f xyz.mk xyz.h
을 실행하고 빌드 명령 m4 xyz.m4 xyz.h.in > xyz.h
을 실행하는 것입니다 볼 수 있습니다.)
대답 아마 네,하지만 우리 중 일부는 m4에 익숙하지 않습니다. 지금 사용하고있는 (최소한의) 메이크 파일을 보여줄 수 있습니까? – Beta
안녕하세요, 현재 사용중인 메이크 파일의 관련 섹션을 추가했습니다. – jira