대상이 X.pdf
이고 전제어가 X/X.tex
인 것으로 가정 할 때, makefile 대상의 사전 작업에서 % 기호를 다시 사용하는 방법을 배우고 싶습니다.서브 파일 이름으로 Makefile prerequesite의 퍼센트 기호를 다시 사용하십시오.
all: foo.pdf
%.pdf: %.tex
pdflatex $*.tex
내가 추가 파일 foo.tex
을 가지고, 내가 make
를 입력 할 때이 pdflatex foo.tex
을 실행하여 foo.pdf
를 만들 것입니다 :
은 내 디렉토리 구조가 변경되었습니다 :
my_dir
|- Makefile
|- foo
|- foo.tex
내가 파일
X/X.tex
것이
X.pdf
을하려고 할 때, 그것은 보이는 그런 나의 Makefile을 수정하고 싶습니다
.
나는 시도 (나는 '%/% 텍스.'foo/foo.tex
을 찾아 그것을 말할 수 으려고) 다음
all: foo.pdf
%.pdf: %/%.tex
pdflatex $*/$*.tex
그러나,이 수율 :
No rule to make target `foo.pdf', needed by `all'. Stop.
그래서 수행을 %.pdf: $*/$*.tex
.
내가 변경하는 경우 %/%.tex
foo/%.tex
에이를 것으로 예상하지만, 미래에 내가 all: foo.pdf bar.pdf
을 다하겠습니다하고 foo/foo.tex
및 bar/bar.tex
찾아야하기 때문에 나는 거기에 하드 코딩 foo
하지 않으려로 작동합니다.
저는 Makefile (다른 사람을 내 요구에 맞게 수정하는 데 경험이 많음)에 상당히 익숙하며, 절대적으로 기본적인 것을 한 적이 없기 때문에 누군가가 나에게 도움이되는 포인터를 줄 수 있다면 유망한 것으로 보이는 유일한 것들은 %
과 $*
이고, 나는 작동하지 못했다.).
이렇게해야합니다. 와일드 카드를 처리하는 것은 Make가 현저하게 나쁜 것 중 하나입니다. 그렇게 할 수는 있지만 못 생기므로 @ wisent의 해결책이 당신의 목적에 충분하다면, 아마도 그걸로 가야 할 것입니다. – Beta