141 страниц V « < 47 48 49 50 51 > »         
> Софт для Motorola ZN5 и прочих MotoMAGX (~.mgx и ~.pep), Разработка, портирование и обсуждение нативного софта
EXL
сообщение 26.8.2011, 12:34 Закрепленное сообщение!


Rock The Microphone
*******

Группа: Администратор
Сообщений: 1 899
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652





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

Изображение

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

1. Компьютер с Linux OS. Или Windows OS с установленным Virtual BOX/VMware Player, в крайнем случае под виндой можно воспользоваться AndLinux'ом или Cygwin'ом.
2. SDK & Toolchains для MotoMagX + Исходники программ/приложений.
3. Программист/Разработчик или начинающий программист (1 шт.).

Я рассмотрю наиболее приемлемый многим начинающим разработчикам способ, с использованием популярного дистрибутива Ubuntu 11 (Linux OS) в виртуальной машине VMware Player в Windows OS. Те пользователи, у которых стоит Linux OS на компе, могут скачать SDK & Toolchains | Зеркало | Зеркало | Зеркало и сразу перескочить на пункт #4.

Итак, начнём:

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

1.1. Скачиваем ISO-образ диска Ubuntu 11. Я качал себе в городской сетке, пошарьтесь в своих тоже, может найдёте. На всякий случай, ссылка: [Download | Скачать] на скачивание с официального сайта: http://www.ubuntu.com Там вы можете выбрать любую конфигурацию под свой компьютер (amd/i386) и т.д.

1.2. Скачиваем VMware Player - Скачать можно с официального сайта: [Download | Скачать] или тут: [Mirror | Зеркало]

1.3. Скачиваем SDK & Toolchains для MotoMagX. [Download | Скачать] - полная версия, включающая в себя 2 тулчейна SDL (От испанцев) + QT (От Ant-On'a) а также python, bennugd, boost и множество различных библиотек. Инструкция по установке есть внутри или ниже можно прочитать подробно.
Тем, кто хочет разрабатывать приложения на SDL, можно скачать небольшой тулчейн для сборки приложений: [Download | Скачать] [Mirror | Зеркало]

2. Мануалы по установке VMware, Ubuntu и SDK & Toolchains в картинках:*
* - картинки открывать лучше всего в новом окне, нажав колёсико мышки. После открытия воспользуйтесь масштабированием, например, в стандартном просмоторщике картинок.

2.1. Установка программы VMware для самых маленьких.
2.2. Установка Linux OS в программу VMware, на примере Ubuntu 11.
2.3. Установка дополнительных инструментов (VMware-tools) в Ubuntu 11. Необходимо для перемещения файлов между Ubuntu в виртуальной машине и виндой.

2.1.:    2.2.:    2.3.:

Прикрепленное изображение Прикрепленное изображение Прикрепленное изображение

3. Мануалы по установке, текстом.

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), распаковываем его.
3.1.4. Запускаем терминал и выполняем в нём следующее:
Код

cd /home/user/vmware-tools-distrib
sudo ./vmware-install.pl

После команды sudo надо ввести пароль, который мы указывали при установке Ubuntu.
3.1.5. Умный скрипт сам предложит вам вводить нужные значения (в квадратных скобках), вводите их.
3.1.6. После успешной установки инструментов, перезагрузите компьютер.
3.1.7. Данные инструменты помогут с лёгкостью переносить файлы из Windows в Linux 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. Теперь в Ubunte, в папке /mnt/hgfs видим добавленную нами папку из Windows.

4. Установка SDK & Toolchains.

4.1. Скачиваем архив тулчейна (*.tar.gz), перемещаем его в папку /home/user (user - ник при установке Ubuntu).
4.2. Выполняем команды, новая строка - Enter, вместо user естественно пишем своё имя, после команды sudo потребуется ввести пароль, который мы указывали при установке Ubuntu.
Код

