Предисловие:GNU Make - ссылки на цели в другом Makefile
Да, мои Makefiles написаны плохо.
Нет, мы/не писали их; мы унаследовали эту базу кода от другой компании.
Я хочу знать, можно ли исправить мою проблему БЕЗ переписывания.
Вопрос
Есть ли способ, чтобы ссылаться на цели из другого Makefile и использовать их в качестве предварительных условий?
Скажем, у вас есть:
all: libs binary
binary: # I need to add prereqs here
blah
blah2
blah3
Для binary
, мне нужно целей в других Makefiles как PreReqs.
Я не могу просто include
эти make-файлы, и поэтому эти цели, потому что эти make-файлы определяют одинаковые переменные, но с разными значениями.
Можно ли сделать что-то вроде:
binary: C:/mk1:foo C:/mk2:bar
blah
blah2
blah3
UPDATE
В случае, если это не ясно, Makefiles C:/mk1
и C:/mk2
являются частью одного и того же Makefile проект, который выполняется с помощью какой-то сверху уровневого файла с make --jobs=X
, поэтому теоретически все make-файлы могут быть сделаны параллельно.
Короткий ответ: нет. Длинный ответ: да, но вы можете без необходимости перенастроить цели. Это приемлемо? – Beta
@Beta да. Первичная цель - минимальная модификация make-файлов, поэтому, очевидно, будет компромисс. Пожалуйста, продолжайте. – Adrian