motofan logo
46 страниц V « < 27 28 29 30 31 > »         
> 

Софт для ZN5 и прочих MotoMAGX: MGX и PEP, Разработка, портирование и обсуждение нативного софта

EXL
сообщение 26.8.2011, 12:34 Закрепленное сообщение!


Rock The Microphone
********

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

Рейтинг: 4654



Мануал: Компиляция приложений для 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 килобайт ) Кол-во скачиваний: 21679

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 килобайт ) Кол-во скачиваний: 21808

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 килобайт ) Кол-во скачиваний: 21983

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 мегабайт ) Кол-во скачиваний: 23248

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
Изучение разделяемых библиотек (so) - пост #1440
Эмуляция нажатия клавиш на Motorola ZN5 - пост #1684


© EXL for MotoFan.Ru 27.08.2011
Прикрепленный файл ballgame_src.tar.gz   ( 34 килобайт ) Кол-во скачиваний: 21679
Прикрепленный файл PTC-demos.tar.gz   ( 33.29 килобайт ) Кол-во скачиваний: 21808
Прикрепленный файл Helloworld_GUI.tar.gz   ( 80.01 килобайт ) Кол-во скачиваний: 21983
Прикрепленный файл MgxBox.tar.gz   ( 5.23 мегабайт ) Кол-во скачиваний: 23248
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 21.9.2016, 20:39


Rock The Microphone
********

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

Рейтинг: 4654



Цитата(fill.sa @ Сегодня, 2:30)
* Не помогает.

Лог компиляции можно? Мне интересно, с какими параметрами вызывается GCC.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 21.9.2016, 21:09


Гуру
******

Группа: Разработчики
Сообщений: 1 240
Регистрация: 8.2.2011
Из: Беларусь
Пользователь №: 223 758
Модель телефона: z6 V8
Прошивка: Linux SAedition MOD

Рейтинг: 400



Цитата(EXL @ 21.9.2016, 21:39) *

Цитата(fill.sa @ Сегодня, 2:30)
* Не помогает.

Лог компиляции можно? Мне интересно, с какими параметрами вызывается GCC.

