2012-10-06 2 views
0


나는 다음과 같은 구조로 프로젝트의 저장소가 프로젝트 :를 사용하여 상위 디렉토리가

 
repo/ 
    configure.ac 
    Makefile.am 
    project1/ 
    configure.ac 
    Makefile.am 
    [sources] 
    project2/ 
    configure.ac 
    Makefile.am 
    [sources] 
    project3/ 
    configure.ac 
    Makefile.am 
    [sources] 

그리고 지금은 디렉토리를 추가 할 필요가 repo/에 어떻게 든 project1project2을 수정 (common_logic/ 말할 수 있습니다) common_logic의 출처를 사용합니다. 내가 볼 수있는 솔루션

하나는 ./configure 후 사본 ../common_logic/ 이다 project1/ 실행 및 Makefile.am에 추가 할 다음 행 (또는 메이크의 모든 규칙 전) :

 
project1_la_CFLAGS += -I./common_logic 

project1_la_SOURCES += ./common_logic/foo.h ./common_logic/foo.c 

이 경우 어느 쪽도 없습니다 make 또는 make dist이 깨졌습니다. 그러나 그것은 나에게 목발처럼 보인다.

어쨌든 project1project2을 새로 생성 된 폴더를 사용하도록 수정해야한다고 말씀해 주시겠습니까? 아니면 다른 솔루션을 가리 킵니까?

답변

1

는 아마도 common_logic에서 편의 라이브러리를 구축하는 것이 가장 좋습니다 :

noinst_LTLIBRARIES = libcommonlogic.la 
libcommonlogic_la_SOURCES = foo.c foo.h 

그런 다음, project1Makefile.am에 :

project1_la_LIBADD = ../common_logic/libcommonlogic.la 
+0

이 유념하라 - PLACE_ 빌드에 대한 솔루션입니다. 그러나'make dist'는 망가질 것입니다, 맞습니까? – ilardm

+0

맞지 않습니다. 'libcommonlogic.la'는'$ (top_builddir)/common_logic /'에 만들어 질 것이고,'project1.la' 빌드는'$ (top_builddir)/project1'의 작업 디렉토리를 가지기 때문에'make dist '가 작동 할 것입니다. 따라서 경로는 서로 상대적으로 동일하게 유지됩니다. – ptomato

+0

하지만 당신이 나를 믿지 않는다면, 그냥 시도해보십시오 - 내가 잘못 될 수 있습니다 ;-) – ptomato

관련 문제