sudo mkdir /mmc
sudo chown user -R /opt
sudo chown user -R /home
sudo chown user -R /mmc
sudo ln -s -d /opt/toolchains/motomagx/arm-eabi -t /
mkdir /opt/toolchains
mkdir /home/z6
mkdir /mmc/mmca1
tar -C /opt/toolchains -xzvf /home/user/motomagx-toolchains_12_08_2011.tar.gz
cp /opt/toolchains/motomagx/setenv-z6.sh /home/z6
cp /opt/toolchains/motomagx/setenv-z6-2.sh /home/z6

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

5. Запуск окружения, компиляция программ и helloworld'a.

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

cd /home/z6
. setenv-z6.sh

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

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

// Hello World for Motorola Magx!

#include <stdio.h>

int main(void)
{
    printf ("Hello Moto!!!\n");
    return 0;
}

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

cd /home/z6
arm-linux-gnueabi-gcc hello.c -o hello

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

Mobilinux(TM) 4.1
Welcome 2 Motorola ZN5!
[root@Symbiosis ~]
#> /mmc/mmca1/hello
Hello Moto!!!


5.3. Работа с утилитой Make* и SDL библиотекой.
* - Утилита Make позволяет компилировать достаточно сложные проекты. Подробнее тут: http://ru.wikipedia.org/wiki/Make
5.3.1. Скачиваем следующие исходники, распаковываем в папку /home/z6:
Прикрепленный файл ballgame_src.tar.gz   ( 34 килобайт ) Кол-во скачиваний: 412

5.3.2. Запускаем терминал и окружение для компиляции, переходим в папку с проектом, выполняем команду make:
Код

cd /home/z6/ballgame_src
make

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

# MakeFile for HelloWorld
# Motorola MotoMAGX

CC = arm-linux-gnueabi-gcc  
STRIP = arm-linux-gnueabi-strip
  
CFLAGS = # Необходимые флаги
LDFLAGS = # Необходимые флаги
OPTIMIZATION = -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -O2 # Оптимизация под процессор

INCLUDE = $(CFLAGS) $(OPTIMIZATION) -I/dir # Путь к нужным хэдэрам.
LIBS = $(LDFLAGS) -L/dir # Путь к нужным либам

BIN = hello # Бинарник

all:
    $(CC) -c hello.c -o hello.o $(INCLUDE)
    $(CC) -o $(BIN) hello.o $(LIBS)
    $(STRIP) $(BIN)
