Компиляция приложений и создание пакетов для MotoMAGX

Этот мануал я написал когда-то давно, специально для форума MotoFan.Ru. Он поможет собрать, протестировать и создать пакет приложения для телефона, основанного на платформе MotoMAGX.



Для портирования и сборки приложений для нашей платформы, в первую очередь нам нужны:

  1. Компьютер с дистрибутивом GNU/Linux или MS Windows с установленной программой виртуализации VirtualBox или VMware Player. В крайнем случае под MS Windows можно воспользоваться AndLinux’ом или Cygwin’ом;
  2. SDK & Toolchain’s для MotoMAGX + исходники необходимых программ или приложений;
  3. Разработчик или начинающий программист (1 штука).

Я рассмотрю наиболее приемлемый многим начинающим разработчикам способ, с использованием популярного дистрибутива GNU/Linux (Ubuntu 11) в виртуальной машине VMware Player в MS Windows. Те пользователи, у которых уже стоит GNU/Linux на компьютере, могут скачать SDK & Toolchain’s и сразу перескочить на пункт #4. Итак, начнём, благословясь!

1. Загрузка необходимых для разработки инструментов и файлов

1.1. Скачиваем ISO-образ диска с Ubuntu 11. Я качал себе в городской сетке с огромной скоростью, посмотрите в своих тоже, может найдёте. На всякий случай, ссылка: [Download | Скачать] на скачивание с официального сайта. Там вы можете выбрать любую конфигурацию под архитектуру своего процессора (x86_64/x64). Лично я советую именно 32-битную сборку.
1.2. Скачиваем VMware Player. Скачать можно с официального сайта: [Download | Скачать], или тут: [Mirror | Зеркало].
1.3. Скачиваем SDK & Toolchain’s для MotoMAGX. [Download | Скачать] — полная версия, включающая в себя два SDK: от испанцев и от Ant-ON‘a) а так же Python, BennuGD, Boost и множество других библиотек. Инструкция по установке есть внутри или ниже можно прочитать подробно. Тем, кто хочет разрабатывать приложения на SDL, можно скачать небольшой SDK для сборки приложений: [Download | Скачать], [Mirror | Зеркало]. Подробности и дополнительные ссылки на зеркала и последний SDK можно получить здесь.

2. Мануалы по установке VMware Player, Ubuntu 11 и SDK & Toolchain’s в картинках

Картинки лучше всего открывать в новом окне, нажав колёсико мышки (или среднюю кнопку). После открытия воспользуйтесь масштабированием в браузере или, например, в стандартном просмотрщике картинок.

2.1. Установка программы виртуализации VMware Player для самых маленьких.
2.2. Установка GNU/Linux в программу VMware, на примере Ubuntu 11.
2.3. Установка дополнительных инструментов (VMware Tools) в Ubuntu 11. Необходимо для перемещения файлов между Ubuntu в виртуальной машине и MS Windows (хостовая система).



Слева направо: 2.1, 2.2, 2.3.

3. Мануал по установке VMware Tools текстом

3.1. Установка VMware Tools для Ubuntu 11

3.1.1. Стартуем Ubuntu 11, вверху нажимаем «Virtual Machine», затем «Install VMware Tools…».
3.1.2. Ждём загрузки инструментов (требуется подключение к интернету), затем снова вверху нажимаем «Virtual Machine» => «Install VMware Tools…».
3.1.3. С открывшегося диска копируем архив в формате TAR.GZ например в /home/user/ (user — ваше имя при установке Ubuntu 11), распаковываем его.
3.1.4. Запускаем терминал и выполняем в нём следующее:

После команды sudo надо ввести пароль, который вы указывали при установке Ubuntu.
3.1.5. Умный скрипт сам предложит вам вводить нужные значения (написанные в квадратных скобках), вводите их или нажимайте клавишу «Enter».
3.1.6. После успешной установки инструментов перезагрузите виртуальную машину.
3.1.7. Данные инструменты помогут с лёгкостью переносить файлы из MS Windows в Ubuntu, просто копируя их или перенося из окна в окно, как вы это делали в Windows. Кроме того, появится множество разрешений для экрана системы.

3.2. Общие папки между системами для обмена файлами

3.2.1. Стартуем Ubuntu 11, вверху нажимаем «Virtual Machine», затем «Virtual Machine Settings».
3.2.2. Переходим на вкладку «Options», выбираем «Shared Folders».
3.2.3. Переключатель «Folder sharing» ставим в положение «Always enabled», нажимаем кнопку «Add».
3.2.4. На хостовом компьютере выбираем любую папку, добавляем её, жмём ОК.
3.2.5. Теперь в Ubuntu 11, в папке /mnt/hgfs/ видим добавленную нами папку из MS Windows.

4. Установка SDK & Toolchain’s

4.1. Скачиваем архив SDK с расширением TAR.GZ, перемещаем его в папку /home/user/ (user — ник при установке Ubuntu 11).
4.2. Выполняем команды, новая строка — «Enter», вместо user, естественно, пишем своё имя, после команды sudo потребуется ввести пароль, который мы указывали при установке Ubuntu 11.

4.3. Обратите внимание на имя скаченного вами архива SDK. Именно его нужно вводить в девятой строке кода, приведённого выше.
4.4. Установленный SDK выглядит так:



5. Запуск окружения, компиляция программ и HelloWorld’ов

5.1. Окружение для сборки

Чтобы запустить окружение для компиляции под MotoMAGX, достаточно выполнить в терминале следующее:

