알려진 디렉토리에서 알려지지 않은 파일에 대한 makefile 종속성 (문서 용)

StackOverflow https://stackoverflow.com/questions/991841

  •  13-09-2019
  •  | 
  •  

문제

빌드의 일부로 여러 HTML 파일을 생성하는 문서 파일을 처리하고 있습니다 (장당 1 파일).

HTML 파일을 사후 처리하고 다른 곳에 복사하고 싶습니다. 이러한 파일은 Docbook 소스에 의존하지만 사전에 파일 이름을 알 수 없습니다 (파일 이름은 Docbook 소스에도 의존합니다).

파일이 이미 생성 된 경우 이러한 종류의 작업이 규칙을 가지고 있습니다.

www/manual/%.html: build/manual/%.html
   postprocess "$<" "$@"

그러나 나는 어떻게 말하는지 모르겠다 make 그들이 아직 거기에 없다면 그것들을 생성하기 위해. 내가 단지 규칙을 추가한다면 www/manual/index.html, 해당 파일만이 처리 된 것은 아닙니다.

나는 내가 필요하다고 생각한다 makedepend 문서 또는 아마도 멋진 와일드 카드 트릭의 경우. 이것에 대한 해결책은 무엇입니까?

도움이 되었습니까?

해결책

나는 GNU가 여기에서 맹목적으로 생각할 것입니다. 그렇지 않은 경우, 유사한 기술은 약간 변경된 구문으로 적용되어야합니다.

그것이 나라면, 나는 위의 당신과 비슷한 규칙을 사용할 것입니다. 와일드 카드 기능

그런 다음 그 규칙을 별도의 하위 메이크 파일로 넣었습니다. 재귀 적으로 불리는

즉, 당신의 주요 makefile에서


  build:
    # do the docbook processing
    $(MAKE) -f htmlprocessmakefile

저것 MakeFile에는 생성 된 HTML 파일의 전체 목록이 표시됩니다.

다른 팁

"파일이 전혀 없다면" manual 그런 다음 디렉토리는 foo 명령을 실행하여 생성합니다.

한 가지 쉬운 가능성 (고급 Makefile 사용을 알지 못하고 불필요하게 학습 시간을 투자 할 것을 제안하지 않는다는 점을 감안할 때 해킹.) 지정된 Foo 명령은 미리 알지 못하는 파일 이름을 작성할뿐만 아니라, 또한 파일 이름을 미리 알고있는 파일 하나 (아마도 비어있는) 파일을 만들고 규칙이 실행되었는지 여부에 따라 마커로 사용할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top