clean:
    rm -f ./*.o $(BIN)

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

CC:=gcc ---> CC:=arm-linux-gnueabi-gcc
cc=gcc ---> CC=arm-linux-gnueabi-gcc
cxx=g++ ---> CXX=arm-linux-gnueabi-g++
ld=ld ---> LD=arm-linux-gnueabi-ld
ar=ar ---> AR=arm-linux-gnueabi-ar
as=as---> AS=arm-linux-gnueabi-as
oc=oc ---> OC=arm-linux-gnueabi-objcopy
ranlib=ranlib ---> RANLIB=arm-linux-gnueabi-ranlib
strip=strip ---> STRIP=arm-linux-gnueabi-strip
В INCLUDE или CFLAGS добавляем `sdl-config --cflags`
В LIBS или LDFLAGS добавляем `sdl-config --libs` -lнеобходимая_библиотека


5.4. Работа с утилитой configure* и SDL библиотекой.
* - Скрипт configure создаёт Makefile и позволяет компилировать сложные проекты, состоящие из множества файлов. Подробнее тут: http://en.wikipedia.org/wiki/Configure_script
5.4.1. Пример работы. Скачиваем исходники, распаковываем в папку /home/z6:
Прикрепленный файл PTC-demos.tar.gz   ( 33.29 килобайт ) Кол-во скачиваний: 400

5.4.2. Выполняем следующее:
Код

cd /home/z6/PTC-demos
./configure --host=arm-linux-gnueabi
make

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

export LD_LIBRARY_PATH=/mmc/mmca1/games/lib:$LD_LIBRARY_PATH
chmod +x /mmc/mmca1/Fire
/mmc/mmca1/Fire

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

mkdir /home/z6/test
cd /home/z6/PTC-demos
./configure --host=arm-linux-gnueabi --prefix=/home/z6/test
make
make install

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

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

ulimit -c unlimited
./<bin_app>
Segmentation fault (core dumped)
файл <core> будет создан
../bin/gdb ./<bin_app> <core>

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

../bin/strace ./<bin_app>


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

#!/bin/sh
mypath=${0%/*}
LIBDIR1=/ezxlocal/download/mystuff/games/lib
LIBDIR2=/mmc/mmca1/games/lib
LIBDIR3=$mypath/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$LIBDIR1:$LIBDIR2:$LIBDIR3
export HOME=$mypath
export SDL_QT_INVERT_ROTATION=1
cd $mypath
sleep 1

exec $mypath/<bin_app>

5.6.1. Если нужен вывод лога в файл, заменяем последнюю строку в скрипте на
Код
exec $mypath/bin_app >$mypath/stdout.txt 2>$mypath/stderr.txt


5.7. HelloWorld с использованием GUI и функций телефона.
5.7.1. Скачиваем архив, распаковываем в /home/z6:
Прикрепленный файл Helloworld_GUI.tar.gz   ( 80.01 килобайт ) Кол-во скачиваний: 442

5.7.2. Выполняем:
Код

cd /home/z6/папка с нужным проектом
make PLATFORM=EZX-ZN5

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

5.8. Собираем MgxBox.
5.8.1. Скачиваем архив, распаковываем в /home/z6:
Прикрепленный файл MgxBox.tar.gz   ( 5.23 мегабайт ) Кол-во скачиваний: 470

5.8.2. Выполняем:
Код

cd /home/z6/MgxBox/MgxBox_GUI_ru
make PLATFORM=EZX-ZN5
cd /home/z6/MgxBox/p7zip_9.20.1
make all2
make install
cp -r /mmc/mmca1/p7zip/lib/p7zip /home/z6/MgxBox/Release/app/p7zip

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

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

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

Name = Test
Exec = run.sh
Icon = icon.png
Author = Ant-ON
Version = 1.0
Comment = Port for ZN5 by EXL

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

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

[Actions]
Silent=0
InstallApp = 1  
AddAppToMenu = 1

[InstallApp]
Name = Jump n Blob
Exec = run.sh
InstallPath = ../../mmc/mmca1/.Programs/jump_n_blob/
AppLockable = 1
Author = http://www.2d-retroperspectives.org | Philipp. Port by -=Strelok=-, EXL (c) MotoFan.Ru 08.01.2010
Version = 0.1
Daemon = 1
BigIcon= icon.png
AniIcon= icon.png
Icon= icon.png

[AddAppToMenu]
ParentFolder= root

Где, 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:
libsdl.org/games
libsdl.org/demos
http://dl.openhandhelds.org/cgi-bin/gp2x.cgi?0,0,0,0,46
http://dl.openhandhelds.org/cgi-bin/dingoo.cgi?0,0,0,0,46
7.1.2. Исходники проектов, базирующихся на QT:
http://www.elsix.org/index.php?w=browse - В основном там под Sharp Zaurus, но идеи создания приложений и сорцы найти можно.

7.2. Документация, темы для прочтения:
Пробуем портировать игры и проги сами
Разработка софта под MOTOMAGX, начну небольшой HOWTO
Компиляция нативных приложений под E6/A1200, Создание окружения для компиляции
SDL библиотека
http://plg.lrn.ru/wiki/Заглавная_Страница
http://plg.lrn.ru/doc/sdl/index.html
http://doc.qt.nokia.com

7.3. Проекты:
http://code.google.com/p/open-mgx/ - исходники программ от Ant-On'a
http://code.google.com/p/sdl-magx/ - библиотека SDL HW для MotoMAgx от Ant-On'a
http://code.google.com/p/zmessanger/ - нативная аська, автор Ant-On
http://sourceforge.net/projects/qte2console/ - qte2console от DoomChisel
http://code.google.com/p/motocakerteam/ - исходники программ от испанцев MotoCakerTeam
http://code.google.com/p/zsoft/

8. Мануалы данной темы:

Если кто не может запустить ZN5Encoder в Magic box - пост #290
Нативные заставки на основе портированных мной и Neomoto демок! - пост #291
Мануал по установке Tmake в тулчейн, и правки созданного им MakeFile - пост #484


© EXL for MotoFan.Ru 27.08.2011
Прикрепленный файл ballgame_src.tar.gz   ( 34 килобайт ) Кол-во скачиваний: 412
Прикрепленный файл PTC-demos.tar.gz   ( 33.29 килобайт ) Кол-во скачиваний: 400
Прикрепленный файл Helloworld_GUI.tar.gz   ( 80.01 килобайт ) Кол-во скачиваний: 442
Прикрепленный файл MgxBox.tar.gz   ( 5.23 мегабайт ) Кол-во скачиваний: 470
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
grizzl
сообщение 13.9.2010, 6:15


Интересующийся
**

Группа: Пользователи
Сообщений: 90
Регистрация: 29.4.2005
Пользователь №: 41 617
Модель телефона: Photon4G
Прошивка: Android 2.3.4

Рейтинг: 3



У меня тоже не открывались :) , я через PEM muPDF к расширению pdf привязал :)
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Zorge.R
сообщение 15.9.2010, 19:34


Ветеран
Group Icon

Группа: SysAdmin
Сообщений: 1 912
Регистрация: 4.10.2006
Из: рук в руки
Пользователь №: 101 800
Модель телефона: S7 EDGE
Прошивка: 1CR

Рейтинг: 2493



Claus398, где логи запуска?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 16.9.2010, 13:40


Rock The Microphone
*******

Группа: Администратор
Сообщений: 1 899
Регистрация: 12.5.2007
Из: г. Новосибирск
Пользователь №: 134 652





У нас два обновления!:
1. zTweet обновился до версии 1.1.8
Автор приложения: Zorge.R
Смотреть!

2. MPlayer от 28.08.2010
Автор приложения: youtech (lovekid)
Смотреть!
----------------------------------------------------------
Ну и раз уж на форумах полезно делиться информацией, немного поделюсь и я))
Так как часто забываю, а на форуме найти что-то легче чем в компьютере))

Мануал по установке Tmake в тулчейн, и правки созданного им MakeFile

Часто бывает, что есть некоторый набор исходных файлов, но нет ни Makefile, ни Configure, так необходимых для сборки.
Конечно true луниксоиды скажут, что Мэйкфайл нужно писать самим, но у меня не так много времени, поэтому предлагаю воспользоваться такой вот удобной утилиткой.
Для начала, скажу что этот способ тестировался на том тулчейне, установка которого описана в первом посте, на другие тулчейны знающим людям поставить tmake думаю не составит проблем.
1. Для начала качаем следующий архив:
Скачать
2. Далее в лине переходим в ту папку, где установлен тулчейн. У меня эта папка: /opt/toolchains/motomagx/arm-eabi2
в эту папку кидаем папку tmakelib из скачанного архива (В корень тулчейна)
3. Два скрипта, написанных на perl кидаем в папку bin (/opt/toolchains/motomagx/arm-eabi2/bin)
4. Ну и в скрипте запуска тулчейна (Тот скрипт, которым устанавливаете окружение. Если следовали пунктам из первого поста, то он у вас в /home/z6 , называется setenv-z6.sh) добавляем строку, можно в конец скрипта:
Код
export TMAKEPATH=$TOOLPREFIX/tmakelib/pwd/arm-linux-g++/

5. Всё, Tmake установлен! Проверяем:
5.1. Запускаем тулчейн
Код
cd /home/z6
. setenv-z6.sh

5.2. Переходим в папку с исходными файлами:
Код
cd /папка_с_вашими_исходниками/

5.3. В папке выполняем следующие команды (Должны пройти без ошибок, обратите внимание на пути):
Код
progen -o 1.pro
chmod +x /opt/toolchains/motomagx/arm-eabi2/bin/progen
chmod +x /opt/toolchains/motomagx/arm-eabi2/bin/tmake
progen -o 1.pro
tmake 1.pro -o Makefile

6. Должен создаться дефолтный Makefile, который нужно немножко поправить
Дефолтный Makefile приблизительно такой:
CODE
#######################################################################
######
# Makefile for building 1
# Generated by tmake at 20:26, 2010/09/16
# Project: 1
# Template: app
#############################################################################

####### Compiler, tools and options

CC = arm-linux-gnueabi-gcc
CXX = arm-linux-gnueabi-g++
CFLAGS = -pipe -Wall -W -O3 -DNO_DEBUG
CXXFLAGS= -pipe -DQWS -fno-exceptions -fno-rtti -Wall -W -O3 -DNO_DEBUG
INCPATH = -I$(QTDIR)/include
LINK = arm-linux-gnueabi-gcc
LFLAGS = -Wl,-rpath,$(QTDIR)/lib
LIBS = $(SUBLIBS) -L$(QTDIR)/lib -lm -lqte-mt -lezxappbase -lezxam
MOC = $(QTDIR)/bin/moc
UIC = $(QTDIR)/bin/uic

TAR = tar -cf
GZIP = gzip -9f

####### Files

HEADERS =
SOURCES = main.c
OBJECTS = main.o
INTERFACES =
UICDECLS =
UICIMPLS =
SRCMOC =
OBJMOC =
DIST =
TARGET = 1
INTERFACE_DECL_PATH = .

####### Implicit rules

.SUFFIXES: .cpp .cxx .cc .C .c

.cpp.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

.cxx.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

.cc.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

.C.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

.c.o:
$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<

####### Build rules


all: $(TARGET)

$(TARGET): $(UICDECLS) $(OBJECTS) $(OBJMOC)
$(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJMOC) $(LIBS)

moc: $(SRCMOC)

tmake: Makefile

Makefile: 1.pro
tmake 1.pro -o Makefile

dist:
$(TAR) 1.tar 1.pro $(SOURCES) $(HEADERS) $(INTERFACES) $(DIST)
$(GZIP) 1.tar

clean:
-rm -f $(OBJECTS) $(OBJMOC) $(SRCMOC) $(UICIMPLS) $(UICDECLS) $(TARGET)
-rm -f *~ core

####### Sub-libraries


###### Combined headers


####### Compile

main.o: main.c


6.1. Если вы хотите собрать SDL приложение:
Правим верхнюю часть таким образом (Можно просто заменить часть Мэйкфайла (До строки #######Files) следующим) -
Код

#############################################################################
# Makefile for building You Name Project
# Generated by tmake at 07:49, 2010/07/25
#     Project: You Name Project
#    Template: app
#############################################################################

####### Compiler, tools and options

CC    =    arm-linux-gnueabi-gcc
CXX    =    arm-linux-gnueabi-g++
CFLAGS    =    `sdl-config --cflags` -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -Os
CXXFLAGS=    `sdl-config --cflags` -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -Os
INCPATH    =    `sdl-config --cflags`
LINK    =    arm-linux-gnueabi-gcc
LFLAGS    =    `sdl-config --libs` -lSDL_ttf -lSDL_mixer -lfreetype -lSDL_image -lSDL_gfx
LIBS    =    `sdl-config --libs` -lSDL_ttf -lSDL_mixer -lfreetype -lSDL_image -lSDL_gfx
MOC    =    $(QTDIR)/bin/moc
UIC    =    $(QTDIR)/bin/uic

TAR    =    tar -cf
GZIP    =    gzip -9f

Обращаем внимание на CFLAGS, CXXFLAGS какие флаги туда поставить для корректной сборки, можно посмотреть в самих исходниках.
Например -DGP2X -DDINGOO идр. для определённой платформы/параметров итд.
-march=armv6j -mtune=arm1136jf-s -mfpu=vfp -Os - это оптимизация под наш процессор (ARM11) Спасибо за нахождение параметров Ant-On'у и XVilka
-O3 или -O2 также оптимизация, но бывает что программа/игра терминируется после неё( Мне сказали, что это как-то связано с похаканным компилятором))

6.2. Если вы хотите собрать QT приложение:
Обрезаем наш дефолтный MakeFile до строчки ###########Files
Ну и вставляем следующую конструкцию. Спасибо Ant-On'у за неё.
CODE
# App can compile for platform:

# PLATFORM=EZX-Z6

# PLATFORM=EZX-Z6W

# PLATFORM=EZX-U9

# PLATFORM=EZX-ZN5

# PLATFORM=EZX-V8

# PLATFORM=EZX-E8 (default)

# PLATFORM=EZX-VE66

# PLATFORM=EZX-EM35

#.

# For example - compile this source for Motorla ZN5:

#.

# cd /PROJECT_FOLDER/

# make clean

# make PLATFORM=EZX-ZN5

#.



######Config######

APPNAME := You_name_project

UPLOAD_PATH := /mmc/mmca1/bin/

##################



TOOLPREFIX := /opt/toolchains/motomagx/arm-eabi

ARMLIB := $(TOOLPREFIX)/arm-linux-gnueabi/lib



ifeq ($(PLATFORM),)

PLATFORM = EZX-ZN5
endif



ifeq ($(PLATFORM),EZX-Z6)

QTDIR := $(TOOLPREFIX)/lib/qt-2.3.8

EZXDIR := $(TOOLPREFIX)/lib/ezx-z6

LINKLIB := -lm -lqte-mt -lezxpm -ljpeg -lezxappbase -lezxtapi-xscale-r -llog_util -llighting

DIRECTIV := -DEZX_Z6

TARGET = $(APPNAME)_Z6

endif



ifeq ($(PLATFORM),EZX-V8)

QTDIR := $(TOOLPREFIX)/lib/qt-v8

EZXDIR := $(TOOLPREFIX)/lib/ezx-v8

LINKLIB := -lm -lqte-mt -lezxpm -lezxappbase

DIRECTIV := -DEZX_V8

TARGET = $(APPNAME)_V8

ZNEWCHECKBOX = 1

endif



ifeq ($(PLATFORM),EZX-E8)

ARMLIB := $(TOOLPREFIX)/arm-linux-gnueabi/lib_E8

QTDIR := $(TOOLPREFIX)/lib/qt-e8

EZXDIR := $(TOOLPREFIX)/lib/ezx-e8

LINKLIB := -lm -lqte-mt -lezxappbase

DIRECTIV := -DEZX_E8

TARGET = $(APPNAME)_E8

endif



ifeq ($(PLATFORM),EZX-EM30)

ARMLIB := $(TOOLPREFIX)/arm-linux-gnueabi/lib_E8

QTDIR := $(TOOLPREFIX)/lib/qt-em30

EZXDIR := $(TOOLPREFIX)/lib/ezx-em30

EZXDIR2 := $(TOOLPREFIX)/lib/ezx-e8

LINKLIB := -lm -lqte-mt -lezxappbase

DIRECTIV := -DEZX_EM30

TARGET = $(APPNAME)_EM30

endif



ifeq ($(PLATFORM),EZX-U9)

QTDIR := $(TOOLPREFIX)/lib/qt-zn5

EZXDIR := $(TOOLPREFIX)/lib/ezx-u9

EZXDIR2 := $(TOOLPREFIX)/lib/ezx-zn5

LINKLIB := -lm -lqte-mt -lezxappbase

DIRECTIV := -DEZX_U9

TARGET = $(APPNAME)_U9

endif



ifeq ($(PLATFORM),EZX-Z6W)

QTDIR := $(TOOLPREFIX)/lib/qt-z6w

EZXDIR := $(TOOLPREFIX)/lib/ezx-z6w

LINKLIB := -lm -lqte-mt -lezxappbase

DIRECTIV := -DEZX_Z6W

TARGET = $(APPNAME)_Z6W

endif



ifeq ($(PLATFORM),EZX-ZN5)

QTDIR := $(TOOLPREFIX)/lib/qt-zn5

EZXDIR := $(TOOLPREFIX)/lib/ezx-zn5

LINKLIB := -lm -lqte-mt -lezxappbase -lezxqtnapi -lezxtapi-xscale-r

DIRECTIV := -DEZX_ZN5

TARGET = $(APPNAME)_ZN5

endif



ifeq ($(PLATFORM),EZX-EM35)

ARMLIB := $(TOOLPREFIX)/arm-linux-gnueabi/lib_E8

QTDIR := $(TOOLPREFIX)/lib/qt-em35

EZXDIR := $(TOOLPREFIX)/lib/ezx-em35

LINKLIB := -lm -lqte-mt -lezxappbase

DIRECTIV := -DEZX_EM35

TARGET = $(APPNAME)_EM35

endif



ifeq ($(PLATFORM),EZX-VE66)

ARMLIB := $(TOOLPREFIX)/arm-linux-gnueabi/lib_E8

QTDIR := $(TOOLPREFIX)/lib/qt-em35

EZXDIR := $(TOOLPREFIX)/lib/ezx-ve66

LINKLIB := -lm -lqte-mt -lezxappbase

DIRECTIV := -DEZX_VE66

TARGET = $(APPNAME)_VE66

endif



CC = $(TOOLPREFIX)/bin/arm-linux-gnueabi-gcc

CXX = $(TOOLPREFIX)/bin/arm-linux-gnueabi-g++

LD = $(TOOLPREFIX)/bin/arm-linux-gnueabi-g++

STRIP = $(TOOLPREFIX)/bin/arm-linux-strip

CFLAGS = -pipe -Wall -W -O2 -DNO_DEBUG $(INCPATH)

CXXFLAGS= -pipe -DQWS -fno-exceptions -fno-rtti -Wall -W -O2 -DNO_DEBUG $(DIRECTIV) $(INCPATH)

INCPATH = -I$(QTDIR)/include -I$(EZXDIR)/include -I$(EZXDIR2)/include -I $(TOOLPREFIX)/arm-linux-gnueabi/include

LDFLAGS = -s

LINK = $(TOOLPREFIX)/bin/arm-linux-gnueabi-gcc

LFLAGS = -Wl,-rpath-link,$(EZXDIR)/lib

LIBS = $(SUBLIBS) -L$(EZXDIR)/lib -L$(EZXDIR2)/lib -L$(ARMLIB) -L$(QTDIR)/lib $(LINKLIB)

MOC = $(QTDIR)/bin/moc

UIC = $(QTDIR)/bin/uic

Правим переменную, обычно это:
Код
TOOLPREFIX := /opt/toolchains/motomagx/arm-eabi

Ну и редактируем блок EZX-ZN5

7. Собственно всё. Спасибо большое Neomoto, за то, что напомнил grin.gif

Прикрепленное изображение

Сообщение отредактировал EXL - 16.9.2010, 14:42
Прикрепленный файл Tmake.7z   ( 13.7 килобайт ) Кол-во скачиваний: 144
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Zorge.R
сообщение 18.9.2010, 7:10


Ветеран
Group Icon

Группа: SysAdmin
Сообщений: 1 912
Регистрация: 4.10.2006
Из: рук в руки
Пользователь №: 101 800
Модель телефона: S7 EDGE
Прошивка: 1CR

Рейтинг: 2493



EXL, предлагаю в шаблон темы приложений добавить

Доступность из репозитория: ДА/НЕТ

или

Доступность из репозитория: ДА/НЕТ (с dd.mm.yy)

пример

EXL: Да, конечно, добавил пункт, в последующих приложениях можно его добавлять

Сообщение отредактировал EXL - 18.9.2010, 13:12
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
grizzl
сообщение 20.9.2010, 8:03


Интересующийся
**

Группа: Пользователи
Сообщений: 90
Регистрация: 29.4.2005
Пользователь №: 41 617
Модель телефона: Photon4G
Прошивка: Android 2.3.4

Рейтинг: 3



А вообще существует ли возможность портирования icq клиентов QIP или open-source qutIM (http://qutim.org/) на нашу платформу ?:)

Сообщение отредактировал grizzl - 20.9.2010, 8:05
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Zorge.R
сообщение 20.9.2010, 8:07


Ветеран
Group Icon

Группа: SysAdmin
Сообщений: 1 912
Регистрация: 4.10.2006
Из: рук в руки
Пользователь №: 101 800
Модель телефона: S7 EDGE
Прошивка: 1CR

Рейтинг: 2493



Цитата(grizzl @ Сегодня, 12:03)
QIP
*

нет, он на WinAPI и без сорцов на сколько знаю.

Добавлено позже (20.9.2010, 12:09):
Цитата(grizzl @ Сегодня, 12:03)
open-source qutIM
*

видимо тоже нет. куте у нас инвалид по старости и душевному состоянию.

Сообщение отредактировал Zorge.R - 20.9.2010, 8:07
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
en5er
сообщение 20.9.2010, 14:18


Мастер
****

Группа: Пользователи
Сообщений: 239
Регистрация: 1.2.2006
Из: Оренбург sity
Пользователь №: 68 455
Модель телефона: V360+L7+rokr e8+xt5
Прошивка: Z-Mod E8; Outlaw1.02


Настроение:
ждёмс...



Рейтинг: 77



Zorge.R, можно сделать что-бы zPK manager работал на симбиозисе?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Programmer-tm(Мотофан.)
сообщение 20.9.2010, 17:42


СуперГуру
*******

Группа: Пользователи
Сообщений: 1 650
Регистрация: 21.3.2010
Из: Из мира сего
Пользователь №: 215 291
Модель телефона: Moto X Play
Прошивка: Модифицированная...


Настроение:
Делать невозможное возможным...



Рейтинг: 615.5



Ребят, есть такая ерунда: mplayer после прокрутки некоторых клипов может отказаться воспроизводить что либо. Или воспроизводит урывками аудио и иногда видео. Даже последняя версия так себя ведёт. Пробовал на z-mod и symbios. Может кто-то просветить по данному вопросу?

Зарание спасибо.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Nuke142
сообщение 20.9.2010, 17:59


Мастер
****

Группа: Пользователи
Сообщений: 294
Регистрация: 26.6.2009
Из: Москва
Пользователь №: 201 901
Модель телефона: ZN5

Рейтинг: 45



Последняя версия MPlayer от 28.08.2010 (Автор приложения: youtech (lovekid)) - не устанавливается корректно, валит ошибками. В результате не запускается.

EXL: Какими именно? Пробуй поставить вручную

Сообщение отредактировал EXL - 20.9.2010, 18:03
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Zorge.R
сообщение 20.9.2010, 18:37


Ветеран
Group Icon

Группа: SysAdmin
Сообщений: 1 912
Регистрация: 4.10.2006
Из: рук в руки
Пользователь №: 101 800
Модель телефона: S7 EDGE
Прошивка: 1CR

Рейтинг: 2493



Цитата(en5er @ Сегодня, 18:18)

Zorge.R, можно сделать что-бы zPK manager работал на симбиозисе?
*



Zpk

zPK работает везде, в том числе на EZX.

в теме поддержки ^ есть dev пакеты для интеграции zpk в любую прошивку любого linux moto телефона
плюс с dev пакетом идет подробнейшая инструкция на русском языке, по интеграции в прошивки и по созданию и структуре самих пакетов.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Софт для Motorola ZN5 и прочих MotoMAGX (~.mgx и ~.pep), Разработка, портирование и обсуждение нативного софта · ZN5 · Forum
 

141 страниц V « < 47 48 49 50 51 > » 
Ответ в темуСоздание новой темы
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 20.10.2018, 9:16

Форум живёт: