30 сентября 2008 г. 18:50 пользователь Dmitry E. Oboukhov написал: > DF>>> http://makepp.sourceforge.net/
> кстати ковыряясь с многими deb-пакетами натыкался на рекурсии в make > в 100% случаев введением дополнительных целей или зависимостей рекурсии > отлично убирались > может кто-то показать мне make-задачу/случай нерешабельный без > рекурсивного перевызова того же make? Оно решабельно без рекурсии, но я не хочу решать это таким способом. 0. Мои makefiles "гладкие", все общие правила и определения переменных вынесены во включаемые defs.make и rules.make и они параметризуются использующим их Makefile через определения управляющих переменных. 1. Каждый непустой подкаталог проекта имеет свой makefile со своими особенностями (типом подпроекта) и мне нужны пространства имен для управляющих переменных. Для обычного (традиционного) make я не вижу другого способа, кроме рекурсивного вызова make. 2. Я не хочу засорять корневой makefile проекта явным включением makefiles подкаталогов, делая как бы namespace префиксами в именах переменных да и вручную перечислять файлы я тоже не хочу. И так, решается это всё одним из следующих способов: 0. Рекурсивно вызываем make. Признано вредным. 1. Генерим Makefiles. Но тогда мы неправильно выбрали инструмент и этот make не нужен, а нужен тот язык, из которого makefiles генерятся. Причем тут make вообще? 2. Используем другие make-подобные утилиты: SCons, makepp, ... где можно без рекурсии и есть namespaces.