Мой проект - это прошивка, которая имеет общую часть c logi, которая не зависит от устройства, и часть, зависящую от устройства. Теперь мне нужна одна (фальшивая) цель для создания устройства A и одна (фальшивая) цель для сборки устройства B. Обе цели в идеале должны создавать двоичный файл с одинаковым именем. Очевидно, что обе цели зависят от общего независимого от устройства кода и их собственных индивидуальных источников. target_A: $(COMMON_OBJ) $(A_OBJ)
Я пытался установить целевые зависимые переменные, но тот факт, что они оцениваются только в рецепте, делает невозможным создание списка зависимостей на основе общей переменной между целями.
Это не работает. Можно ли это объединить в одну цель / рецепт?
target_A: $(COMMON_OBJ) $(A_OBJ)
<build recipe>
target_B: $(COMMON_OBJ) $(B_OBJ)
<build recipe>
Для получения дополнительной информации: мне нравится делать Makefile достаточно простым, чтобы коллеги-инженеры могли, например, добавить еще одну цель, определить ее источники и, возможно, добавить цель или переменную в существующий список. Все это я считаю выполнимым для каждого программиста, но следует избегать написания рецептов и расширения logi c Makefiles, чтобы минимизировать вероятность ошибок, особенно для людей, не имеющих опыта работы с make.