grisha_scorpion 0 23 сентября, 2013 Опубликовано 23 сентября, 2013 · Жалоба Как прикрутить IAR к GNU make? Проблемы при составлении makefile для правильной сборки проекта. У кого есть опыт использования, делимся решениями. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 23 сентября, 2013 Опубликовано 23 сентября, 2013 · Жалоба Всё как обычно. Единственный нюанс: пути к файлам в целях для make желательно делать с обратными дробями (\) и с полным путём. Всё потому, что яровский компилятор именно в таком формате генерирует списки зависимостей. Ниже рабочий пример. Там включена многофайловая компиляция. Для компиляции каждого файла по отдельности будет чуть-чуть сложнее (если интересно, тоже могу выложить). NAME=uberdevice CC=iccstm8 LD=ilinkstm8 CFLAGS=--mfc --discard_unused_publics --silent -e --debug --code_model small --data_model medium LDFLAGS=--silent --config link.icf --map $(MAP) OBJ=$(NAME).o OUT=$(NAME).out HEX=$(NAME).hex MAP=$(NAME).map DEP=$(NAME).d SRC=$(subst /,\,$(addprefix $(CURDIR)/, $(wildcard src/*.c))) ifeq ($(DEBUG), 1) CFLAGS += -On else CFLAGS += -Ohz -DNDEBUG endif .PHONY: all clean all: $(HEX) $(HEX): $(OUT) @echo Generating HEX... @ielftool $(OUT) $(HEX) --ihex --silent $(OUT): $(OBJ) @echo Linking... @$(LD) $(OBJ) $(LDFLAGS) -o $(OUT) $(OBJ): $(SRC) @echo Compiling... @$(CC) $(SRC) $(CFLAGS) --dependencies=m $(DEP) -o $(OBJ) clean: @rm -f $(NAME).* @echo Done cleaning -include $(DEP) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KRS 1 23 сентября, 2013 Опубликовано 23 сентября, 2013 · Жалоба А Вам на каком уровне надо? полноценный makefile или просто что бы через консоль собиралось? если просто через консоль, так IarBuild есть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
grisha_scorpion 0 23 сентября, 2013 Опубликовано 23 сентября, 2013 (изменено) · Жалоба А Вам на каком уровне надо? полноценный makefile или просто что бы через консоль собиралось? если просто через консоль, так IarBuild есть. Меня интересует полноценный makefile. Про IarBuild тоже будет интересно узнать что это. Всё как обычно. Единственный нюанс: пути к файлам в целях для make желательно делать с обратными дробями (\) и с полным путём. Всё потому, что яровский компилятор именно в таком формате генерирует списки зависимостей. Ниже рабочий пример. Там включена многофайловая компиляция. Для компиляции каждого файла по отдельности будет чуть-чуть сложнее (если интересно, тоже могу выложить). NAME=uberdevice CC=iccstm8 LD=ilinkstm8 ....... А как это прикрутить в CodeBlocks или в Eclipse? Или что то лучшее предложите? А IAR не формирует автоматом makefile? То есть допустим ты в IARе создал проект, выбрал все настройки и после сборки формируется файл(makefile) в какой-нибудь папочке.Если есть допустим такая реализация, то будет проще на основе этого создать свой универсальный makefile и разобраться во всём этом. Изменено 23 сентября, 2013 пользователем grisha_scorpion Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 23 сентября, 2013 Опубликовано 23 сентября, 2013 · Жалоба Меня интересует полноценный makefile. Про IarBuild тоже будет интересно узнать что это. Видимо, в порядке обучения. Вообще Makefile может иметь следующие преимущества: - настройки компилятора и линкера чётко прописаны (не нужно гоняться за галочками в IDE, если что-то пошло не так) - если в процессе сборки нужно подтягивать файлы ресурсов (веб-страницы, шрифты), то это делается легко - make умеет раскидывать компиляцию на несколько процессоров (make -j4), что приятно - ну и т.д. Недостаток, естественно, состоит в том, что надо учиться. А как это прикрутить в CodeBlocks или в Eclipse? Или что то лучшее предложите? Этими программами не пользуюсь. Видел, правда, что в Eclipse можно указать свой Makefile. А IAR не формирует автоматом makefile? Нет, не формирует. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KRS 1 23 сентября, 2013 Опубликовано 23 сентября, 2013 · Жалоба Про IarBuild тоже будет интересно узнать что это. IarBuild это программа которую использует сам IAR для сборки проекта. Т.е. если вы пользуетесь средой IAR, создали проект, то при сборке IAR запускает IarBuild. Справку можно получить просто запустив. Это полезно только в том случае если вы и так пользуетесь IAR средой, но в скрипте собирать проекты (например какие то данные генерятся). Так - это тот же эффект, если в IDE выполнить команду. или в Eclipse? Так к еклипсу родной IAR плагин есть! Там даже отладчик вроде как работает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Johnny81 0 25 сентября, 2013 Опубликовано 25 сентября, 2013 · Жалоба В консоли ИАРа можно настроить вывод команд полностью (со всеми флагами). Затем на основе этих команд конструируете мейк-файл. Кстати, мейк - довольно древняя штука, возможно лучше сразу взять что поновее и поудобней - cmake / scons / waf / ... Эклипс можно настроить так, что бы он при билде проекта выполнял команду в консоли - создаешь там мейкфайл-проект и дальше копаешься в его настройках. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться