угу , уже вычитал из того дока что вы дали ссылку

только я чуть более просто описал, я еще не сильно понимаю мудреные мэйки
Код
SOURCE = $(wildcard $(addsuffix /*.c, $(SOURCE_DIRS)))
SOURCE_LIST = $(notdir $(SOURCE))
OBJECTS_LIST = $(SOURCE_LIST:.c=.o)
OBJECTS = $(addprefix obj/, $(OBJECTS_LIST))
OBJ_DIR = obj
LIST_DIR = list
OUT_DIR = out
all: create_dir ${NAME}.elf ${NAME}.hex
create_dir:
-mkdir obj
-mkdir out
-mkdir list
%.o: %.c
$(CC) -c $(CFLAGS) $< -o ${OBJ_DIR}/$@
${NAME}.elf: ${OBJECTS_LIST}
${CC} -mmcu=${CPU} -o ${OUT_DIR}/$@ ${OBJECTS} ${LDFLAGS}
${NAME}.hex: ${NAME}.elf
$(OBJCOPY) -O ihex ${OUT_DIR}/$^ ${OUT_DIR}/$@
не коряво получилось?
или практичнее в цели директории добавлять?
правда он каждый раз ругается на то что директории уже есть.
а так .. будем читать "GNU Make Программа управления компиляцией" ... для полного понимания (правда объем немалый

).
а пока перейдем к скрипту линкера и загрузчику, ... пошел искать по ним тему какую нить где спрашивать буду
Сообщение отредактировал boldgambler - Dec 10 2009, 10:37