Да нет, правда. Просто, наверное мне нужно было сразу расставить точки над ё... Что я собственно хочу от Makefile, от Keil и от них, вместе взятых. Хочу просто универсальный Makefile, никак явно не привязаный к конкретному проекту.
Список файлов, требующих компиляции, определяется так:
SOURCES := $(wildcard *.c) OBJECTS = $(SOURCES:.c=$(OBJSUFFIX))После чего идут правила, подобные этому:
%$(OBJSUFFIX): %.c $(CC) -c $(ALL_CFLAGS) $< -o $@Это запуск не-Keil компилятора, но это не важно. И самое главное - нигде не указываются имена файлов конкретного проекта, что и дает универсальность. От проекта к проекту меняется только главная TARGET и глобальные опции компилятора/ассемблера/линкера. Что дает универсальность - не неужно менять Makefile при реорганизации проекта (добавлении/удалении/переименовании файлов). Makefile не большой по размеру и его не сложно сопровождать. Аналогично происходит и с зависимостями от заголовочных фалов - я пользуюсь makedepend от X.org для автоматического построения зависимостей, без привязки к компилятору. Так вот я и говорю, что в эту концепцию плохо вписывается Keil. Вписывается, но плохо. По-этому ваш пример моих требований и не выполняет.
-
- универсальность имеет свою цену и свои ограничения - bialix(04.03.2006 18:14, )