#makefile #gnu-make
#makefile #gnu-сделать #gnu-make
Вопрос:
У меня есть 3 makefile, скажем aa.mk , bb.mk и cc.mk и я могу редактировать cc.mk только.
bb.mk включает aa.mk .(используя include stmt)
cc.mk включает bb.mk .(используя include stmt)
Итак, в некотором смысле cc.mk включает aa.mk также. Я хочу отредактировать cc.mk таким образом, чтобы bb.mk включен, но не aa.mk . Другими словами, я хотел бы знать, есть ли способ, чтобы я мог удалить ссылку, сделанную на aa.mk изнутри cc.mk без редактирования aa.mk или bb.mk .
Примечание: у меня очень ограниченные знания о makefiles
Не удалось найти никакого решения.
Необходимо включить bb.mk без доступа aa.mk . Результат выводит значения из aa.mk , в то время как он должен печатать значения из cc.mk .
Комментарии:
1. Просто создайте копию bb.mk и отредактируйте его. В противном случае это невозможно, если только bb.mk уже есть какое-то предопределенное условие, которое не следует включать aa.mk .
Ответ №1:
Попробуйте -include aa.mk
в cc.mk файл.
include foo bb.mk bish bash
-include aa.mk
Комментарии:
1. Это не делает ничего похожего на то, что хотел задать вопрос.
-include
не означает «отменить включение этого файла».2. Если вы хотите, чтобы make просто игнорировал makefile, который не существует или не может быть переделан, без сообщения об ошибке, используйте директиву -include вместо include, например, так: -включить имена файлов…
3. Конечно, но это не то, что задал вопрос. В этом случае makefile определенно существует и включен
bb.mk
. Просьба состоит в том, чтобы разрешитьcc.mk
избегать включения,aa.mk
когдаbb.mk
включено: Необходимо включитьbb.mk
без доступаaa.mk