Make-файлы управляют переменными подпроекта - PullRequest
0 голосов
/ 08 мая 2020

Я новичок в Makefiles или, по крайней мере, пишу свои собственные Makefile для того, что мне нужно, и на практике я решил переписать некоторые из моих сценариев сборки, чтобы использовать Makefiles. Итак, вот моя установка:

Бэкэнд со следующими компонентами:

  • lib (код библиотеки)
  • api
  • bot
  • база данных

et c. Я использую Makefile уровня root, чтобы запускать такие вещи, как создание всех подпроектов и их очистка.

На данный момент я использовал оболочку classi c для l oop и звонил $(MAKE) -C $$proj . Однако это не идеально. Хотя я могу жить с некоторыми компромиссами, мой настоящий вопрос заключается в том, чтобы заставить переменные проекта работать.

Я хочу иметь переменные COMPONENT_NAME и COMPONENT_FILES в каждом компоненте, поэтому для lib COMPONENT_NAME будет «Библиотека для xyz ".

lib(lib/Makefile):

COMPONENT_NAME = "Library for xyz"

bot(bot/Makefile):

COMPONENT_NAME = "An awesome Bot"

Итак, если я включу оба этих файла в файл root, последний включаемый файл получит имя компонента et c.

Я хочу достичь каждого компонента, который я хочу прочитать в их Makefile, и в зависимости от их настроек я хочу выполнить действие. Что-то вроде этого (я знаю, что это недействительный файл Makefile)

lib api bot:
   include $@/Makefile
   # Work with COMPONENT_NAME

Любая помощь о том, как заставить эти Компоненты работать, было бы здорово. Я хотел бы иметь возможность создавать каждый компонент отдельно, но также использовать Makefile верхнего уровня для создания всех из них.

Заранее спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...