2009-08-20 3 views
1

Make-файлы действительно очень полезны. Но синтаксис несколько сложный и ограниченный. Для проекта, мне нужно создать цели 1 п, и очень хотелось бы, чтобы написать что-то вроде этого:Как сгенерировать сложные Makefiles, например. из шаблона

all : target1 ... target100 

target%d : target%d.pre 
    ./script.py %d 

Я хотел бы иметь make захват переменной (%d), а затем использовать его на протяжении всего правления. Я мог представить, что это можно сделать с помощью комплексного использования шаблонов (% .xyz) и patsubst s, но это было бы очень неудобно и нечитаемо.

Я собираюсь использовать шаблонный движок, например Cheetah, чтобы написать шаблон (который может содержать циклы), который затем будет преобразован в Makefile. Кто-нибудь имеет лучшую идею или опыт с этим?

+1

Что с целевой%: цели % .pre (возврат каретки, вкладка) ./script.py $ * – Beta

+0

ах, круто! Из чтения документов я думал, что возможны только суффиксы (% .o), но не префиксы. Ницца. :) –

ответ

0

Как бета отметил в комментарии, то вторая часть на самом деле решается

target% : target%d.pre 
    ./script.py %d 

Учитывая, что первая часть может быть решена:

files := $(shell for i in `seq 1 100`; do echo target$$i; done) 

all : $(files) 
0

Вы должны обязательно взглянуть на CMake, который может сделать все создание файла makefile для вас.

Смежные вопросы