2012-02-19 2 views
0

나는 libunikey.la이라고하는이라는 라이브러리와 ibus-unikey이라는 앱을 연결합니다. 정적 라이브러리가 있습니다. libunikey.la에 대한 변경 사항이 ibus-unikey에 적용되지 않도록 libunikey.la이 재건 될 때마다automake 종속성

문제는이, ibus-unikey는 재건되지 않습니다.

libunikey.la이 변경되면 Makefile 종속성이 수행 될 때마다 ibus-unikey을 다시 작성 (다시 링크)하고 싶습니다.

automake, GNU autotools로 어떻게 할 수 있습니까?

_ __ UPDATE __ _ __ _ ___

는 간단하게하기 위해, 진짜 질문은 : 어떻게 할 목표를 강제하는 규칙을 만들 수 다른 타겟/또는 단순히 파일이 변경되면 다시 컴파일됩니까?

+0

이것을 보여주는 최소한의 예를 만들 수 있습니까? 당신이 요구하는 것은 기본 동작입니다. – Flexo

+0

@awoodland : 질문을 업데이트했습니다.보세요. – perfwill

답변

0

대답을 내 자신의 발견 (automake가와), 그냥 같은 상황에서 사람들이 대답을 게시 :
는 Makefile.am에 줄을 추가

my_target_LDADD = path/to/the_dependency 

이 문제를 해결합니다.

1

시작 상황이 _LDADD = -Lpath/to -lthe_dependency 인 경우 가정합니다.이 경우 대부분의 상황에서 .la 파일의 경로를 사용하여 수정했습니다.

그러나 최상의 옵션은 모든 경우에 _LDADD 종속성이 올바르게 확장되도록 non-recursive automake을 사용하는 것입니다. 바이너리 현재 작업 디렉토리가 src이며 도서관이 재건되지 것입니다 원인이, lib에서 파일을 변경하고, 경우 - 즉

,의는 바이너리가 src/에 있고 라이브러리가 lib/에 가정 해 봅시다 inter-Makefile.am 종속성이 없기 때문에 다시 연결됩니다.

관련 문제