Весь лог чего-то невывелся в файл.
название
Код
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/arm-eabi/include/SDL -D_GNU_SOURCE=1 -DQWS -Dmain=SDL_main -DQWS -Dmain=SDL_main -D_REENTRANT -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -msoft-float -ffast-math -fomit-frame-pointer -fstrict-aliasing -mstructure-size-boundary=32 -fexpensive-optimizations -fweb -frename-registers -falign-functions=32 -falign-loops -falign-labels -falign-jumps -finline -finline-functions -fno-common -fno-builtin -Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wcast-align -Waggregate-return -c src/cdriso.cpp -o src/cdriso.o
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/arm-eabi/include/SDL -D_GNU_SOURCE=1 -DQWS -Dmain=SDL_main -DQWS -Dmain=SDL_main -D_REENTRANT -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -msoft-float -ffast-math -fomit-frame-pointer -fstrict-aliasing -mstructure-size-boundary=32 -fexpensive-optimizations -fweb -frename-registers -falign-functions=32 -falign-loops -falign-labels -falign-jumps -finline -finline-functions -fno-common -fno-builtin -Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wcast-align -Waggregate-return -c src/cdrom.cpp -o src/cdrom.o
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/arm-eabi/include/SDL -D_GNU_SOURCE=1 -DQWS -Dmain=SDL_main -DQWS -Dmain=SDL_main -D_REENTRANT -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -msoft-float -ffast-math -fomit-frame-pointer -fstrict-aliasing -mstructure-size-boundary=32 -fexpensive-optimizations -fweb -frename-registers -falign-functions=32 -falign-loops -falign-labels -falign-jumps -finline -finline-functions -fno-common -fno-builtin -Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wcast-align -Waggregate-return -c src/debug.cpp -o src/debug.o
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/arm-eabi/include/SDL -D_GNU_SOURCE=1 -DQWS -Dmain=SDL_main -DQWS -Dmain=SDL_main -D_REENTRANT -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -msoft-float -ffast-math -fomit-frame-pointer -fstrict-aliasing -mstructure-size-boundary=32 -fexpensive-optimizations -fweb -frename-registers -falign-functions=32 -falign-loops -falign-labels -falign-jumps -finline -finline-functions -fno-common -fno-builtin -Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wcast-align -Waggregate-return -c src/decode_xa.cpp -o src/decode_xa.o
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/arm-eabi/include/SDL -D_GNU_SOURCE=1 -DQWS -Dmain=SDL_main -DQWS -Dmain=SDL_main -D_REENTRANT -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -msoft-float -ffast-math -fomit-frame-pointer -fstrict-aliasing -mstructure-size-boundary=32 -fexpensive-optimizations -fweb -frename-registers -falign-functions=32 -falign-loops -falign-labels -falign-jumps -finline -finline-functions -fno-common -fno-builtin -Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wcast-align -Waggregate-return -c src/mdec.cpp -o src/mdec.o
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/arm-eabi/include/SDL -D_GNU_SOURCE=1 -DQWS -Dmain=SDL_main -DQWS -Dmain=SDL_main -D_REENTRANT -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -msoft-float -ffast-math -fomit-frame-pointer -fstrict-aliasing -mstructure-size-boundary=32 -fexpensive-optimizations -fweb -frename-registers -falign-functions=32 -falign-loops -falign-labels -falign-jumps -finline -finline-functions -fno-common -fno-builtin -Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wcast-align -Waggregate-return -c src/misc.cpp -o src/misc.o
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/arm-eabi/include/SDL -D_GNU_SOURCE=1 -DQWS -Dmain=SDL_main -DQWS -Dmain=SDL_main -D_REENTRANT -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -msoft-float -ffast-math -fomit-frame-pointer -fstrict-aliasing -mstructure-size-boundary=32 -fexpensive-optimizations -fweb -frename-registers -falign-functions=32 -falign-loops -falign-labels -falign-jumps -finline -finline-functions -fno-common -fno-builtin -Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wcast-align -Waggregate-return -c src/pad.cpp -o src/pad.o
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/arm-eabi/include/SDL -D_GNU_SOURCE=1 -DQWS -Dmain=SDL_main -DQWS -Dmain=SDL_main -D_REENTRANT -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -msoft-float -ffast-math -fomit-frame-pointer -fstrict-aliasing -mstructure-size-boundary=32 -fexpensive-optimizations -fweb -frename-registers -falign-functions=32 -falign-loops -falign-labels -falign-jumps -finline -finline-functions -fno-common -fno-builtin -Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wcast-align -Waggregate-return -c src/plugins.cpp -o src/plugins.o
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/arm-eabi/include/SDL -D_GNU_SOURCE=1 -DQWS -Dmain=SDL_main -DQWS -Dmain=SDL_main -D_REENTRANT -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -msoft-float -ffast-math -fomit-frame-pointer -fstrict-aliasing -mstructure-size-boundary=32 -fexpensive-optimizations -fweb -frename-registers -falign-functions=32 -falign-loops -falign-labels -falign-jumps -finline -finline-functions -fno-common -fno-builtin -Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wcast-align -Waggregate-return -c src/profiler.cpp -o src/profiler.o
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/arm-eabi/include/SDL -D_GNU_SOURCE=1 -DQWS -Dmain=SDL_main -DQWS -Dmain=SDL_main -D_REENTRANT -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -msoft-float -ffast-math -fomit-frame-pointer -fstrict-aliasing -mstructure-size-boundary=32 -fexpensive-optimizations -fweb -frename-registers -falign-functions=32 -falign-loops -falign-labels -falign-jumps -finline -finline-functions -fno-common -fno-builtin -Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wcast-align -Waggregate-return -c src/psxbios.cpp -o src/psxbios.o
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/arm-eabi/include/SDL -D_GNU_SOURCE=1 -DQWS -Dmain=SDL_main -DQWS -Dmain=SDL_main -D_REENTRANT -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -msoft-float -ffast-math -fomit-frame-pointer -fstrict-aliasing -mstructure-size-boundary=32 -fexpensive-optimizations -fweb -frename-registers -falign-functions=32 -falign-loops -falign-labels -falign-jumps -finline -finline-functions -fno-common -fno-builtin -Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wcast-align -Waggregate-return -c src/psxcounters.cpp -o src/psxcounters.o
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/arm-eabi/include/SDL -D_GNU_SOURCE=1 -DQWS -Dmain=SDL_main -DQWS -Dmain=SDL_main -D_REENTRANT -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -msoft-float -ffast-math -fomit-frame-pointer -fstrict-aliasing -mstructure-size-boundary=32 -fexpensive-optimizations -fweb -frename-registers -falign-functions=32 -falign-loops -falign-labels -falign-jumps -finline -finline-functions -fno-common -fno-builtin -Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wcast-align -Waggregate-return -c src/psxdma.cpp -o src/psxdma.o
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/arm-eabi/include/SDL -D_GNU_SOURCE=1 -DQWS -Dmain=SDL_main -DQWS -Dmain=SDL_main -D_REENTRANT -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -msoft-float -ffast-math -fomit-frame-pointer -fstrict-aliasing -mstructure-size-boundary=32 -fexpensive-optimizations -fweb -frename-registers -falign-functions=32 -falign-loops -falign-labels -falign-jumps -finline -finline-functions -fno-common -fno-builtin -Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wcast-align -Waggregate-return -c src/psxhle.cpp -o src/psxhle.o
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/arm-eabi/include/SDL -D_GNU_SOURCE=1 -DQWS -Dmain=SDL_main -DQWS -Dmain=SDL_main -D_REENTRANT -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -msoft-float -ffast-math -fomit-frame-pointer -fstrict-aliasing -mstructure-size-boundary=32 -fexpensive-optimizations -fweb -frename-registers -falign-functions=32 -falign-loops -falign-labels -falign-jumps -finline -finline-functions -fno-common -fno-builtin -Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wcast-align -Waggregate-return -c src/psxhw.cpp -o src/psxhw.o
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/arm-eabi/include/SDL -D_GNU_SOURCE=1 -DQWS -Dmain=SDL_main -DQWS -Dmain=SDL_main -D_REENTRANT -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -msoft-float -ffast-math -fomit-frame-pointer -fstrict-aliasing -mstructure-size-boundary=32 -fexpensive-optimizations -fweb -frename-registers -falign-functions=32 -falign-loops -falign-labels -falign-jumps -finline -finline-functions -fno-common -fno-builtin -Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wcast-align -Waggregate-return -c src/psxmem.cpp -o src/psxmem.o
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/arm-eabi/include/SDL -D_GNU_SOURCE=1 -DQWS -Dmain=SDL_main -DQWS -Dmain=SDL_main -D_REENTRANT -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -msoft-float -ffast-math -fomit-frame-pointer -fstrict-aliasing -mstructure-size-boundary=32 -fexpensive-optimizations -fweb -frename-registers -falign-functions=32 -falign-loops -falign-labels -falign-jumps -finline -finline-functions -fno-common -fno-builtin -Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wcast-align -Waggregate-return -c src/r3000a.cpp -o src/r3000a.o
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/arm-eabi/include/SDL -D_GNU_SOURCE=1 -DQWS -Dmain=SDL_main -DQWS -Dmain=SDL_main -D_REENTRANT -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -msoft-float -ffast-math -fomit-frame-pointer -fstrict-aliasing -mstructure-size-boundary=32 -fexpensive-optimizations -fweb -frename-registers -falign-functions=32 -falign-loops -falign-labels -falign-jumps -finline -finline-functions -fno-common -fno-builtin -Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wcast-align -Waggregate-return -c src/sio.cpp -o src/sio.o
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/arm-eabi/include/SDL -D_GNU_SOURCE=1 -DQWS -Dmain=SDL_main -DQWS -Dmain=SDL_main -D_REENTRANT -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -msoft-float -ffast-math -fomit-frame-pointer -fstrict-aliasing -mstructure-size-boundary=32 -fexpensive-optimizations -fweb -frename-registers -falign-functions=32 -falign-loops -falign-labels -falign-jumps -finline -finline-functions -fno-common -fno-builtin -Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wcast-align -Waggregate-return -c src/gpu/gpu_unai/gpu.cpp -o src/gpu/gpu_unai/gpu.o
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/arm-eabi/include/SDL -D_GNU_SOURCE=1 -DQWS -Dmain=SDL_main -DQWS -Dmain=SDL_main -D_REENTRANT -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -msoft-float -ffast-math -fomit-frame-pointer -fstrict-aliasing -mstructure-size-boundary=32 -fexpensive-optimizations -fweb -frename-registers -falign-functions=32 -falign-loops -falign-labels -falign-jumps -finline -finline-functions -fno-common -fno-builtin -Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wcast-align -Waggregate-return -c src/gte/gte_new/gte.cpp -o src/gte/gte_new/gte.o
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/arm-eabi/include/SDL -D_GNU_SOURCE=1 -DQWS -Dmain=SDL_main -DQWS -Dmain=SDL_main -D_REENTRANT -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -msoft-float -ffast-math -fomit-frame-pointer -fstrict-aliasing -mstructure-size-boundary=32 -fexpensive-optimizations -fweb -frename-registers -falign-functions=32 -falign-loops -falign-labels -falign-jumps -finline -finline-functions -fno-common -fno-builtin -Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wcast-align -Waggregate-return -c src/interpreter/interpreter_new/psxinterpreter.cpp -o src/interpreter/interpreter_new/psxinterpreter.o
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/arm-eabi/include/SDL -D_GNU_SOURCE=1 -DQWS -Dmain=SDL_main -DQWS -Dmain=SDL_main -D_REENTRANT -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -msoft-float -ffast-math -fomit-frame-pointer -fstrict-aliasing -mstructure-size-boundary=32 -fexpensive-optimizations -fweb -frename-registers -falign-functions=32 -falign-loops -falign-labels -falign-jumps -finline -finline-functions -fno-common -fno-builtin -Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wcast-align -Waggregate-return -c src/port/sdl/port.cpp -o src/port/sdl/port.o
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/arm-eabi/include/SDL -D_GNU_SOURCE=1 -DQWS -Dmain=SDL_main -DQWS -Dmain=SDL_main -D_REENTRANT -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -msoft-float -ffast-math -fomit-frame-pointer -fstrict-aliasing -mstructure-size-boundary=32 -fexpensive-optimizations -fweb -frename-registers -falign-functions=32 -falign-loops -falign-labels -falign-jumps -finline -finline-functions -fno-common -fno-builtin -Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wcast-align -Waggregate-return -c src/recompiler/arm/recompiler.cpp -o src/recompiler/arm/recompiler.o
arm-linux-gnueabi-as -march=armv6j -mcpu=arm1136jf-s -mfpu=vfp  -o src/recompiler/arm/run.o src/recompiler/arm/run.s
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/arm-eabi/include/SDL -D_GNU_SOURCE=1 -DQWS -Dmain=SDL_main -DQWS -Dmain=SDL_main -D_REENTRANT -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -msoft-float -ffast-math -fomit-frame-pointer -fstrict-aliasing -mstructure-size-boundary=32 -fexpensive-optimizations -fweb -frename-registers -falign-functions=32 -falign-loops -falign-labels -falign-jumps -finline -finline-functions -fno-common -fno-builtin -Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wcast-align -Waggregate-return -c src/spu/spu_franxis/spu.cpp -o src/spu/spu_franxis/spu.o
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/arm-eabi/include/SDL -D_GNU_SOURCE=1 -DQWS -Dmain=SDL_main -DQWS -Dmain=SDL_main -D_REENTRANT -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -msoft-float -ffast-math -fomit-frame-pointer -fstrict-aliasing -mstructure-size-boundary=32 -fexpensive-optimizations -fweb -frename-registers -falign-functions=32 -falign-loops -falign-labels -falign-jumps -finline -finline-functions -fno-common -fno-builtin -Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wcast-align -Waggregate-return -c src/zlib/adler32.c -o src/zlib/adler32.o
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/arm-eabi/include/SDL -D_GNU_SOURCE=1 -DQWS -Dmain=SDL_main -DQWS -Dmain=SDL_main -D_REENTRANT -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -msoft-float -ffast-math -fomit-frame-pointer -fstrict-aliasing -mstructure-size-boundary=32 -fexpensive-optimizations -fweb -frename-registers -falign-functions=32 -falign-loops -falign-labels -falign-jumps -finline -finline-functions -fno-common -fno-builtin -Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wcast-align -Waggregate-return -c src/zlib/compress.c -o src/zlib/compress.o
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/arm-eabi/include/SDL -D_GNU_SOURCE=1 -DQWS -Dmain=SDL_main -DQWS -Dmain=SDL_main -D_REENTRANT -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -msoft-float -ffast-math -fomit-frame-pointer -fstrict-aliasing -mstructure-size-boundary=32 -fexpensive-optimizations -fweb -frename-registers -falign-functions=32 -falign-loops -falign-labels -falign-jumps -finline -finline-functions -fno-common -fno-builtin -Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wcast-align -Waggregate-return -c src/zlib/crc32.c -o src/zlib/crc32.o
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/arm-eabi/include/SDL -D_GNU_SOURCE=1 -DQWS -Dmain=SDL_main -DQWS -Dmain=SDL_main -D_REENTRANT -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -msoft-float -ffast-math -fomit-frame-pointer -fstrict-aliasing -mstructure-size-boundary=32 -fexpensive-optimizations -fweb -frename-registers -falign-functions=32 -falign-loops -falign-labels -falign-jumps -finline -finline-functions -fno-common -fno-builtin -Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wcast-align -Waggregate-return -c src/zlib/deflate.c -o src/zlib/deflate.o
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/arm-eabi/include/SDL -D_GNU_SOURCE=1 -DQWS -Dmain=SDL_main -DQWS -Dmain=SDL_main -D_REENTRANT -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -msoft-float -ffast-math -fomit-frame-pointer -fstrict-aliasing -mstructure-size-boundary=32 -fexpensive-optimizations -fweb -frename-registers -falign-functions=32 -falign-loops -falign-labels -falign-jumps -finline -finline-functions -fno-common -fno-builtin -Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wcast-align -Waggregate-return -c src/zlib/gzio.c -o src/zlib/gzio.o
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/arm-eabi/include/SDL -D_GNU_SOURCE=1 -DQWS -Dmain=SDL_main -DQWS -Dmain=SDL_main -D_REENTRANT -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -msoft-float -ffast-math -fomit-frame-pointer -fstrict-aliasing -mstructure-size-boundary=32 -fexpensive-optimizations -fweb -frename-registers -falign-functions=32 -falign-loops -falign-labels -falign-jumps -finline -finline-functions -fno-common -fno-builtin -Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wcast-align -Waggregate-return -c src/zlib/infblock.c -o src/zlib/infblock.o
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/arm-eabi/include/SDL -D_GNU_SOURCE=1 -DQWS -Dmain=SDL_main -DQWS -Dmain=SDL_main -D_REENTRANT -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -msoft-float -ffast-math -fomit-frame-pointer -fstrict-aliasing -mstructure-size-boundary=32 -fexpensive-optimizations -fweb -frename-registers -falign-functions=32 -falign-loops -falign-labels -falign-jumps -finline -finline-functions -fno-common -fno-builtin -Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wcast-align -Waggregate-return -c src/zlib/infcodes.c -o src/zlib/infcodes.o
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/arm-eabi/include/SDL -D_GNU_SOURCE=1 -DQWS -Dmain=SDL_main -DQWS -Dmain=SDL_main -D_REENTRANT -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -msoft-float -ffast-math -fomit-frame-pointer -fstrict-aliasing -mstructure-size-boundary=32 -fexpensive-optimizations -fweb -frename-registers -falign-functions=32 -falign-loops -falign-labels -falign-jumps -finline -finline-functions -fno-common -fno-builtin -Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wcast-align -Waggregate-return -c src/zlib/inffast.c -o src/zlib/inffast.o
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/arm-eabi/include/SDL -D_GNU_SOURCE=1 -DQWS -Dmain=SDL_main -DQWS -Dmain=SDL_main -D_REENTRANT -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -msoft-float -ffast-math -fomit-frame-pointer -fstrict-aliasing -mstructure-size-boundary=32 -fexpensive-optimizations -fweb -frename-registers -falign-functions=32 -falign-loops -falign-labels -falign-jumps -finline -finline-functions -fno-common -fno-builtin -Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wcast-align -Waggregate-return -c src/zlib/inflate.c -o src/zlib/inflate.o
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/arm-eabi/include/SDL -D_GNU_SOURCE=1 -DQWS -Dmain=SDL_main -DQWS -Dmain=SDL_main -D_REENTRANT -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -msoft-float -ffast-math -fomit-frame-pointer -fstrict-aliasing -mstructure-size-boundary=32 -fexpensive-optimizations -fweb -frename-registers -falign-functions=32 -falign-loops -falign-labels -falign-jumps -finline -finline-functions -fno-common -fno-builtin -Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wcast-align -Waggregate-return -c src/zlib/inftrees.c -o src/zlib/inftrees.o
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/arm-eabi/include/SDL -D_GNU_SOURCE=1 -DQWS -Dmain=SDL_main -DQWS -Dmain=SDL_main -D_REENTRANT -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -msoft-float -ffast-math -fomit-frame-pointer -fstrict-aliasing -mstructure-size-boundary=32 -fexpensive-optimizations -fweb -frename-registers -falign-functions=32 -falign-loops -falign-labels -falign-jumps -finline -finline-functions -fno-common -fno-builtin -Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wcast-align -Waggregate-return -c src/zlib/infutil.c -o src/zlib/infutil.o
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/arm-eabi/include/SDL -D_GNU_SOURCE=1 -DQWS -Dmain=SDL_main -DQWS -Dmain=SDL_main -D_REENTRANT -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -msoft-float -ffast-math -fomit-frame-pointer -fstrict-aliasing -mstructure-size-boundary=32 -fexpensive-optimizations -fweb -frename-registers -falign-functions=32 -falign-loops -falign-labels -falign-jumps -finline -finline-functions -fno-common -fno-builtin -Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wcast-align -Waggregate-return -c src/zlib/trees.c -o src/zlib/trees.o
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/arm-eabi/include/SDL -D_GNU_SOURCE=1 -DQWS -Dmain=SDL_main -DQWS -Dmain=SDL_main -D_REENTRANT -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -msoft-float -ffast-math -fomit-frame-pointer -fstrict-aliasing -mstructure-size-boundary=32 -fexpensive-optimizations -fweb -frename-registers -falign-functions=32 -falign-loops -falign-labels -falign-jumps -finline -finline-functions -fno-common -fno-builtin -Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wcast-align -Waggregate-return -c src/zlib/uncompr.c -o src/zlib/uncompr.o
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/arm-eabi/include/SDL -D_GNU_SOURCE=1 -DQWS -Dmain=SDL_main -DQWS -Dmain=SDL_main -D_REENTRANT -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -msoft-float -ffast-math -fomit-frame-pointer -fstrict-aliasing -mstructure-size-boundary=32 -fexpensive-optimizations -fweb -frename-registers -falign-functions=32 -falign-loops -falign-labels -falign-jumps -finline -finline-functions -fno-common -fno-builtin -Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wcast-align -Waggregate-return -c src/zlib/zutil.c -o src/zlib/zutil.o
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/arm-eabi/include/SDL -D_GNU_SOURCE=1 -DQWS -Dmain=SDL_main -DQWS -Dmain=SDL_main -D_REENTRANT -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -msoft-float -ffast-math -fomit-frame-pointer -fstrict-aliasing -mstructure-size-boundary=32 -fexpensive-optimizations -fweb -frename-registers -falign-functions=32 -falign-loops -falign-labels -falign-jumps -finline -finline-functions -fno-common -fno-builtin -Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wcast-align -Waggregate-return -c src/port/sdl/frontend.cpp -o src/port/sdl/frontend.o
[close]


makefile
название
Код
# Makefile for Motorola MotoMAGX



CC       = arm-linux-gnueabi-gcc

CCX       = arm-linux-gnueabi-g++

AS       = arm-linux-gnueabi-as

STRIP     = arm-linux-gnueabi-strip



GTE    = gte_new

RECOMPILER = arm

INTERPRETER = interpreter_new

SPU    = spu_franxis

PORT   = sdl

GPU    = gpu_unai



BIOS_FILE = \"scph1001.bin\"

MCD1_FILE = \"mcd001.mcr\"

MCD2_FILE = \"mcd002.mcr\"



OBJS      = src/cdriso.o src/cdrom.o src/debug.o src/decode_xa.o src/mdec.o src/misc.o src/pad.o src/plugins.o \

            src/profiler.o src/psxbios.o src/psxcounters.o src/psxdma.o src/psxhle.o src/psxhw.o src/psxmem.o \

            src/r3000a.o src/sio.o src/gpu/$(GPU)/gpu.o src/gte/$(GTE)/gte.o \

            src/interpreter/$(INTERPRETER)/psxinterpreter.o src/port/$(PORT)/port.o \

            src/recompiler/$(RECOMPILER)/recompiler.o \

            src/recompiler/$(RECOMPILER)/run.o src/spu/$(SPU)/spu.o src/zlib/adler32.o src/zlib/compress.o \

            src/zlib/crc32.o src/zlib/deflate.o src/zlib/gzio.o src/zlib/infblock.o src/zlib/infcodes.o \

            src/zlib/inffast.o src/zlib/inflate.o src/zlib/inftrees.o src/zlib/infutil.o src/zlib/trees.o \

            src/zlib/uncompr.o src/zlib/zutil.o



