Мне было интересно, какие существуют разные подходы к использованию Make в проекте с подкаталогами, и каковы их преимущества/недостатки, но он никогда не сможет увидеть хорошее резюме или кулинарию.Использование GNU Make с подкаталогами
В моих исследованиях я видел в основном подходы «рекурсивный» и «единственный макияж», но есть ли другие?
Я также предполагаю, что существует не только один «рекурсивный» или «единственный макет», но и несколько, так может кто-нибудь его подвести?
Для моего конкретного случая, я хотел бы архитектуру каталогов, глядя, как это:
.
├── build
│ ├── *.d
│ ├── *.o
| ├── subdir1
| │ ├── *.d
| │ └── *.o
| └── subdir2
| ├── *.d
| ├── *.o
| └── subdir3
| ├── *.d
| └── *.o
├── include
│ ├── *.h
│ └── *.h
├── Makefile
└── src
├── *.c
├── *.h
├── subdir1
│ ├── *.c
│ └── *.h
└── subdir2
├── *.c
├── *.h
└── subdir3
├── *.c
└── *.h
Какое решение я должен выбрать? Возможно, тот, который разрешил бы исходные файлы с тем же именем?
Основные аргументы против рекурсивного дела изложены в документе [Рекурсивный взгляд на вредные последствия] (http://aegis.sourceforge.net/auug97.pdf) (pdf). [Эта страница] (http://evbergen.home.xs4all.nl/nonrecursive-make.html) говорит о внедрении нерекурсивной системы make, как это делает [Безболезненный нерекурсивный Make] (http: //www.cmcrossroads .com/article/безболезненный-нерекурсивный-make). [Multi-Architecture Builds] (http: //make.mad-scientist.net/papers/multi-architecture-builds /) В статье также есть некоторые интересные вещи, которые можно сказать по этой теме. –
Рекурсивный и одномастный файл почти полностью покрывает его, но, конечно, вы можете их смешивать - есть мастер makefile, вызывающий 'src/Makefile', который затем обрабатывает все дерево' src/'самостоятельно. – Beta
Есть аргументы в обоих направлениях. Время запуска с нерекурсивным make может быть дорогостоящим (когда я впервые построил glibc, потребовалось почти час, чтобы начать). Документы, пропагандирующие нерекурсивный характер, отвергают этот вопрос или полностью забывают упомянуть об этом. Учитывая это, вопрос не соответствует теме. –