Автоматическая зависимость

У меня есть статическая библиотека под названием libunikey.laи приложение с именем ibus-unikey что ссылки на это.

Проблема в том, libunikey.la перестроен, ibus-unikey не перестроен, поэтому изменения libunikey.la не влияет на ibus-unikey,

я хочу ibus-unikey быть восстановленным (перекомпонованным) всякий раз, когда libunikey.la изменяется, как это делает зависимость от Makefile.

Как это сделать с automake, GNU autotools?

___ОБНОВЛЕНИЕ_________

Чтобы упростить задачу, реальный вопрос заключается в следующем:как я могу создать правило для принудительной перекомпиляции цели при изменении другой цели или просто файла? (с автопроизводителем)

2 ответа

Я предполагаю, что ваша исходная ситуация была в соответствии с _LDADD = -Lpath/to -lthe_dependencyтак что да, в этом случае вы исправили это (для большинства ситуаций), используя путь к .la файл.

Однако лучше всего использовать нерекурсивныйautomake, таким образом _LDADD зависимость расширена должным образом во всех случаях.

А именно, скажем, ваш бинарный файл находится в src/ и ваша библиотека находится в lib/ - если ваш текущий рабочий каталог src и вы изменили файл в lib, это не приведет к перестройке библиотеки и переустановке вашего бинарного файла, потому чтоMakefile.am зависимости не существуют.

Нашел ответ сам, просто опубликуйте этот ответ для тех, кто находится в такой же ситуации:
добавить строку в Makefile.am:

my_target_LDADD = path/to/the_dependency  

Это решит проблему.

Другие вопросы по тегам