OBJS    +=     src/port/$(PORT)/frontend.o src/port/$(PORT)/sys_cacheflush.o

            

BIN       = bin/pcsx4all



# Platform specific definitions



#CPU_OPT = -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp

CPU_OPT = -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp

#CPU_OPT = -g



CFLAGS        =        $(CPU_OPT) $(shell sdl-config --cflags) -D__ARM_EABI__ -D__arm__ \
                -Isrc -Isrc/zlib -Isrc/spu/$(SPU) -D$(SPU) -Isrc/gpu/$(GPU) -D$(GPU) -D$(INTERPRETER) \
                -D$(RECOMPILER) -D$(GTE) -Isrc/port/$(PORT) -Isrc/gte/$(GTE) \
                -DXA_HACK -DBIOS_FILE=$(BIOS_FILE) -DMCD1_FILE=$(MCD1_FILE) -DMCD2_FILE=$(MCD2_FILE) \
                -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC \
                -msoft-float -ffast-math -fomit-frame-pointer -fstrict-aliasing \
                -mstructure-size-boundary=32 -fexpensive-optimizations \
                -fweb -frename-registers -falign-functions=32 -falign-loops -falign-labels -falign-jumps \
                -finline -finline-functions -fno-common -fno-builtin \
                -Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wcast-align -Waggregate-return

ASFLAGS = -march=armv6j -mcpu=arm1136jf-s -mfpu=vfp
# -mthumb-interwork

INCLUDES   =
LIBS       = $(shell sdl-config --libs) -lSDL -lm -ldl



# Compilation:



.SUFFIXES: .c





%.o: %.c

    $(CC) $(CFLAGS) -c $< -o $@

    

%.o: %.cpp

    $(CC) $(CFLAGS) -c $< -o $@



%.o: %.s

    $(AS) $(ASFLAGS) $(INCLUDES) -o $@ $<

    

%.o: %.S

    $(AS) $(ASFLAGS) $(INCLUDES) -o $@ $<



all: $(OBJS)

    $(CC) $(OBJS) $(LIBS) -o  $(BIN)  

#    $(STRIP) $(BIN)



clean:

    rm -f $(BIN) $(OBJS)



[close]


Сообщение отредактировал fill.sa - 21.9.2016, 21:14
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 21.9.2016, 21:47


Rock The Microphone
********

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

Рейтинг: 4654



Цитата(fill.sa @ Сегодня, 2:30)
* Попробовал так дописать

Не, оставь скрипт оригинальным. Там должно быть armeabi2

Добавлено позже (22.9.2016, 3:51):
После команды

Код
. ~/setenv-z6.sh


Команда sdl-config должна отдавать следующее:

Код
sdl-config --cflags
-I/opt/toolchains/motomagx/arm-eabi2/include/SDL -I/opt/toolchains/motomagx/arm-eabi2/include/SDL -I/opt/toolchains/motomagx/arm-eabi2/include -D_GNU_SOURCE=1 -DQWS -Dmain=SDL_main -DQWS -D_PTHREADS


Соответственно, лог такой:

Код
arm-linux-gnueabi-gcc -O3 -march=armv6j -mtune=arm1136jf-s -mfpu=vfp -I/opt/toolchains/motomagx/arm-eabi2/include/SDL -I/opt/toolchains/motomagx/arm-eabi2/include/SDL -I/opt/toolchains/motomagx/arm-eabi2/include -D_GNU_SOURCE=1 -DQWS -Dmain=SDL_main -DQWS -D_PTHREADS -D__ARM_EABI__ -D__arm__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -msoft-float -ffast-math -fomit-frame-pointer -fstrict-aliasing -mstructure-size-boundary=32 -fexpensive-optimizations -fweb -frename-registers -falign-functions=32 -falign-loops -falign-labels -falign-jumps -finline -finline-functions -fno-common -fno-builtin -Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wcast-align -Waggregate-return -c src/port/sdl/frontend.cpp -o src/port/sdl/frontend.o
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 22.9.2016, 0:52


Rock The Microphone
********

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

Рейтинг: 4654



Цитата(VINRARUS @ Вчера, 3:49)
* И всьо, никак не реагирует ни на какие кнопки...


Попробуй ещё эти бинари протестить, может будет чего логгироваться.
Прикрепленный файл test_vin.zip   ( 16.74 килобайт ) Кол-во скачиваний: 44
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 22.9.2016, 11:57


Термоядерный
********

Группа: Пользователи
Сообщений: 3 496
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044
Модель телефона: WX160 & L7 & Z6 & ZN5-128
Прошивка: 740 MHz: Z6 and ZN5


Настроение:
youtu.be/A_yQLYLiSGQ



Рейтинг: 1211



Цитата(EXL @ Сегодня, 3:52)
* Попробуй ещё эти бинари протестить, может будет чего логгироваться.

Успех! В 1м все кнопки ловятся.
Прикрепленное изображение
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 22.9.2016, 14:27


Гуру
******

Группа: Разработчики
Сообщений: 1 240
Регистрация: 8.2.2011
Из: Беларусь
Пользователь №: 223 758
Модель телефона: z6 V8
Прошивка: Linux SAedition MOD

Рейтинг: 400



EXL,
Ура, сборка успешно окончена.

Я так понял проблема была в моем старом sdl ну и соответственно я комплилил из arm-eabi , а нужно из arm-eabi2 ?

Я кстати тут немного потестил эмульятор соньки.
Нашел небольшой косяк, если в папке с играми ничего нету, отрабатывается команда ERROR: no available game found
и дальше Segmentation fault
В исходниках меня смутило в файле frontend.cpp строка 665, там команда wiz_exit() , это неошибка? Вродибы выход должен быть по команде pcsx4all_exit().
Я еще проверил что команда wiz_deinit() в 583 строке отрабатывает а вот дальше похоже и вылетает.

Я бы еще в пару мест добавил вывод коментов в консоль. А то я изза этой Segmentation fault немог сразу понять в чем дело. Потом добавил вместе с выводом на экран ERROR: no available game found чтобы и в коноль это выходило. И еще в пару мент тоже непомешает.

Сообщение отредактировал EXL - 22.9.2016, 21:54
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 22.9.2016, 22:06


Rock The Microphone
********

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

Рейтинг: 4654



Цитата(fill.sa @ Вчера, 20:27)
* Я так понял проблема была в моем старом sdl ну и соответственно я комплилил из arm-eabi , а нужно из arm-eabi2 ?

Да, именно так.

Цитата(fill.sa @ Вчера, 20:27)
* там команда wiz_exit() , это неошибка?


Мельком посмотрел, этот wiz_exit() раскрывается в SDL_Quit(), ошибкой быть не должно. Сегфолт наверное потому что нету exit(0); после SDL_Quit(), но я не уверен. Можешь попробовать заменить wiz_exit() на pcsx4all_exit(), возможно не будет сегфолта. Или добавить exit(0); ниже SDL_Quit().

Цитата(fill.sa @ Вчера, 20:27)
* Я бы еще в пару мест добавил вывод коментов в консоль. А то я изза этой Segmentation fault немог сразу понять в чем дело.


Используй вместо printf, например, такую конструкцию:

Код
fprintf(stderr, "%s-%i\n",__FILE__,__LINE__);


Это позволит выводить лог в stderr, а не stdout. А поскольку stderr не буферизованный, строки будут отображаться сразу, а не тогда, когда кто-то там (система) вызовет flush(), что конечно же не будет, если приложение внезапно сегфолтнулось.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 23.9.2016, 10:35


Гуру
******

Группа: Разработчики
Сообщений: 1 240
Регистрация: 8.2.2011
Из: Беларусь
Пользователь №: 223 758
Модель телефона: z6 V8
Прошивка: Linux SAedition MOD

Рейтинг: 400



Цитата(EXL @ 22.9.2016, 23:06) *



Мельком посмотрел, этот wiz_exit() раскрывается в SDL_Quit(), ошибкой быть не должно. Сегфолт наверное потому что нету exit(0); после SDL_Quit(), но я не уверен. Можешь попробовать заменить wiz_exit() на pcsx4all_exit(), возможно не будет сегфолта. Или добавить exit(0); ниже SDL_Quit().



