Здравствуйте, LowCoder, Вы писали:
LC>Вопрос гуру make – как организовать правильно (так что би через 20 лет было не стыдно) make файл для следующего:
LC>Есть три проекта с++. Все они лежат в общей папочке. Один из проектов как бы главный и использует остальные два. Остальные два могут собираться в своих папочках в основном для исполнения UNIT тестов. Однако главная цель таки собрать основной проект для 32 и 64 платформ. Вопрос как лучше поступить — сделать основной Makefile в общей папочке и держать в каждой подпапочке свой Makefile и основной Makefile просто будет инклюдить все остальные
LC>и можно ожидать что они будут последовательно исполнятся.
makefile-ы не императивные, а декларативные: ты описываешь цели, их взаимозависимости и правила построения. make на основе этой информации строит дерево зависимостей и сам решает, что и когда строить/исполнять.
LC>Хотя как я понял цель all может быть только одна и если мы инклюдим в один файл три других то будет ругань со стороны make что мол цель all должна быть одна.
цель одна, а правил для ее постройки может быть несколько:
all:: ; @echo Hello
all:: ; @echo Goodby
$ make -f sample.gmk
Hello
Goodby
LC>Посоветуйте как сделать именно правильно. Что бы бабушка гордилась
судя по заданным вопросам и предположениям, предметом ты владеешь слабо. так что с первого раза получится плохо в любом случае