Forums Logo

Здравствуйте Гость ( Вход | Регистрация )

Reply to this topicStart new topicStart Poll

Каскадный · [ Стандартный ] · Линейный

> DevKit Advance, & Cygwin

Bartman89
post Среда, 30 апреля 2003, 20:48
Отправлено #21


you will be under my wheel's! YOU!
*******

Группа: Пользователи
Сообщений: 2 723
Регистрация: 04 фев. 2003
Из: Обнинск
Пользователь №: 831





спасибо


--------------------
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
arabesc
post Пятница, 02 мая 2003, 03:22
Отправлено #22


Новичок
*

Группа: Пользователи
Сообщений: 20
Регистрация: 06 апр. 2003
Из: Москва
Пользователь №: 1 674





QUOTE (Killka @ Среда, 30 Апреля 2003, 8:40)
короче у тя в бате прописана всяка фигня.
я так поняла ты хочешь скомпелировать доктора витаминкина.

тогда вот я тебе нарисовала баты для него,сначала запускаешь
mkg.bat

А почему не makefile? bat'ники проходят только на маленьких проектах, а на больших с их помощью сложно контролировать ресурсы, а также тратится слишком много времени на перекомпиляцию.

Вот пример makefile'а:

# --- --- --- #
# Makefile
# ---
MAPFILE := <Имя_Проекта>.map
TARGET_ELF := <Имя_Проекта>.elf
TARGET_BIN := <Имя_Проекта>.bin
SOURCE_DIRS := <Список_директорий_с_исходниками_через_пробел, например: ./Src>
INCLUDE_DIRS := <Список_директорий_с_хидерами_через_пробел, например: $(AGBINC) $(GNUINC)>
# ---
release: CFLAGS := -pipe -MD -c -O2 -mthumb-interwork -nostdlib -fregmove -foptimize-register-move -fverbose-asm -fbranch-count-reg -frerun-loop-opt -frerun-cse-after-loop -fgcse -finline-functions -ffunction-cse -fpeephole -freduce-all-givs -fmove-all-movables -fexpensive-optimizations -fomit-frame-pointer
# ---
debug: CFLAGS := -pipe -MD -c -O0 -mthumb-interwork -nostdlib -g -fstack-check
# ---
.PHONY: release debug clean rebuild rebuild_release rebuild_debug
# ---
release: $(TARGET_BIN)
# ---
debug: $(TARGET_BIN)
# ---
LDFLAGS += -Map $(MAPFILE) -nostartfiles \
-Ttext 0x08000000 -Tbss 0x03000000 \
-L$(GNULIB) -L$(AGBLIB) -L<Директория_с_библиотеками> \
-l<Имя_подключаемой_библиотеки> -lagbsyscall -lisagbprn

ASFLAGS := -mthumb-interwork