проверил, если менять wiz_exit() на pcsx4all_exit() - все равно оши,ка
если дописать посе wiz_exit() exit(0) - закрывается без ошибки.

как будет правильнее оставить? на данный момент сделал так
SDL_Dalay()
wiz_exit()
exit(0)
SDL_Quit()

Сообщение отредактировал fill.sa - 23.9.2016, 11:06
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 23.9.2016, 10:47


Rock The Microphone
********

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

Рейтинг: 4654



Цитата(fill.sa @ Сегодня, 16:35)
*
как будеит правильнее оставить? на данный момент сделал так


Правильнее будет найти:

Код
void wiz_deinit(void)
{
    SDL_Quit();
}


И сделать:

Код
void wiz_deinit(void)
{
    SDL_Quit();
    exit(0);
}
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 23.9.2016, 15:04


Гуру
******

Группа: Разработчики
Сообщений: 1 240
Регистрация: 8.2.2011
Из: Беларусь
Пользователь №: 223 758
Модель телефона: z6 V8
Прошивка: Linux SAedition MOD

Рейтинг: 400



Изменил, все работает. Только поставил exit(-1)
Еще вопрос. как в меню задействовать все кнопки? или хотя бы левую-софт. Хочу на нее одну команду подцепить, а в меню кроме джойстика и назад ничего не равботает.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 23.9.2016, 18:02


Rock The Microphone
********

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

Рейтинг: 4654



Цитата(fill.sa @ Сегодня, 21:04)
* Еще вопрос. как в меню задействовать все кнопки? или хотя бы левую-софт. Хочу на нее одну команду подцепить, а в меню кроме джойстика и назад ничего не равботает.


Таблица кнопок, задействованных в pcsx4all находится в файле port.cpp, 25 строка. Эти используются в играх.

В меню используются кнопки из перечисления в файле frontend.cpp, 24 строка. Обработка клавиш в меню происходит в функции wiz_joystick_read(), соответственно там и можно сделать инъекцию твоей софт-клавиши.

Таблички кодов можешь посмотреть тут: http://exlmoto.ru/sdl-keys-remap/

Если не ошибаюсь, то за софт-клавиши отвечает SDLK_F9 и SDLK_F11 (не помню, где левая, а где правая).

Тебе нужно будет переписать функцию wiz_joystick_read() к примеру, так:

Код
unsigned int wiz_joystick_read(int n)
{
    extern int master_volume;
    unsigned int res=0;

    SDL_Event event;
    
    while(SDL_PollEvent(&event)){
        int key = event.key.keysym.sym;
        switch(event.type){    
            case SDL_KEYDOWN:
                res = key;
                switch(key){
                    case SDLK_ESCAPE: exit(-1); break;
                    case SDLK_F9: some_function(); break;
                    case SDLK_F11:  some_function(); break;
                    }
                break;
            case SDL_KEYUP:
                break;

                }
            }
    return res;
}


Где some_function() то, что тебе хочется вызывать.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fill.sa
сообщение 23.9.2016, 19:02


Гуру
******

Группа: Разработчики
Сообщений: 1 240
Регистрация: 8.2.2011
Из: Беларусь
Пользователь №: 223 758
Модель телефона: z6 V8
Прошивка: Linux SAedition MOD

Рейтинг: 400



получаю used prior to declaration
Код
src/port/sdl/frontend.cpp: In function `int gui_Quit()':
src/port/sdl/frontend.cpp:707: ошибка: `int gui_Quit()' used prior to declaration

Код

case SDLK_ESCAPE: gui_Quit(); break;


Может мою функцию раньше вписать нужно?

Сообщение отредактировал fill.sa - 23.9.2016, 19:07
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Programmer-tm(Мотофан.)
сообщение 24.9.2016, 15:15


Мотофан
*******

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


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



Рейтинг: 620



Кому там надо было информацию о погоде? Сие в процессе работы...

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

Если кому-то сие чудо надо, то надо обработать и структурировать базу данных городов...
Один я 3000+ строк городов буду проверять не знаю сколько времени...

Сообщение отредактировал Programmer-tm(Мотофан.) - 24.9.2016, 15:57
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Unreal_man
сообщение 24.9.2016, 21:41


Гуру
******

Группа: Разработчики
Сообщений: 732
Регистрация: 16.12.2009
Из: Другого Края Земли
Пользователь №: 211 211
Модель телефона: Motorola Moto Z Play


Настроение:
:-I



Рейтинг: 607



Откуда погоду берёт? Яндекс погода? Поконкретнее про 'структурировать. Чем могу помогу.

Нашёл id всех городов. Что с ними делать?

Сообщение отредактировал Unreal_man - 25.9.2016, 0:12
Прикрепленное изображение
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Programmer-tm(Мотофан.)
сообщение 25.9.2016, 4:30


Мотофан
*******

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


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



Рейтинг: 620



Unreal_man,
Скину ссылку, которую надо будет проверять по всем городам. А то там не понятно первый код или второй корректно отрабатывает.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Unreal_man
сообщение 25.9.2016, 4:41


Гуру
******

Группа: Разработчики
Сообщений: 732
Регистрация: 16.12.2009
Из: Другого Края Земли
Пользователь №: 211 211
Модель телефона: Motorola Moto Z Play


Настроение:
:-I



Рейтинг: 607



Особо не понял, но давай. Это с тела надо будет проверять?

Нашёл свой Хабаровск в списке яндекса 31735. У меня на Е1 погодник гисметео тоже через код 31735 работает. Это в списке первый код "city id"(id города). По любому и все остальные через ид города работают. Зачем использовать второй код, ид региона? Нам же нужна погода по конкретному городу.

Сообщение отредактировал Unreal_man - 25.9.2016, 4:46
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Programmer-tm(Мотофан.)
сообщение 25.9.2016, 4:45


Мотофан
*******

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


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



Рейтинг: 620



Unreal_man,
Гисметео говоришь... Я просто на него информер не нарыл... Если есть ссыль то кидай, посмотрим, мож так проще будет.
А так ссыль https://info.weather.yandex.net/{тут ид города}/2.png
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 26.9.2016, 12:33


Термоядерный
********

Группа: Пользователи
Сообщений: 3 496
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044
Модель телефона: WX160 & L7 & Z6 & ZN5-128
Прошивка: 740 MHz: Z6 and ZN5


Настроение:
youtu.be/A_yQLYLiSGQ



Рейтинг: 1211



Цитата(Programmer-tm(Мотофан.) @ 24.9.2016, 18:15)
* Если кому-то сие чудо надо, то надо обработать и структурировать базу данных городов...
Один я 3000+ строк городов буду проверять не знаю сколько времени...

Зачем этой глупостью страдать? Пусть юзер сам вводит код города. wink.gif
Не знает код - пусть идет в интернет на сайт, все равно прога от нета работать будет.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Programmer-tm(Мотофан.)
сообщение 26.9.2016, 15:19


Мотофан
*******

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


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



Рейтинг: 620



VINRARUS,
Так вроде и решил...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 26.9.2016, 16:51


Термоядерный
********

Группа: Пользователи
Сообщений: 3 496
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044
Модель телефона: WX160 & L7 & Z6 & ZN5-128
Прошивка: 740 MHz: Z6 and ZN5


Настроение:
youtu.be/A_yQLYLiSGQ



Рейтинг: 1211



Цитата(Unreal_man @ Вчера, 7:41)
* погодник гисметео

Не знаю как он работает в Азии, но в Украине (с ее высокой европейской плотностью поселений) он отвратительно работает - за окном +8, а оно мне +14 показывает. bad.gif
А прогноз погоды и вовсе самый плохой из всех которые попадались.

Сообщение отредактировал VINRARUS - 26.9.2016, 17:05
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 26.9.2016, 18:16


Термоядерный
********

Группа: Пользователи
Сообщений: 3 496
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044
Модель телефона: WX160 & L7 & Z6 & ZN5-128
Прошивка: 740 MHz: Z6 and ZN5


Настроение:
youtu.be/A_yQLYLiSGQ



Рейтинг: 1211



EXL, скрафть BusyBox 1.24.2 с офф тулчейном под ARM (у тебя должен уже быть установлен), а не под MAGX, может дело в компиляторе?
Цитата(EXL @ 23.9.2016, 1:18)
* В качестве бенчмарка попробуй тупо unzip или, наоборот, bzip2 на одном и том же архиве или на одном и том же наборе файлов, лучше несколькими прогонами, так как первый запуск может быть "холодным".

