2010-03-05 3 views
15

대규모 복잡한 make 파일은 읽기 및 검사가 어려울 수 있습니다. gnu make 파일을 시각화하거나 검사 할 때 어떤 도구가 좋습니까?Makefile을 검사하는 데 유용한 도구가 있습니까?

https://metacpan.org/pod/GraphViz::Makefile

+0

고양이? 적게? gvim? –

+0

가치가있는 것을 위해, 나는 단지 Mk를 사용한다. 나는 안구 플러스 편집기 콤보 ... 대부분의 사람들은 꽤 비슷한 makefile을 작성하고 익숙해진다. 이것은 machine generated makefile에 대해서는 사실이 아니지만, 아마도 make generator에 대한 입력으로 시작해야한다. – dmckee

+3

make -d (및 선택적으로 -n)를 사용하여 계속 진행중인 작업을 인쇄 할 수 있습니다.이 작업이 도움이됩니다. –

답변

8

은 메이크에서 GraphViz 수치를 구축하기위한 펄 라이브러리가있다. 대부분의 대규모 make 기반 빌드 환경은 무작위 명령, 무시 무시한 매크로 대체 및 엄청나게 컨텍스트에 종속적 인 제어 흐름으로 구성되므로 빌드를 만드는 것은 거의 불가능할 수 있습니다.

제쳐두고, 제가 시스템을 만드는 데 관여했기 때문에 제가보고있는 SCons에 대한 좋은 점을 들었습니다. 바로 시스템이 자체적으로 유지 관리의 악몽이되어 버렸기 때문입니다.

+1

비슷한 이름의 파일을 발견했으며 png 파일을 생성하는 데에도 유용합니다. http://search.cpan.org/~agent/Makefile-GraphViz-0.18/lib/Makefile/GraphViz.pm – Johnny

3

나는 메이크의 집합의 의미를 만들 수있는 도구를 알고하지 않습니다

+0

SCons는 내가 좋아하는 빌드 시스템입니다. 하지만 make는 하나의 큰 이점을 가지고 있습니다. make 파일을 빠르게 작성하여 모든 프로그램을 파일 세트에 대해 실행할 수 있습니다. SCons는 다른 빌드 작업에 다양한 플러그인을 사용합니다. 일반적인 컴파일러 용 플러그인을 포함하지만 경우에 따라 직접 작성해야 할 수도 있습니다. – mikerobi

3

--print-data-base (-p) 옵션으로 성공했습니다.

--just-print (-n, --dry-run)와 결합하여 stdout을 파일로 리디렉션하면 더 쉽게 이해할 수있는 일반 형식의 모든 규칙과 변수를 포함하는 새로운 단일 makefile이 만들어집니다.

필자는 Perl에서이 출력물을 구문 분석하여 새로운 빌드 시스템을 생성하는 데있어 정말 나쁜 makefile을 사용했습니다.

19

CPAN의 시각화기를 사용하려고했으나 실패했습니다. 그래서, 필자는 자신의 Quick-n-dirty Makefile visualizer를 작성했습니다.

당신은 그것을 시도 할 수 있습니다 : http://github.com/vak/makefile2dot

+2

내가 당신에게 +10을 주었 더라면 나는 가질 것입니다. 귀하의 솔루션은 게시 된 Perl 솔루션보다 효과적입니다. – synthesizerpatel

+0

오, 고마워, 기꺼이 도와 줬어. – vak

+0

@synthesizerpatel 어떻게 든 현상금을 게시하고 벡을 받아들 일까? – n611x007

관련 문제