SEARCH := $(addsuffix /*.s, $(SOURCE_DIRS)) \
$(addsuffix /*.c, $(SOURCE_DIRS)) \
$(addsuffix /*.o, $(SOURCE_DIRS))
OBJECTS := $(wildcard $(SEARCH))
OBJECTS := $(OBJECTS:%.s=%.o)
OBJECTS := $(OBJECTS:%.c=%.o)
OBJECTS := $(notdir $(OBJECTS))
# ---
$(TARGET_BIN): $(TARGET_ELF)
objcopy -v -O binary $< $@
# ---
$(TARGET_ELF): $(OBJECTS)
@echo > $(MAPFILE)
$(CC) -g -o $@ $^ -Wl,$(LDFLAGS)
vpath %.s $(SOURCE_DIRS)
vpath %.c $(SOURCE_DIRS)
vpath %.o $(SOURCE_DIRS)
# ---
%.o: %.s
as.exe $(ASFLAGS) $(addprefix -I, $(INCLUDE_DIRS)) $(addprefix -I, $(SOURCE_DIRS)) -o $@ $<
%.o: %.c
$(CC) $(CFLAGS) $(addprefix -I, $(INCLUDE_DIRS)) $<
# ---
-include *.d
# ---
clean:
-del *.o *.d $(TARGET_ELF) $(TARGET_BIN) $(MAPFILE)
# ---
rebuild: clean release
rebuild_release: clean release
rebuild_debug: clean debug
# --- --- --- #

В угловых скобках перечислены изменяемые опции (которые должны быть без скобок).
Конечно должны быть определены системные переменные CC, AGBINC, GNUINC, AGBLIB, GNULIB и пр.

Использование:
make clean - очистить прект (от объектных и исполняемых файлов)
make release - собрать релизную версию
make debug - собрать отладочную версию
make rebuild - полностью пересобрать релизную версию
make rebuild_release - тоже самое
make rebuild_debug - тоже самое, но для отладочной версии

К вопросу о редактировании - проект на основе makefile'а можно прикрутить к VisualStudio, а взамен получить всяческие удобства по редактированию, сборке и управлению.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
KoCMoHaBT
post Пятница, 02 мая 2003, 19:17
Отправлено #23


Фанат
***

Группа: Пользователи
Сообщений: 200
Регистрация: 29 дек. 2002
Пользователь №: 301





Меня, кстати, давно удивляют два момента в фриварных GBAшных проектах -- игнорирование make и хранение данных в .h файлах.

Это какой-то странный, мистический феномен.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
arabesc
post Суббота, 03 мая 2003, 01:30
Отправлено #24


Новичок
*

Группа: Пользователи
Сообщений: 20
Регистрация: 06 апр. 2003
Из: Москва
Пользователь №: 1 674





Хранить данные в сорцах достаточно удобно - всегда можно что-нибудь ручками подправить :). Кроме того, интуитивно понятно и легко получить доступ к данным.
Возможно это уже стало неписаным стандартом.
В моём случае, правда, это были не *.h, а *.c файлы, которые собирались в отдельную библиотеку ресурсов. В хидерах были только объявления.
Обратная сторона этого подхода в том, что увеличивается време полной сборки, а компилятор может просто упасть на очередном многомегабайтном исходнике.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
KoCMoHaBT
post Суббота, 03 мая 2003, 17:25
Отправлено #25


Фанат
***

Группа: Пользователи
Сообщений: 200
Регистрация: 29 дек. 2002
Пользователь №: 301





Вот именно, что ты хранишь в .c, как положено природой. Эти-же хранят в .h и компилят какими-то .bat файлами... Странно.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
arabesc
post Воскресенье, 04 мая 2003, 02:55
Отправлено #26


Новичок
*

Группа: Пользователи
Сообщений: 20
Регистрация: 06 апр. 2003
Из: Москва
Пользователь №: 1 674





А я подумал, что речь про утилитки, конвертирующие бинарные файлы сразу в объектный код, а данные в сорцах - это совсем плохо :)
Теперь понятно.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Mugz
post Воскресенье, 04 мая 2003, 16:52
Отправлено #27


Враг народа
*******

Группа: Пользователи
Сообщений: 2 836
Регистрация: 21 нояб. 2002
Из: Москва
Пользователь №: 1





БРТМАН - тупица.

www.gbadev.org изучи его и не будешь ТУПЫЕ вопросы задавать.


--------------------
who | grep -i woman | date; cd ~; unzip; touch; strip; finger; mount; gasp; yes; uptime; umount; sleep
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
hood
post Пятница, 16 мая 2003, 04:13
Отправлено #28


Безумец
*****

Группа: Пользователи
Сообщений: 547
Регистрация: 17 дек. 2002
Пользователь №: 198





ой мля, ну вы блин даете. 2Killka - премного благодарен, на досуге проверю. 2Bartman (или 2Mugz?) - сколько еще граммов флейма нужно чтоб поставить бан?
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 чел. читают эту тему (2 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
 

Упрощённая версия Сейчас: Пт., 03 мая. 2024, 17:34
Skin Designed (c) by Rooq.net, All Rights Reserved.