Время равно. glare.gif
Цитата(EXL @ 23.9.2016, 1:18)
* md5sum

Та там одинаково.
Цитата(EXL @ 23.9.2016, 1:18)
* Тут в основном для float'ов оптимизации.

А при чом тут макароны?
Цитата(EXL @ Сегодня, 20:07)
* for i in ../*.patch; do patch -Np1 < $i; done

Если имя патча содержит пробел - получится сюрприз. grin.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Programmer-tm(Мотофан.)
сообщение 26.9.2016, 18:37


Мотофан
*******

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


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



Рейтинг: 620



VINRARUS,
Будет от яндекса

И кстати, печаль таки случилась) с iNative

Сообщение отредактировал Programmer-tm(Мотофан.) - 26.9.2016, 18:38
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 26.9.2016, 18:49


Термоядерный
********

Группа: Пользователи
Сообщений: 3 496
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044
Модель телефона: WX160 & L7 & Z6 & ZN5-128
Прошивка: 740 MHz: Z6 and ZN5


Настроение:
youtu.be/A_yQLYLiSGQ



Рейтинг: 1211



Цитата(Programmer-tm(Мотофан.) @ Сегодня, 21:37)
* И кстати, печаль таки случилась) с iNative

smile.gif
Я вообще б предложил для погоды свой Netexec , шо бы юзать Ёж в фоне без участия юзера.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Programmer-tm(Мотофан.)
сообщение 26.9.2016, 18:55


Мотофан
*******

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


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



Рейтинг: 620



VINRARUS,
Это можно и так встроить) но он ссыль не видит(
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 26.9.2016, 19:08


Термоядерный
********

Группа: Пользователи
Сообщений: 3 496
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044
Модель телефона: WX160 & L7 & Z6 & ZN5-128
Прошивка: 740 MHz: Z6 and ZN5


Настроение:
youtu.be/A_yQLYLiSGQ



Рейтинг: 1211



Programmer-tm(Мотофан.),
у меня и на ПК https://info.weather.yandex.net/31735/2.png не открывает.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Programmer-tm(Мотофан.)
сообщение 26.9.2016, 19:18


Мотофан
*******

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


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



Рейтинг: 620



VINRARUS,
wget с https не работает(
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 26.9.2016, 19:57


Термоядерный
********

Группа: Пользователи
Сообщений: 3 496
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044
Модель телефона: WX160 & L7 & Z6 & ZN5-128
Прошивка: 740 MHz: Z6 and ZN5


Настроение:
youtu.be/A_yQLYLiSGQ



Рейтинг: 1211



Цитата(Programmer-tm(Мотофан.) @ Сегодня, 22:18)
* wget с https не работает(

Пробуй новый бузибокс.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Programmer-tm(Мотофан.)
сообщение 26.9.2016, 20:05


Мотофан
*******

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


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



Рейтинг: 620



VINRARUS,
Там сертификатов нет
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 26.9.2016, 20:25


Rock The Microphone
********

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

Рейтинг: 4654



Цитата(Programmer-tm(Мотофан.) @ Сегодня, 1:18)
* VINRARUS,
wget с https не работает(


Для https нужен OpenSSL. Собрал вам curl с поддержкой OpenSSL, всё последних версий.

Попробуй так:

Код
curl -o nsk.png https://info.weather.yandex.net/65/1_white.ru.png?domain=ru


http://linux-notes.org/komanda-curl-v-unix-linux/

Бинарники:
http://baat.z-lab.me:666/~exl_lab/magx/cur...SEP-2016.tar.gz
http://baat.z-lab.me:666/~exl_lab/magx/ope...SEP-2016.tar.gz (на всякий случай, вдруг понадобится кому)

(если будут работать, можете перезалить сюда, на МФ)

Добавлено позже (27.9.2016, 2:37):
Рецепт:
Код
mkdir -p curl/build/curl
mkdir -p curl/build/openssl
cd curl
wget https://www.openssl.org/source/openssl-1.0.2j.tar.gz
wget https://curl.haxx.se/download/curl-7.50.3.tar.gz
tar xvzf curl-7.50.3.tar.gz
tar xvzf openssl-1.0.2j.tar.gz
cd openssl-1.0.2j/
. /opt/toolchains/motomagx/setenv-z6.sh
./Configure dist --prefix=`pwd`/../build/openssl
export cross=arm-linux-gnueabi-
make CC="${cross}gcc" AR="${cross}ar r" RANLIB="${cross}ranlib" -j21
make install
cd ../curl-7.50.3/
export ROOTDIR=/home/z6/magx/curl
export CROSS_COMPILE="arm-linux-gnueabi"
export CPPFLAGS="-I${ROOTDIR}/build/openssl/include -I/opt/toolchains/motomagx/arm-eabi/arm-linux-gnueabi/include/"
export LDFLAGS="-L${ROOTDIR}/build/openssl/lib -L/opt/toolchains/motomagx/arm-eabi/arm-linux-gnueabi/lib/"
export AR=${CROSS_COMPILE}-ar
export AS=${CROSS_COMPILE}-as
export LD=${CROSS_COMPILE}-ld
export RANLIB=${CROSS_COMPILE}-ranlib
export CC=${CROSS_COMPILE}-gcc
export NM=${CROSS_COMPILE}-nm
export LIBS="-lssl -lcrypto"
./configure --prefix=${ROOTDIR}/build/curl --target=${CROSS_COMPILE} --host=${CROSS_COMPILE} --build=x86_64-pc-linux-gnu --with-ssl --with-zlib --disable-shared
make -j21
make install
cd ../build
tar -czf openssl_motomagx_27-SEP-2016.tar.gz openssl/
tar -czf curl_motomagx_27-SEP-2016.tar.gz curl/
mv openssl_motomagx_27-SEP-2016.tar.gz openssl_1.0.2j_motomagx_27-SEP-2016.tar.gz
mv curl_motomagx_27-SEP-2016.tar.gz curl_7.50.3_motomagx_27-SEP-2016.tar.gz
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 26.9.2016, 20:46


Термоядерный
********

Группа: Пользователи
Сообщений: 3 496
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044
Модель телефона: WX160 & L7 & Z6 & ZN5-128
Прошивка: 740 MHz: Z6 and ZN5


Настроение:
youtu.be/A_yQLYLiSGQ



Рейтинг: 1211



Цитата(EXL @ Сегодня, 23:25)
* Рецепт:

А самого важного не написал. smile.gif
Код
export LD_PRELOAD=/home/.tmp/c/lib/libcurl.so.4.4.0
/home/.tmp/lib/libcurl.so.4.4.0
/home/.tmp/bin/curl
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 26.9.2016, 20:50


Rock The Microphone
********

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

Рейтинг: 4654



Цитата(VINRARUS @ Сегодня, 2:46)
* А самого важного не написал.

Так устройства у меня нет smile.gif А предвидеть я всего не могу. Думал, он статически собирается. Работает?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 26.9.2016, 20:55


Термоядерный
********

Группа: Пользователи
Сообщений: 3 496
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044
Модель телефона: WX160 & L7 & Z6 & ZN5-128
Прошивка: 740 MHz: Z6 and ZN5


Настроение:
youtu.be/A_yQLYLiSGQ



Рейтинг: 1211



Цитата(EXL @ Сегодня, 23:50)
* Так устройства у меня нет smile.gif А предвидеть я всего не могу. Думал, он статически собирается. Работает?

Угу, ногу уже сломал...

# /home/.tmp/c/bin/curl --help
Usage: curl [options...] <url>
Options: (H) means HTTP/HTTPS only, (F) means FTP only
--anyauth Pick "any" authentication method (H)
-a, --append Append to target file when uploading (F/SFTP)
--basic Use HTTP Basic Authentication (H)
--cacert FILE CA certificate to verify peer against (SSL)
--capath DIR CA directory to verify peer against (SSL)
-E, --cert CERT[:PASSWD] Client certificate file and password (SSL)
--cert-status Verify the status of the server certificate (SSL)
--cert-type TYPE Certificate file type (DER/PEM/ENG) (SSL)
--ciphers LIST SSL ciphers to use (SSL)
--compressed Request compressed response (using deflate or gzip)
-K, --config FILE Read config from FILE
--connect-timeout SECONDS Maximum time allowed for connection
--connect-to HOST1:PORT1:HOST2:PORT2 Connect to host (network level)
-C, --continue-at OFFSET Resumed transfer OFFSET
-b, --cookie STRING/FILE Read cookies from STRING/FILE (H)
-c, --cookie-jar FILE Write cookies to FILE after operation (H)
--create-dirs Create necessary local directory hierarchy
--crlf Convert LF to CRLF in upload
--crlfile FILE Get a CRL list in PEM format from the given file
-d, --data DATA HTTP POST data (H)
--data-raw DATA HTTP POST data, '@' allowed (H)
--data-ascii DATA HTTP POST ASCII data (H)
--data-binary DATA HTTP POST binary data (H)
--data-urlencode DATA HTTP POST data url encoded (H)
--delegation STRING GSS-API delegation permission
--digest Use HTTP Digest Authentication (H)
--disable-eprt Inhibit using EPRT or LPRT (F)
--disable-epsv Inhibit using EPSV (F)
--dns-servers DNS server addrs to use: 1.1.1.1;2.2.2.2
--dns-interface Interface to use for DNS requests
--dns-ipv4-addr IPv4 address to use for DNS requests, dot notation
--dns-ipv6-addr IPv6 address to use for DNS requests, dot notation
-D, --dump-header FILE Write the headers to FILE
--egd-file FILE EGD socket path for random data (SSL)
--engine ENGINE Crypto engine (use "--engine list" for list) (SSL)
--expect100-timeout SECONDS How long to wait for 100-continue (H)
-f, --fail Fail silently (no output at all) on HTTP errors (H)
--false-start Enable TLS False Start.
-F, --form CONTENT Specify HTTP multipart POST data (H)
--form-string STRING Specify HTTP multipart POST data (H)
--ftp-account DATA Account data string (F)
--ftp-alternative-to-user COMMAND String to replace "USER [name]" (F)
--ftp-create-dirs Create the remote dirs if not present (F)
--ftp-method [MULTICWD/NOCWD/SINGLECWD] Control CWD usage (F)
--ftp-pasv Use PASV/EPSV instead of PORT (F)
-P, --ftp-port ADR Use PORT with given address instead of PASV (F)
--ftp-skip-pasv-ip Skip the IP address for PASV (F)
--ftp-pret Send PRET before PASV (for drftpd) (F)
--ftp-ssl-ccc Send CCC after authenticating (F)
--ftp-ssl-ccc-mode ACTIVE/PASSIVE Set CCC mode (F)
--ftp-ssl-control Require SSL/TLS for FTP login, clear for transfer (F)
-G, --get Send the -d data with a HTTP GET (H)
-g, --globoff Disable URL sequences and ranges using {} and []
-H, --header LINE Pass custom header LINE to server (H)
-I, --head Show document info only
-h, --help This help text
--hostpubmd5 MD5 Hex-encoded MD5 string of the host public key. (SSH)
-0, --http1.0 Use HTTP 1.0 (H)
--http1.1 Use HTTP 1.1 (H)
--http2 Use HTTP 2 (H)
--http2-prior-knowledge Use HTTP 2 without HTTP/1.1 Upgrade (H)
--ignore-content-length Ignore the HTTP Content-Length header
-i, --include Include protocol headers in the output (H/F)
-k, --insecure Allow connections to SSL sites without certs (H)
--interface INTERFACE Use network INTERFACE (or address)
-4, --ipv4 Resolve name to IPv4 address
-6, --ipv6 Resolve name to IPv6 address
-j, --junk-session-cookies Ignore session cookies read from file (H)
--keepalive-time SECONDS Wait SECONDS between keepalive probes
--key KEY Private key file name (SSL/SSH)
--key-type TYPE Private key file type (DER/PEM/ENG) (SSL)
--krb LEVEL Enable Kerberos with security LEVEL (F)
--libcurl FILE Dump libcurl equivalent code of this command line
--limit-rate RATE Limit transfer speed to RATE
-l, --list-only List only mode (F/POP3)
--local-port RANGE Force use of RANGE for local port numbers
-L, --location Follow redirects (H)
--location-trusted Like '--location', and send auth to other hosts (H)
--login-options OPTIONS Server login options (IMAP, POP3, SMTP)
-M, --manual Display the full manual
--mail-from FROM Mail from this address (SMTP)
--mail-rcpt TO Mail to this/these addresses (SMTP)
--mail-auth AUTH Originator address of the original email (SMTP)
--max-filesize BYTES Maximum file size to download (H/F)
--max-redirs NUM Maximum number of redirects allowed (H)
-m, --max-time SECONDS Maximum time allowed for the transfer
--metalink Process given URLs as metalink XML file
--negotiate Use HTTP Negotiate (SPNEGO) authentication (H)
-n, --netrc Must read .netrc for user name and password
--netrc-optional Use either .netrc or URL; overrides -n
--netrc-file FILE Specify FILE for netrc
-:, --next Allows the following URL to use a separate set of options
--no-alpn Disable the ALPN TLS extension (H)
-N, --no-buffer Disable buffering of the output stream
--no-keepalive Disable keepalive use on the connection
--no-npn Disable the NPN TLS extension (H)
--no-sessionid Disable SSL session-ID reusing (SSL)
--noproxy List of hosts which do not use proxy
--ntlm Use HTTP NTLM authentication (H)
--ntlm-wb Use HTTP NTLM authentication with winbind (H)
--oauth2-bearer TOKEN OAuth 2 Bearer Token (IMAP, POP3, SMTP)
-o, --output FILE Write to FILE instead of stdout
--pass PASS Pass phrase for the private key (SSL/SSH)
--path-as-is Do not squash .. sequences in URL path
--pinnedpubkey FILE/HASHES Public key to verify peer against (SSL)
--post301 Do not switch to GET after following a 301 redirect (H)
--post302 Do not switch to GET after following a 302 redirect (H)
--post303 Do not switch to GET after following a 303 redirect (H)
-#, --progress-bar Display transfer progress as a progress bar
--proto PROTOCOLS Enable/disable PROTOCOLS
--proto-default PROTOCOL Use PROTOCOL for any URL missing a scheme
--proto-redir PROTOCOLS Enable/disable PROTOCOLS on redirect
-x, --proxy [PROTOCOL://]HOST[:PORT] Use proxy on given port
--proxy-anyauth Pick "any" proxy authentication method (H)
--proxy-basic Use Basic authentication on the proxy (H)
--proxy-digest Use Digest authentication on the proxy (H)
--proxy-negotiate Use HTTP Negotiate (SPNEGO) authentication on the proxy (H)
--proxy-ntlm Use NTLM authentication on the proxy (H)
--proxy-header LINE Pass custom header LINE to proxy (H)
--proxy-service-name NAME SPNEGO proxy service name
--service-name NAME SPNEGO service name
-U, --proxy-user USER[:PASSWORD] Proxy user and password
--proxy1.0 HOST[:PORT] Use HTTP/1.0 proxy on given port
-p, --proxytunnel Operate through a HTTP proxy tunnel (using CONNECT)
--pubkey KEY Public key file name (SSH)
-Q, --quote CMD Send command(s) to server before transfer (F/SFTP)
--random-file FILE File for reading random data from (SSL)
-r, --range RANGE Retrieve only the bytes within RANGE
--raw Do HTTP "raw"; no transfer decoding (H)
-e, --referer Referer URL (H)
-J, --remote-header-name Use the header-provided filename (H)
-O, --remote-name Write output to a file named as the remote file
--remote-name-all Use the remote file name for all URLs
-R, --remote-time Set the remote file's time on the local output
-X, --request COMMAND Specify request command to use
--resolve HOST:PORT:ADDRESS Force resolve of HOST:PORT to ADDRESS
--retry NUM Retry request NUM times if transient problems occur
--retry-delay SECONDS Wait SECONDS between retries
--retry-max-time SECONDS Retry only within this period
--sasl-ir Enable initial response in SASL authentication
-S, --show-error Show error. With -s, make curl show errors when they occur
-s, --silent Silent mode (don't output anything)
--socks4 HOST[:PORT] SOCKS4 proxy on given host + port
--socks4a HOST[:PORT] SOCKS4a proxy on given host + port
--socks5 HOST[:PORT] SOCKS5 proxy on given host + port
--socks5-hostname HOST[:PORT] SOCKS5 proxy, pass host name to proxy
--socks5-gssapi-service NAME SOCKS5 proxy service name for GSS-API
--socks5-gssapi-nec Compatibility with NEC SOCKS5 server
-Y, --speed-limit RATE Stop transfers below RATE for 'speed-time' secs
-y, --speed-time SECONDS Trigger 'speed-limit' abort after SECONDS (default: 30)
--ssl Try SSL/TLS (FTP, IMAP, POP3, SMTP)
--ssl-reqd Require SSL/TLS (FTP, IMAP, POP3, SMTP)
-2, --sslv2 Use SSLv2 (SSL)
-3, --sslv3 Use SSLv3 (SSL)
--ssl-allow-beast Allow security flaw to improve interop (SSL)
--ssl-no-revoke Disable cert revocation checks (WinSSL)
--stderr FILE Where to redirect stderr (use "-" for stdout)
--tcp-nodelay Use the TCP_NODELAY option
--tcp-fastopen Use TCP Fast Open
-t, --telnet-option OPT=VAL Set telnet option
--tftp-blksize VALUE Set TFTP BLKSIZE option (must be >512)
--tftp-no-options Do not send TFTP options requests
-z, --time-cond TIME Transfer based on a time condition
-1, --tlsv1 Use >= TLSv1 (SSL)
--tlsv1.0 Use TLSv1.0 (SSL)
--tlsv1.1 Use TLSv1.1 (SSL)
--tlsv1.2 Use TLSv1.2 (SSL)
--trace FILE Write a debug trace to FILE
--trace-ascii FILE Like --trace, but without hex output
--trace-time Add time stamps to trace/verbose output
--tr-encoding Request compressed transfer encoding (H)
-T, --upload-file FILE Transfer FILE to destination
--url URL URL to work with
-B, --use-ascii Use ASCII/text transfer
-u, --user USER[:PASSWORD] Server user and password
--tlsuser USER TLS username
--tlspassword STRING TLS password
--tlsauthtype STRING TLS authentication type (default: SRP)
--unix-socket FILE Connect through this Unix domain socket
-A, --user-agent STRING Send User-Agent STRING to server (H)
-v, --verbose Make the operation more talkative
-V, --version Show version number and quit
-w, --write-out FORMAT Use output FORMAT after completion
--xattr Store metadata in extended file attributes
-q, --disable Disable .curlrc (must be first parameter)
# wacko.gif
[close]
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 26.9.2016, 21:03


Rock The Microphone
********

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

Рейтинг: 4654



Цитата(VINRARUS @ Сегодня, 0:16)
* EXL, скрафть BusyBox 1.24.2 с офф тулчейном под ARM (у тебя должен уже быть установлен), а не под MAGX, может дело в компиляторе?


Не думаю, но смотри сам.

http://baat.z-lab.me:666/~exl_lab/magx/bus...SEP-2016.tar.gz

Рецепт:
Код
sudo apt install gcc-4.7-arm-linux-gnueabi
sudo update-alternatives --install /usr/bin/arm-linux-gnueabi-gcc arm-linux-gnueabi-gcc /usr/bin/arm-linux-gnueabi-gcc-4.7 46
arm-linux-gnueabi-gcc -v
Используются внутренние спецификации.
COLLECT_GCC=arm-linux-gnueabi-gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/lto-wrapper
Целевая архитектура: arm-linux-gnueabi
Параметры конфигурации: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.7.4-3ubuntu12' --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs --enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.7 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/arm-linux-gnueabi/include/c++/4.7.4 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-gnu-unique-object --disable-libmudflap --disable-libitm --enable-plugin --with-system-zlib --enable-objc-gc --with-cloog --enable-cloog-backend=ppl --disable-cloog-version-check --disable-ppl-version-check --enable-multiarch --enable-multilib --disable-sjlj-exceptions --with-arch=armv5t --with-float=soft --disable-werror --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=arm-linux-gnueabi --program-prefix=arm-linux-gnueabi- --includedir=/usr/arm-linux-gnueabi/include
Модель многопоточности: posix
gcc версия 4.7.4 (Ubuntu/Linaro 4.7.4-3ubuntu12)


Код
mkdir busybox
cd busybox/
curl -o busybox-1.24.2.tar.bz2 https://busybox.net/downloads/busybox-1.24.2.tar.bz2
tar -xjf busybox-1.24.2.tar.bz2
cd busybox-1.24.2/
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- menuconfig
Busybox Settings --> Build Options --> Build Busybox as a static binary (no shared libs)  -  Enable this option by pressing "Y", Save
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j21
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- install
tar -czf busybox-static-1.24.2-arm-linux-gnueabi-4.7-27-SEP-2016.tar.gz _install/
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 26.9.2016, 21:03


Rock The Microphone
********

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

Рейтинг: 4654



Цитата(VINRARUS @ Сегодня, 2:55)
* Угу, ногу уже сломал...


Так, то есть качает? Давай соберу статически тогда. В смежной теме собрал busybox армовским компилятором.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 26.9.2016, 21:05


Термоядерный
********

Группа: Пользователи
Сообщений: 3 496
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044
Модель телефона: WX160 & L7 & Z6 & ZN5-128
Прошивка: 740 MHz: Z6 and ZN5


Настроение:
youtu.be/A_yQLYLiSGQ



Рейтинг: 1211



Ну вроди качает. smile.gif
Код
/home/.tmp/c/bin/curl -k https://www.wikipedia.org/


Добавлено позже (27.9.2016, 0:22):
Код
# /home/.tmp/c/bin/curl --tlsv1 https://vk.com
curl: (60) SSL certificate problem: self signed certificate in certificate chain

Блин. sad.gif

Сообщение отредактировал VINRARUS - 26.9.2016, 21:22
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 26.9.2016, 21:11


Термоядерный
********

Группа: Пользователи
Сообщений: 3 496
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044
Модель телефона: WX160 & L7 & Z6 & ZN5-128
Прошивка: 740 MHz: Z6 and ZN5


Настроение:
youtu.be/A_yQLYLiSGQ



Рейтинг: 1211



Цитата(EXL @ Сегодня, 0:03)
* Не думаю, но смотри сам.

Ой ай. not_i.gif Прикрепленное изображение
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 26.9.2016, 21:24


Rock The Microphone
********

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

Рейтинг: 4654



http://baat.z-lab.me:666/~exl_lab/magx/cur...SEP-2016.tar.gz

Пересобрал статически и исправил рецепт.

Добавлено позже (27.9.2016, 3:27):
Цитата(VINRARUS @ Сегодня, 3:05)
* # /home/.tmp/c/bin/curl --tlsv1 https://vk.com
curl: (60) SSL certificate problem: self signed certificate in certificate chain


Пробуй:

Код
curl --insecure


Или

Код
echo insecure >> ~/.curlrc
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 26.9.2016, 21:44


Термоядерный
********

Группа: Пользователи
Сообщений: 3 496
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044
Модель телефона: WX160 & L7 & Z6 & ZN5-128
Прошивка: 740 MHz: Z6 and ZN5


Настроение:
youtu.be/A_yQLYLiSGQ



Рейтинг: 1211



Цитата(EXL @ Сегодня, 0:24)
* Пересобрал статически и исправил рецепт.

ОК.
Цитата(EXL @ Сегодня, 0:24)
* Пробуй:

Опа опа:
Код
./curl -H "Accept: application/json" -X POST -d "firstName=james" https://vk.com -o fufufile.html

Запись страницы в файл успешна, тепер пойду читать шо я ввел... laugh.gif

Добавлено позже (27.9.2016, 0:48):
Так и до браузера не далеко... dribble.gif

Сообщение отредактировал VINRARUS - 26.9.2016, 21:47
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
EXL
сообщение 26.9.2016, 21:52


Rock The Microphone
********

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

Рейтинг: 4654



Цитата(VINRARUS @ Сегодня, 3:11)
* Ой ай.


http://baat.z-lab.me:666/~exl_lab/magx/bus...SEP-2016.tar.gz

Собрал статически и понизил компилятор до 4.7

Рецепт обновил
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 26.9.2016, 21:57


Термоядерный
********

Группа: Пользователи
Сообщений: 3 496
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044
Модель телефона: WX160 & L7 & Z6 & ZN5-128
Прошивка: 740 MHz: Z6 and ZN5


Настроение:
youtu.be/A_yQLYLiSGQ



Рейтинг: 1211



Цитата(EXL @ Сегодня, 0:52)
* Собрал статически и понизил компилятор до 4.7

pardon.gif
Код
FATAL: kernel too old
Segmentation fault

А размер х2 так и задуман?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Софт для ZN5 и прочих MotoMAGX: MGX и PEP, Разработка, портирование и обсуждение нативного софта · Motorola ZINE ZN5, ZN5 T-Mobile · Forum
 

46 страниц V « < 27 28 29 30 31 > » 
Ответ в темуСоздание новой темы
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 22.7.2025, 4:06

Форум живёт: