Цитата(boldgambler @ Dec 9 2009, 15:06)

решил не создавать отдельную тему, тут спрошу
имеем makefile для сборки под avr
Код
...
CFLAGS = -mmcu=${CPU} -g -O0 -Wall
...
SOURCE = $(wildcard $(addsuffix /*.c, $(SOURCE_DIRS)))
OBJECTS_DIRS = $(notdir $(SOURCE))
OBJECTS = $(OBJECTS_DIRS:.c=.o)
...
${NAME}.elf: ${OBJECTS}
${CC} -mmcu=${CPU} -o $@ ${OBJECTS} ${LDFLAGS}
...
вопрос: откуда берется первая строка?
и каким образом в нее попадает CFLAGS (если его менять, то это видно) ?
ну и "-c -o" тоже нигде в makefile не встречается.
Как попросили вызвать avr-gcc, так make и сделал. Вы привели не весь makefile, в нем обычно определяется тим контроллера, его частота и флаги запуска gcc. Имеет смысл ознакомится с документацией на make, есть на русском языке перевод.
У Вас определены файлы для сборки (SOURCE), ключи компилятора (CFLAGS) и другие макро для make. Есть правило для сборки цели (${NAME}.elf: ${OBJECTS}). Все это подробно описано в документации.
Поищите по форуму, вопросы о makefile встречаются нередко.
Наука изощряет ум; ученье вострит память. Козьма Прутков