2016-02-26 2 views
0

все.Makefile зависит от сторонних библиотек с cmake

Моя основная программа использует стороннюю библиотеку A. Основная программа использует autoconf и . Библиотека A использует cmakefile для сборки. Поскольку преобразование одного фреймворка в другое мне больно, Я хочу сохранить два разных механизма сборки.

Поскольку main зависит от libA, я сделал main зависеть от libA и libA в качестве мишени сила-сборки.

Когда я изменить исходный файл main и сделать make на main, libA получает cmake и сохранить нетронутыми, так как ни на libA изменяется, только тогда main получает строить.

При изменении исходного файла в libA и делать make на main, libA получает построить forcefuly. Но зависимость main от libA вычисляется до создания нового libA, связывание не выполняется. Теперь я делаю дважды каждый раз, чтобы безопасно добраться.

Как я могу улучшить эту сборку? Резюмируя:

  • main зависит от libA (A)
  • Когда я make после изменения исходного файла из libA, я хочу построить libA первый и построить main (B)
  • Когда я make после изменения исходного файла main, я хочу построить только main с оригиналом libA (C)
  • Когда я делаю make, ничего не делая, хочу ничего не строить. (D)

С текущей настройкой я не могу получить (B).

Любые помощь будет глубоко оценена.

ответ

1

Как насчет старого старого сценария оболочки (или файла bat, если вы оказались в Windows)? Запустите cmake для libA, запустите make for main, получите прибыль!

Вы можете использовать make как ваш пакетный двигатель, например.

all: 
     Cmake libA 
     $(MAKE) -f main.mk main 
+0

Благодарим за предложение. Однако другие сотрудники ожидают, что просто «make» будет строить. Поэтому я хочу сделать в Makefile –

+1

. Вы определенно можете использовать make как свой пакетный язык, см. Обновление –

Смежные вопросы