0
내 프로젝트의 일부로 다른 모듈의 종속성을 그래프로 작성하고 있습니다.Makefile에서 응용 프로그램을 테스트하는 방법
dependency-graph.png: dependency-graph.txt
dot -Tpng $< -o [email protected]
이 규칙은 프로그램 '도트'(graphiviz 패키지)가 있다고 가정합니다. 공동 작업자가 '도트'를 설치하지 않도록하고 싶지 않다면, 위의 규칙을 어떻게 활성화해야합니까? '점'이 설치되어 있습니까?
내가 온 옷장은 다음
GRAPH_PROGRAM = dot
PATH_DOT := $(type -p $(GRAPH_PROGRAM))
dependency-graph.png: dependency-graph.txt
ifneq (,$(findstring $(GRAPH_PROGRAM),$(PATH_DOT)))
$(GRAPH_PROGRAM) -Tpng $< -o [email protected]
else
[email protected] "The program '$(GRAPH_PROGRAM)' is not installed,"
[email protected] "so no graphics will be produced"
[email protected] "Please install it using:"
[email protected] " sudo apt-get install graphviz"
endif
하지만 그것은 단지 '다른'메시지를 출력한다. 대신
PATH_DOT := "/usr/bin/dot"
또는
PATH_DOT := ""
Sh 왜냐하면 당신이 알아야 할 것이기 때문입니다 : 왜 그 * 작동하지 않았습니까? 게시물에 넣으십시오. –
makefile에서 우리가 볼 필요가있는 부분은, 당신은 제공하지 않았다 :'dependency-graph.png'가 어떻게 목표로 사용되는지를 보여 주지만, 중요한 것은 그것이 어떻게 전제 조건으로 사용 되는가이다 : _that's_ 당신 변경해야합니다. 규칙을 지키지 않으면 상처를 입히지 않고 도트가 없으면 만들 수 없으므로 존재하지 않는다면 어떤 것이 든 필수 조건이 아닌지 확인해야합니다. – MadScientist
최소한의 예를 만드는 데 많은 도움이됩니다. 지금 확장해라. –