make
이 올바른 순서로 정확하게 레시피를 실행하기 위해 종속성이 충분히 지정되지 않았기 때문에 make --jobs=N
과 함께 실행할 수없는 makefile 세트로 구성된 프로젝트가 있습니다. 경주 조건을 얻는다).GNU make - 수정없이 비 - 병렬 makefile을 가속화합니다.
저는 Electric-Cloud.com의 Huddle을 사용하고 있습니다. 필요한 것이 정확히 있습니다. 그것은 makefile을 구문 분석 한 다음 병렬로 작업을 실행하고 불특정 종속성을 설명합니다.
질문 : 무료 또는 무료 제공 서비스가 있습니까?
예 저는 makefile을 다시 쓸 수 있지만 프로젝트 관리는 "안돼"라고 말합니다.
나는 전기 - 클라우드의 기능과 유사한 기능을 얻을 수 몇 가지 작업을해야 할 것이다 것을 이해 한
UPDATE 번호.
Electric-Cloud가 의존성을 찾기 위해 메이크 파일을 구문 분석하므로 같은 일이 makedepend
을 사용하여 달성되지 않는다는 것을 알고 있습니까?
내가 생각하고 있어요 :
- 실행
makedepend
기존의 메이크에include <makedepend.output>
make all --jobs=64
UPDATE를 사용하여 출력
은 밝혀 makedepend
은 C/C++에 고유합니다. 소스 파일에서 사전 처리기를 실행하고 모든 #include
문을 구문 분석하기 만합니다. 내가 필요로하는 것이 아닙니다.
내가이 사람을 요구 무슨 필요 : 3
메이크 "의존성 그래프 생성기" Build a makefile dependency/inheritance tree
UPDATE 실제로 이미
http://plindenbaum.blogspot.com/2012/11/visualizing-dependencies-of-makefile.html?m=1
존재하지만은 않을거야 나를 도와주기 위해서.
내 요리법 중 많은 것들이 다른 대상의 요리법에 사용되는 디렉토리를 만들어 효과적으로 암시 적 전제 조건을 만듭니다.
위의 URL의 그래프 종속성 도구는 빌드 로그의 구문을 분석하여 작동하지만 이러한 문은 암시 적 종속성을 나타내지 않습니다.
내 메이크 파일을 --dry-run
과 함께 실행하려고해도 실행되지 않은 일부 레시피 - 마른 런이라는 이유로 - make
의 다른 호출에 '실행을 가장하는'디렉터리가 필요하므로 빌드가 실패합니다. 레시피.4 개 현지 코어, 클러스터되지 않은 - - 영원히 사람을위한 무료
UPDATE 4
전기 - 클라우드 톡했다. 또한 각 작업의 종속성을 나열하는 .xml 파일을 출력하므로 내 makefile을 호환 가능하도록 수정하여 --jobs
옵션과 호환됩니다.
종속성 정보를 추가하기 위해 기존 makefile을 다시 작성할 필요가 없습니다. 정보를 수동으로 지정하거나 자동으로 생성 할 수있는 경우 하나 이상의 추가 makefile에 모두 추가 할 수 있습니다. 의존성을 발견하는 것이 현명 할 수있는 것처럼 그것은 "자동"일 수 있습니다. 이것이 궁극적으로 일렉트론 클라우드가 진지한 시간과 노력을 기울여 이러한 세부 사항을 내부 프로세스 *에서 정리하는 것입니다. –
@EtanReisner 어떻게 자동 생성합니까? – Adrian
의존성이 무엇인지, 어떻게 발견 할 수 있는지에 따라 * 전적으로 좌우됩니다. 적어도 EC의 도구 중 일부는 문자 그대로 "열린"/ 등을 추적하여이를 파악합니다. 시스템 호출을 사용하여 프로파일을 생성하고이를 여러 가짜 모델과 실제 모델로 다시 빌드 한 다음 빌드를 재실행하여 제대로 수행 할 수 있도록합니다. 당신이 의존성을 위해 파일을 구문 분석 할 수 있다면 그것은 한 가지입니다. 당신이 그것을 (동적 플러그인, 자산 등) 그것을 위해 실행할 필요가 있다면 그것은 다른 것입니다. 여기에는 "간단한"해결책이 없습니다 (EC가 의미있는 제품을 가지고있는 이유입니다). –