После этого, компиляторы, библиотеки и заголовочные будут браться из нашего SDK, а не из дебрей системы.

5.2. HelloWorld на языке программирования C

5.2.1. Создаём пустой файл с именем hello.c в папке /home/z6/ (правой клавишей по пустому месту, «Create Document» => «Empty File»).
5.2.2. Редактируем его содержимое следующим образом, сохраняем:

5.2.3. Компилируем:

5.2.4. Полученный исполнительный файл hello кидаем на телефон или карту памяти и запускаем через Telnet:

5.3. Работа с утилитой make и SDL-библиотекой

Утилита make позволяет компилировать достаточно сложные проекты. Подробнее об этом тут.
5.3.1. Скачиваем следующие исходники, распаковываем в папку /home/z6/: [Download | Скачать].
5.3.2. Запускаем терминал и окружение для компиляции, переходим в папку с проектом, выполняем команду make:

После выполнения команды будет выполнена компиляция проекта и создан MGX-пакет. Для очистки проекта от скомпилированного объектного кода и исполнительных бинарников, следует выполнить make clean, а для создания MGX-пакета — команду make mgx.
5.3.3. Теперь можно кинуть пакет на карту памяти и попробовать запустить (для SDL-приложений вам потребуются установленные SDL-библиотеки).
5.3.4. Структура простейшего Makefile для компиляции HelloWorld’a:

Если положить данный Makefile рядом с файлом hello.c, и выполнить make, получим исполнительный файл.
5.3.5. Замена строк, для портирования SDL-приложений:

5.4. Работа со скриптом configure и SDL-библиотекой

Скрипт configure создаёт Makefile и позволяет компилировать сложные проекты, состоящие из множества файлов. Подробнее можно прочитать тут.
5.4.1. Пример работы. Скачиваем исходники, распаковываем в папку /home/z6/: [Download | Скачать].
5.4.2. Выполняем следующее:

После этих команд у нас появятся исполнительные файлы Fire и Tunnel. Копируем их в корень карты памяти телефона.
5.4.3. Запускаем эти файлы через Telnet следующим образом:

5.4.4. Для установки файлов в нужную директорию используется prefix и команда make install:

После этого нужные нам файлы будут в папке /home/z6/test/.
5.4.5. Для чистки объектного кода и бинарников используется команда make clean, a для удаления сконфигурированных Makefile‘ов используется команда make distclean (полная очистка).

5.5. Дебаггер «Segmentation fault»

5.5.1. Качаем motomagx debug tools и распаковываем архив на карту памяти, в папку /mmc/mmca1/games/. Исполнительные файлы должны быть собраны с флагом компилятора -g и не должны быть пострипаны.
5.5.2. Выполняем (gdb):

5.5.3 Выполняем (strace):

5.6. Скрипт запуска для SDL-приложений

5.6.1. Если нужен вывод лога в файл, заменяем последнюю строку в скрипте на:

5.7. HelloWorld с использованием GUI и функций телефона

5.7.1. Скачиваем архив, распаковываем в /home/z6/: [Download | Скачать].
5.7.2. Выполняем:

или просто make.
5.7.3. Кидаем исполнительные файлы на телефон и пробуем запустить, должно получиться что-то типа этого:



5.8. Собираем MgxBox

5.8.1. Скачиваем архив, распаковываем в /home/z6/: [Download | Скачать].
5.8.2. Выполняем:

5.8.3. Кидаем папку /home/z6/MgxBox/Release/ на телефон и пробуем запустить бинарник в папке Release/app/, если всё нормально, то на экране телефона будет отображено главное окно MgxBox:



6. Создание пакетов вручную

6.1. Создание MGX-пакета

6.1.1. Создаём папку, помещаем в нее необходимые файлы (Data-файлы приложения, исполнительные файлы, скрипт запуска, иконку).
6.1.2. Создаём в папке файл Имя_папки.cfg, редактируем его содержимое следующим образом:

Где, Name — имя программы, Exec — запускаемый файл, Icon — иконка, Author — автор программы, Version — версия программы и Comment — комментарий.
6.1.3. Запаковываем папку в любой удобный вам архив (RAR, TAR, GZ, 7Z, ZIP), и переименовываем в Имя_программы.mgx.

6.2. Создание PEP-пакета

6.2.1. Создаём папку с именем app/, помещаем в нее необходимые файлы (Data-файлы приложения, исполнительные файлы, скрипт запуска).
6.2.2. Создаём рядом с папкой файл description.ini, редактируем его содержимое следующим образом:

Где, Name — имя программы, Exec — запускаемый файл, Icon или AniIcon или BigIcon — иконка, Author — автор программы, Version — версия программы, InstallPath — путь установки.
6.2.3. Создаём иконку, рядом с папкой app/ и description.ini.
6.2.4. Запаковываем иконку, папку app/ и description.ini в архив формата TAR, затем сжимаем его в GZ и переименовываем в Имя_программы.pep.

7. Полезные ссылки, документация, наши проекты

7.1. Исходники, сайты с исходниками

Множество интересных проектов есть на code.google.com и sf.net.
7.1.1. Исходники проектов, базирующихся на SDL:

7.1.2. Исходники проектов, базирующихся на Qt:

7.2. Документация, темы для прочтения

7.3. Различные проекты

8. Смежные мануалы

© EXL for MotoFan.Ru 27.08.2011

Dev, Manuals, MotoMAGX

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *