2016-06-01 2 views
1

make이 올바른 순서로 정확하게 레시피를 실행하기 위해 종속성이 충분히 지정되지 않았기 때문에 make --jobs=N과 함께 실행할 수없는 makefile 세트로 구성된 프로젝트가 있습니다. 경주 조건을 얻는다).GNU make - 수정없이 비 - 병렬 makefile을 가속화합니다.

저는 Electric-Cloud.com의 Huddle을 사용하고 있습니다. 필요한 것이 정확히 있습니다. 그것은 makefile을 구문 분석 한 다음 병렬로 작업을 실행하고 불특정 종속성을 설명합니다.

질문 : 무료 또는 무료 제공 서비스가 있습니까?

예 저는 makefile을 다시 쓸 수 있지만 프로젝트 관리는 "안돼"라고 말합니다.

나는 전기 - 클라우드의 기능과 유사한 기능을 얻을 수 몇 가지 작업을해야 할 것이다 것을 이해 한

UPDATE 번호.

Electric-Cloud가 의존성을 찾기 위해 메이크 파일을 구문 분석하므로 같은 일이 makedepend을 사용하여 달성되지 않는다는 것을 알고 있습니까?

내가 생각하고 있어요 :

  1. 실행 makedepend 기존의 메이크에 include <makedepend.output>
  2. make all --jobs=64

UPDATE를 사용하여 출력

  • 피드 2

    은 밝혀 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 옵션과 호환됩니다.

  • +2

    종속성 정보를 추가하기 위해 기존 makefile을 다시 작성할 필요가 없습니다. 정보를 수동으로 지정하거나 자동으로 생성 할 수있는 경우 하나 이상의 추가 makefile에 모두 추가 할 수 있습니다. 의존성을 발견하는 것이 현명 할 수있는 것처럼 그것은 "자동"일 수 있습니다. 이것이 궁극적으로 일렉트론 클라우드가 진지한 시간과 노력을 기울여 이러한 세부 사항을 내부 프로세스 *에서 정리하는 것입니다. –

    +0

    @EtanReisner 어떻게 자동 생성합니까? – Adrian

    +0

    의존성이 무엇인지, 어떻게 발견 할 수 있는지에 따라 * 전적으로 좌우됩니다. 적어도 EC의 도구 중 일부는 문자 그대로 "열린"/ 등을 추적하여이를 파악합니다. 시스템 호출을 사용하여 프로파일을 생성하고이를 여러 가짜 모델과 실제 모델로 다시 빌드 한 다음 빌드를 재실행하여 제대로 수행 할 수 있도록합니다. 당신이 의존성을 위해 파일을 구문 분석 할 수 있다면 그것은 한 가지입니다. 당신이 그것을 (동적 플러그인, 자산 등) 그것을 위해 실행할 필요가 있다면 그것은 다른 것입니다. 여기에는 "간단한"해결책이 없습니다 (EC가 의미있는 제품을 가지고있는 이유입니다). –

    답변

    0

    저는 현재 Electric-Cloud.com의 Huddle을 사용하고 있으며, 필요한 것이 정확히 있습니다. 그것은 makefile을 구문 분석 한 다음 병렬로 작업을 실행하고 지정되지 않은 종속성을 설명합니다.

    실제로 이러한 도구에 대해 알고하지 않습니다,하지만 당신은 다양한 목표의 내부 종속성을 명확히하여 제어하는 ​​ 슈퍼 메이크, 그들을 제공 할 수

    ?

    아마도이 (임포트 된) 프로젝트 디렉토리 구조에 대한 간접 레벨을 추가해야하고 Makefile을 추가해야합니다.

    +0

    . 그러나 일렉트릭 클라우드는 아무 것도 추가하지 않고 작동한다. 나는 그런 도구를 찾고있다. – Adrian

    +0

    @Adrian 글쎄, 당신은 어떻게 든 그 도구를 위해 _main makefile_을 소개 했지, 그렇지? –

    +0

    예, 주요 메이크 파일이 있습니다. . . 그러나 내가하고있는 유일한 일은'모든 것을 만드십시오'를'모두 제물 '로 바꾸는 것입니다. Electric-Cloud보다 무료 솔루션을위한 몇 가지 추가 작업을 수행해야한다는 점을 인정합니다[email protected] EtanReisner의 주요 질문에 대한 의견은 올바른 길에 있습니다. 종속성을 자동으로 생성하고이를 내 makefile에 제공하는 도구가 필요합니다. – Adrian