summaryrefslogtreecommitdiffstats
path: root/ausarbeitung/Tutorial.tex
diff options
context:
space:
mode:
Diffstat (limited to 'ausarbeitung/Tutorial.tex')
-rw-r--r--ausarbeitung/Tutorial.tex461
1 files changed, 133 insertions, 328 deletions
diff --git a/ausarbeitung/Tutorial.tex b/ausarbeitung/Tutorial.tex
index fb457d8..499d1b9 100644
--- a/ausarbeitung/Tutorial.tex
+++ b/ausarbeitung/Tutorial.tex
@@ -1,342 +1,147 @@
-\section{Tutorial}
-
-Beim folgenden Abschnitt handelt es sich um ein \textit{Tutorial} in welchem Schritt für Schritt erklärt was notwendig ist um
-\textit{Enlightenment} \citep{efl} und das Programm \textit{Ueberall} von Linux nach \textit{Windows Mobile 6.1} \citep{Windows}
-zu portieren. Bei
-dem genutzten Linux handelt es sich um ein Ubuntu Version 9.10. Für dieses Vorhaben werden mehrere
-Tools benötigt, welche auch im folgenden kurz vorgestellt werden. Zum einen wird das \textit{Enlightenment} Paket benötigt,
-welches aus
-mehreren Unterprogrammen besteht. Diese wurden allesamt aus dem \textit{Subversion Repository} der Entwickler heruntergeladen.
-Ein weiterer wichtiger Rolle in diesem Vorhaben spielt der \textit{CeGCC-Compiler} \citep{CeGCC}, welcher für das kompilieren von
-Programmcode von Linux nach Windows Mobile benötigt wird.\newline
-Diese Programme bilden die Grundlagen für diese Aufgabe. Um \textit{Ueberall} kompilieren ist es auch nötig noch ein paar
-\textit{Libraries} zu protieren. Auf diese wird im Abschnitt \textit{Ueberall} genauer eingegangen.\newline
-Als erstes wird nun auf den \textit{CeGCC} näher eingegangen, danach auf das Erstellen von Enlightenment für Windows Mobiel und
-schliesslich wird auch das portieren von \textit{Ueberall} genauer besprochen.
-
-\subsection{CeGCC}
-Der CeGCC ist ein \textit{Open-Source} Projekt, welches ein \textit{Crosscompiler} von Linux nach Windows Mobile entwickelt hat. Dieser
-Kompiler bassiert auf dem standart Unix C-Kompiler, dem GCC.\newline
-Eine aktuelle Version des CeGCC's kann auf der Projekthomepage gefunden und heruntergeladen werden. Es wird hierbei prinzipiell zwischen
-zwei verschiedenen Arten des CeGCC's unterschieden. Zum Einen \textit{CeGCC}, zum Anderen \textit{mingw32ce}. Der Unterschied
-zwischen diesen beiden Kompilern besteht darin, dass ersterer
-nur dann benutzt wird, wenn man nur Linux APIs nutzt. Im Unterschied dazu wird der \textit{mingw32ce}-Kompiler dann gebraucht, wenn man
-auch \textit{Windows Mobile} APIs nutzen möchte.\newline
-Für diese Aufgabe wird der \textit{mingw32ce} für den \textit{ARM}-Prozessortyp benötigt. Dieser kann auf der Homepage des CeGCC-Projekts
-heruntergeladen und in das passende Systemverzeichniss entpackt werden.\newline
-Hat man diese zwei Schritte erledigt, hat man auch schon den CeGCC erfolgreich auf seinem System installiert.
-
-\subsection{Enlightenment}
-Unter dem Namen \textit{Enlightenment} werden mehrere Programme zusammengefasst, welche zusammen einen kompletten \textit{Window-Manager}
-bilden. Auch hier handelt es sich um ein \textit{Open-Source} Projekt. Um ein \textit{Frontend}, welches mit einer Enlightenment Bibliothek
-erstellt wurde, auf einem Smart Phone starten zu können müssen mehrere Programme mit dem \textit{CeGCC} kompiliert werden. Diese sind: \textit{evil, eina,
-eet, embryo, evas, ecore, edje und elementary}. Diese Programme werden mit dem von den Entwicklern bereitgestelltem Source Code kompiliert.
-
-Bevor man allerdings damit beginnen kann, müssen noch ein paar benötigte Packete aus dem Ubuntu-Repository installiert werden.
-
-\begin{verbatim}
-sudo apt-get install build-essential make gcc bison flex subversion
-autoconf libtool gettext libfreetype6-dev libpng12-dev zlib1g-dev
-libjpeg-dev libtiff-dev libungif4-dev librsvg2-dev xorg-dev
-libltdl3-dev libcurl4-dev cvs subversion git-core doxygen proj
-libsqlite3-0 libsqlite3-dev
-\end{verbatim}
-
-Nachdem diese Packete installiert wurden kann man sich nun die einzelnen Packete aus dem \textit{Subversion-Repository} der Entwickler
-herunterladen.\newline
-Nun muss man sich noch ein Verzeichniss anlegen, in welchem die für Windows Mobile kompilierten Dateien abgelegt werden. Des weiteren
-muss noch eine Datei angelegt werden, in welcher die Pfade zu dem genutzten Kompiler liegen und welche dann einmalig exportiert werden
-müssen, damit die benötigten \textit{Header-Files}, textit{Libraries} und \textit{Binaries} auch vom Betriebssystem gefunden werden.
-Diese Datei wird im folgenden ``mingw32ce.env'' benannt.
-
-\begin{verbatim}
- touch mingw32ce.env
-\end{verbatim}
-
-Nun müssen noch in diese Datei die zu exportierenden Pfade geschrieben werden.
-
-\begin{verbatim}
-export CEGCC_PATH=/opt/cegcc
-export MINGW32CE_PATH=/opt/mingw32ce
-export WINCE_PATH=$HOME/workspace/wince
-
-export PATH=$CEGCC_PATH/bin:$MINGW32CE_PATH/bin:$PATH
-export CPPFLAGS="-I$WINCE_PATH/include -I$WINCE_PATH/zlib-1.2.3-dev/include
- -I$WINCE_PATH/libjpeg-6b-dev/include -I$WINCE_PATH/win_iconv-dev/include
- -I$WINCE_PATH/freetype-2.3.7-dev/include
- -I$WINCE_PATH/libpng-1.2.33-dev/include/libpng12
- -I$WINCE_PATH/win_iconv-dev/include -I/opt/mingw32ce/arm-mingw32ce/include/"
-export LDFLAGS="-L$WINCE_PATH/lib -L$WINCE_PATH/zlib-1.2.3-dev/lib
- -L$WINCE_PATH/libjpeg-6b-dev/lib
- -L$WINCE_PATH/win_iconv-dev/include -L$WINCE_PATH/freetype-2.3.7-dev/lib
- -L$WINCE_PATH/libpng-1.2.33-dev/lib -L$WINCE_PATH/win_icon-dev/lib
- -L$CEGCC_PATH/lib"
-export LD_LIBRARY_PATH="$WINCE_PATH/bin"
-export PKG_CONFIG_PATH="$WINCE_PATH/lib/pkgconfig"
-\end{verbatim}
-
-Der Inhalt dieser Datei muss nun in jeder neu geöffneten Shell neu exportiert werden, da sie durch die hier gewählte Methode nur in
-eben diesen Shell's gelten wo sie exportiert wurden.\newline
-Bei den Variablen ``CEGCC\_PATH'' und ``MINGW32CE\_PATH'' ist der Pfad zum Verzeichniss des \textit{cegcc}, beziehungsweiße des \textit{mingw32ce}
-Kompilers einzutragen. Unter ``WINCE\_PATH'' muss der Pfad, zu dem Verzeichniss in dem die kompilierten Daten gespeichert werden sollen,
-eingetragen werden. Mit ``PATH'' werden die \textit{Binaries}, der zwei Kompiler, in den Systempfad aufgenommen. Des weiteren werden unter
-``CPPFLAGS'' die \textit{include}-Pfade und unter ``LDFLAGS'' die \textit{Librarie} Pfade abgelegt. ``LD\_LIBRARY\_PATH'' zeigt auf den Ordner
-in welchem die kompilierten \textit{Binaries} liegen. ``PKG\_CONFIG\_PATH'' zeigt schliesslich noch auf den Ordner der die Packetinformationen
-der installierten Dateien beinhaltet. Dieses exportieren geschieht mit dem folgenden Aufruf.
-
-\begin{verbatim}
-source <Pfad-zu-der-Datei>/mingw32ce.env
-\end{verbatim}
-
-Im nächsten Schritt muss nun noch ein Ordner angelegt werden, in welchem der \textit{Enlightenment Source-Code} abgelegt wird. Nun muss noch in
-dieses Verzeichniss gewechselt werden und es kann mit dem ersten Programm begonnen werden.
-
-\subsubsection{evil}
-Als erstes ist es nötig das Programm \textit{evil} aus dem \textit{SVN}, welches von den Entwicklern bereit gestellt wurde, herunterzuladen.
-Das herunterladen geschieht mit:
-
-\begin{verbatim}
- svn co http://svn.enlightenment.org/svn/e/trunk/evil
-\end{verbatim}
-
-Nachdem alle Dateien erfolgreich heruntergeladen wurden muss, falls nicht schon geschen, die Datei mit den \textit{Umgebungsvaribalen}
-eingelesen werden. Nachdem dies geschehen ist, kann man nun das Konfigurationsskript starten
-
-\begin{verbatim}
- ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
-\end{verbatim}
-
-Durch diesen Aufruf wird der Installationspfad auf den Wert der Variable ``WINCE\_PATH'' gesetzt und als Zielsystem ein
-\textit{ARM-Prozessor} gesetzt und der \textit{mingw32ce}-Kompiler als Kompiler gewählt.\newline
-Nachdem dieses Skript erfolgreich durchgeführt wurde, kann man im nächsten Schritt das Programm erstellen.
-
-\begin{verbatim}
- make
-\end{verbatim}
+\section{Technische Grundlagen}
-Ist auch dies erfolgreich durchgelofen, so muss man nun noch in einem letzen Schritt die erstellten Dateien im Zielordner installieren.
+Eine Applikation für mobile Geräte, welche das Ziel der Kommunikation zwischen Benutzern sowie deren Vernetzung hat, sollte auf
+möglichst vielen Plattformen ausführbar sein. Somit wäre es möglich viele Nutzer zu erreichen und auch die Kommunikation zwischen
+einem Besitzer eines \textit{iPhones} sowie dem Besitzer eines \textit{PalmPre} wäre sichergestellt, ohne die Software mehrere
+Male zu implementiern. Des weiteren ist es auch von Interesse, ob andere Programme und Bibliotheken auf den jeweiligen Systemen
+ausführbar sind. Grundlegend sind Betriebsysteme interessant, die über einen \textit{POSIX-Layer} verfügen. Dieser Layer stellt
+eine Schnittstelle zwischen Anwendungen und Betriebssytem dar. Somit können Anwendungen die auf einem \textit{Linux}-System
+entwickelt wurden ohne weiteres auf ein anderes, \textit{POSIX} kompatibles System, portiert werden.\newline
+Auch die Frage der unterstützten Programmiersprachen stellt sich, da das Programm nicht ständig neu implementiert werden soll,
+wenn es auf ein neues Gerät portiert wird.\newline
-\begin{verbatim}
- make install
-\end{verbatim}
+Die Problematik der Plattformwahl aufgrund von vorhandener oder nicht vorhandener Hardware ist im Vergleich nicht allzu
+groß. So haben mittlerweile die meisten der aktuellen Geräte eine ähnliche Ausstattung was Speicher und Prozessorleistung angeht.
+Auch erweiterte Features wie GPS oder Lagesensoren sind in den meisten aktuellen Geräten vorhanden oder werden in der nächsten
+Generation, des jeweiligen Herstellers, vorhanden sein.\newline
-Nun sollte \textit{evil} erfolgreich im Zielordner installiert worden sein.
+\subsection{Betriebsysteme für mobile Geräte}
-\subsubsection{eina}
+Im folgenden werden die fünf bekanntesten Betriebssysteme für mobile Geräte kurz vorgestellt und auf die
+Portierungsmöglichkeiten der einzelnen Systeme eingegangen.
-Auch hier ist es auch wieder nötig die Dateien aus dem Entwickler-Repository herunterzuladen.
+\subsubsection{Windows Mobile}
-\begin{verbatim}
- svn co http://svn.enlightenment.org/svn/e/trunk/eina
-\end{verbatim}
+Der wohl bekannteste Vertreter ist \textit{Windows Mobile}. Die aktuelle Version 6.5 wurde von Microsoft
+auch \textit{Windows Phone} betitelt.Das gesamte Betriebssystem basiert auf der \textit{Windows Win32 API} und lässt
+ähnlichkeiten zu den Desktop-Varianten der Windows-Familie erkennen. \textit{Windows Phone} besitzt keinen
+\textit{POSIX Layer}, allerdings existiert ein \textit{Cross-Compiler} names \textit{CeGCC} \citep{CeGCC}, mit welchem
+Programme die in \textit{C}/\textit{C++} geschrieben wurden für diese Plattform kompiliert werden können.\newline
-Danach wird auch hier wieder das ``autogen.sh'' Skript aufgerufen.
+%Will man für dieses Betriebssystem Anwendungen entwickeln so bietet Microsoft eine eigenes \textit{Software Development Kit
+%(SDK)}
+%an, welches auch jeder frei nutzen kann. Bei der Programmierung kann hierbei sowohl auf \textit{C}/\textit{C++},
+%sowie auch auf Java zurückgegriffen werden. Allerdings ist die \textit{Win32 API} nich kompatibel mit der Desktopversion, weshalb
+%Anwendungen getrennt entwickelt oder portiert werden müssen.\newline
+
+%Wie Im Kapitel Tutorial schon erwähnt, lässt sich mit Hilfe eines \textit{Cross-Compilers} das \textit{Enlightenment}-Paket für
+%dieses System, mit etwas Aufwand, portieren. Durch diese Tatsache und der Unterstützung von \textit{C}/\textit{C++}
+%eignet sich Windows Mobile sehr gut als Plattform für Anwendungen, welche nich unbedingt von vorne herein für diese entwickelt
+%wurden.
+
+\subsubsection{Android}
+
+Bei \textit{Android} \citep{Android} handelt es sich um ein neueres Betriebssystem für Smart Phones. Das von Google entwickelte
+System setzt auf einen Linux-Kernel der Version 2.6 auf. Dieser Kernel kümmert sich um die Prozess- und Speicherverwaltung,
+Kommunikation sowie um die Hardwareabstraktion. \newline
+
+Zum implementieren von Anwendungen stellt Google eigens ein eigenes \textit{SDK} bereit. Dieses greift allerdings nur auf
+\textit{Java}-Bibliotheken zurück, womit sich die nutzbaren Sprachen im moment eben auf diese beschränken. Somit können Programme
+die in \textit{C} oder \textit{C++} geschrieben wurden nicht portiert werden. Auch wenn man einen passenden
+\textit{Cross-Compiler} nutzt ist die Portierung nicht immer möglich, da Google die \textit{libc}-Bibliothek (unter
+\textit{Android} nun \textit{Bionic} genannt) an mobile Geräte angepasst und verändert hat.\newline
+
+Durch diese starken Einschränkungen und dem fehlende \textit{POSIX Layer} ist es somit nicht möglich Programme, welche unter
+Linux oder in \textit{C}/\textit{C++} entwickelt wurden, für dieses System zu kompilieren.
+
+\subsubsection{WebOS}
+
+\textit{WebOS} \citep{WebOS} gehört nicht zu den weit verbeiteten Betriebsystemen, allerdings wird es hier aufgeführt, da
+\textit{Enlightenment} portiert werden kann. Das System wurde von \textit{Palm} als Nachfolger von \textit{PalmOS} entwickelt.
+Momentan ist das System nur auf zwei Geräten zu finden: Auf dem \textit{Palm Pre} und dem \textit{Palm Pixi}.\newline
+
+Für dieses Betriebssystem existiert sowohl ein \textit{SDK} für \textit{HTML5}, \textit{CSS} und \textit{Java} sowie ein
+weiteres, welches im März 2010 veröffentlicht wird, für \textit{C} und \textit{C++}. Des weiteren existiert
+eine erweiterung des \textit{POSIX Layers} names \textit{PIPS}. Es werden somit mehrere Programmiersprachen unterstützt
+und es besteht die Möglichkeit den \textit{POSIX Layer} zu nutzen.\newline
+
+\subsubsection{iPhone OS}
+
+Bei \textit{iPhoneOS} \citep{iPhoneOS} handelt es sich um eine portierte Version von MacOS. Es wurde eigens für das
+iPhone entwickelt. Auch für dieses System existiert ein \textit{SDK}, welches allerdings nur die Sprache \textit{Objective-C}
+unterstützt. Des weiteren fehlt auch eine Unterstützung des \textit{POSIX Layers}. Der größte Kritikpunkt an diesem System dürfte
+allerdings das fehlen von \textit{Multitasking}-Unterstützung sein. Somit ist es nicht möglich zwei Anwendungen parallel
+auszuführen, was gerade \textit{location awareness} Anwendungen stark einschränkt, da hier häufig weitere Dienste im
+Hintergrund aktiv sein sollten.\newline
+
+\subsubsection{Symbian OS}
+
+\textit{SymbianOS} \citep{SymbianOS} ist eine Betriebssystem welches vorzugsweise auf Geräten der Firma \textit{Nokia} zum
+Einsatz kommt. Es existiert ein \textit{SDK}, was neben \textit{C}/\textit{C++} auch noch weitere Sprachen wie zum Beispiel
+\textit{Python} oder \textit{Java} unterstützt. Mit dem \textit{SDK} wird auch ein \textit{Cross-Compiler} angeboten, welcher es
+ermöglicht Programme direkt zu portieren. Des weitern besitzt \textit{Symian OS} auch einen \textit{POSIX Layer}.
+
+\subsubsection{Zielplattform}
+
+Als primäre Zielplattform für diese Arbeit wurde \textit{Windows Mobile} gewählt. Im ersten Schritt wurde das benutzen von
+\textit{iPhone OS} und \textit{Android} ausgeschlossen. Aufgrund ihrer Restriktionen, wie den fehlenden \textit{POSIX Layer}
+und Einschränkungen der \textit{SDK's} sowie die unterstützten Sprachen sind Programme, welche für diese Plattform entwickelt
+wurden nur auf diesen nutzbar. Diese Tatsache und die nicht vorhandene \textit{Multitasking}-Unterstützung des
+\textit{iPhones} machen diese zwei Geräte für diese Arbeit uninteressant.\newline
+
+Aufgrund der weiten Verbreitung, sowie der vorhandenen Tools ist die Wahl für dieses Projekt auf \textit{Windows Mobile}
+gefallen. So werden zum einen viele Benutzer erreicht und zum anderen kann die Software mit geringem Aufwand nach \textit{Symbian
+OS} und \textit{WebOS} portiert werden und ist somit bei richtiger Implementierung auf mehreren Plattformen ausführbar.
+
+Aufgrund der Entscheidung, \textit{Windows Mobile} zu nutzen, wird als \textit{Cross-Compiler} der \textit{CeGCC} verwendet. Mit
+desen Hilfe können in einer Linx Umgebung die für \textit{Windows Mobile} benötigten Bibliotheken und ausführbaren Dateien
+erstellt werden.\newline
+
+\subsection{Softwaregrundlagen}
+
+Um Software, welche unter Linux entwickelt wurde, nach \textit{Windows Mobile} zu portieren werden bestimmte Softwarelösungen
+vorrausgesetzt, welche im folgenden kurz erläutert werden.
+
+\subsubsection{CeGCC}
+
+Aufgrund der Entscheidung, \textit{Windows Mobile} zu nutzen, wird als \textit{Cross-Compiler} der \textit{CeGCC} verwendet.
+Bei \textit{CeGCC} handelt es sich um ein \textit{Open-Source} Projekt, bassierend auf dem GCC. Mit desen Hilfe können in
+einer Linux Umgebung die für \textit{Windows Mobile} benötigten Bibliotheken und ausführbaren Dateien erstellt werden.\newline
-\begin{verbatim}
- ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread
-\end{verbatim}
+Es wird zwischen zwei verschiedenen Arten des CeGCC's unterschieden. Zum Einen \textit{CeGCC}, zum Anderen \textit{mingw32ce}.
+Der Unterschied zwischen diesen beiden Kompilern besteht darin, dass ersterer nur dann benutzt wird, wenn man nur Linux
+Bibliotheken nutzt. Der \textit{mingw32ce}-Kompiler wird dann gebraucht, wenn man auch \textit{Windows Mobile}
+Bibliotheken einbinden möchte.\newline
-Es werden bei diesem Aufruf die gleichen Parameter wie bei \textit{evil} übergeben. Hinzu kommt noch ``--disable-pthread''. Mit diesem
-Parameter wird \textit{threading} beim erstellen von \textit{eina} deaktiviert, da \textit{ARM-Prozessoren} dies nicht unterstützen.\newline
-Nachdem das Skript durchgelaufen ist, muss man nun auch wieder das Programm erstellen und im Zielverzeichniss installieren.
+\subsubsection{Enlightenment}
-\begin{verbatim}
- make ; make install
-\end{verbatim}
+Neben einem \textit{Cross-Compiler} wird noch ein geeignetes Frontend benötigt, um das Programm auch für den Benutzer
+ansprechend darzustellen, sowie eine einfache Bedienbarkeit zu garantieren. Hier fiel die Wahl auf das freie, seit 1997
+existierende, \textit{Enlightenment} \citep{efl} Projekt. Dieses Softwarepaket unterstützt alle gängigen Plattformen wie
+Windows, Linux, BSD und MacOS. Es beinhaltet einen eigenen \textit{Window-Manager} names \textit{Elementary}. \textit{Elementary}
+bietet ein umfangreiches Paket an grafischen Elementen die genutzt und frei angeordnet werden können.
+
+\begin{figure}[h]
+\centering
+ \includegraphics[width=2.2cm]{Bilder/elm-app-01_2} \includegraphics[width=2.7cm]{Bilder/elm-app-02_2}
+ \caption{Beispiele verschiedener \textit{Elementary} Icons}
+\end{figure}
-\subsubsection{eet}
+\textit{Elementary} setzt auf die \textit{Enlightenment Foundation Libraries (EFL)} auf. Diese Bibliotheken werden zum Teil von
+Enlightenment benötigt, andere können für optionale Features installiert werden. Für die Darstellung auf mobilen Geräten sind die
+Pakete \textit{Evil, Eina, Eet, Embryo, Evas, Ecore, Edje} und\textit{Elementary} nötig.
-Bevor man \textit{eet} erstellen kann, muss man noch vier vorgefertigte \textit{tar-Archive} im Verzeichniss, welches in der Variable
-``WINCE\_PATH'' gespeichert wurde, entpacken. Diese Archive kann man unter den Links, welche in Anhang 2 zu finden sind, herunterladen.
-Nach dem herunterladen müssen diese nur noch in das ``WINCE\_PATH''-Verzeichniss kopiert und entpackt werden. Nun kann man den Quellcode
-für \textit{eet} herunterladen.
+\begin{figure}[h]
+\centering
+ \includegraphics[width=2.7cm]{Bilder/efl}
+ \caption{Aufbau von \textit{Enlightenment}}
+\end{figure}
-\begin{verbatim}
- svn co http://svn.enlightenment.org/svn/e/trunk/eet
-\end{verbatim}
+Bei \textit{Ecore} handelt es sich um eine \textit{library} welche das serialisieren von mehreren Programmteilen ermöglicht und
+für den Betrieb auf mobilen Geräten optimiert wurde. \textit{Edje} ist eine komplexe grafische Design und Layout Bibliothek,
+welche mit einer internen \textit{state machine} und einem Zustandsgraphen speichert was wo, in welcher Farbe und wie sichtbar
+ist und gezeichnet wird. Die Bibliothek \textit{Evas} ist eine \textit{canvas}-Bibliothek, welche sich um Effekte wie
+Alpha-Blending oder das skalieren von Bildern kümmert. \textit{Eina} stellt verschiedene, optimierte Datentypen und Tools
+bereit.\newline
-Nachdem die Dateien heruntergeladen sind, muss wieder das ``autogen.sh``-Skript aufgerufen werden.
-
-\begin{verbatim}
- ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
-\end{verbatim}
-
-Im Anschluss muss nun auch wieder kompiliert und installiert werden.
-
-\begin{verbatim}
- make ; make install
-\end{verbatim}
-
-\subsubsection{embryo}
-
-\begin{verbatim}
- svn co http://svn.enlightenment.org/svn/e/trunk/embryo
-\end{verbatim}
-
-Nachdem die Dateien heruntergeladen sind auch wieder das Skript aufrufen.
-
-\begin{verbatim}
- ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
-\end{verbatim}
-
-Im Anschluss nun auch wieder kompilieren und installieren.
-
-\begin{verbatim}
- make ; make install
-\end{verbatim}
-
-\subsubsection{evas}
-
-Auch für \textit{evas} müssen mehrere \textit{tar-Archive} heruntergeladen werden. Auch sollen diese in das gleiche Verzeichniss, wie
-die vorhergegangenen Archive, entpackt werden. Nun müssen noch die Dateien, welche die Packetinformationen beinhalten für die heruntergeladen
-Dateien ergänzt werden:
-
-\begin{verbatim}
- cp $WINCE_PATH/cp libpng-1.2.33-dev/lib/pkgconfig/libpng* $WINCE_PATH/lib/pkgconfig/
- cp $WINCE_PATH/freetype-2.3.7-dev/lib/pkgconfig/freetype2.pc $WINCE_PATH/lib/freetype2.pc
-\end{verbatim}
-
-Nun müssen diese Packetinformationen noch bearbeitet werden. Dazu müssen diese mit einem beliebigen Editor geöffnet werden und in beiden
-Dateien der Wert von ''prefix`` auf ''WINCE\_PATH`` gesetzt werden.
-
-Nachdem dies durchgeführt wurde kann nun \textit{evas} heruntergeladen werden.
-
-\begin{verbatim}
- svn co http://svn.enlightenment.org/svn/e/trunk/evas
-\end{verbatim}
-
-Nun muss auch hier, wie bei allen anderen Programmen das ''autogen.sh``-Skript aufgerufen werden.
-
-\begin{verbatim}
- ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-async-events
-\end{verbatim}
-
-Als nächster Schritt muss nun das Programm kompiliert werden.
-
-\begin{verbatim}
- make
-\end{verbatim}
-
-Sollte hierbei die Datei ''ft2build.h`` nicht gefunden werden, so muss diese an die richtige Stelle kopiert werden. Eigentlich liegt die
-Datei an folgendem Ort:
-
-\begin{verbatim}
- $WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h
-\end{verbatim}
-
-Allerdings wird sie im Ordner ''freetype2`` nicht gefunden. Um dies zu umgehen muss ''ft2build.h`` einfach eine Ordnerebene nach oben
-kopiert werden.
-
-\begin{verbatim}
- cp $WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h $WINCE_PATH/freetype-2.3.7-dev/include
-\end{verbatim}
-
-Um einen weiteren Fehler von vorneherein zu umgehen, muss man noch den Pfad eines eingebundenen Headers in ''ft2build.h`` abändern.
-Hierzu öffnet man ''ft2build.h`` mit einem beliebigen Editor und ändert folgendes
-
-\begin{verbatim}
- #include <freetype/config/ftheader.h>
-\end{verbatim}
-
-zu
-
-\begin{verbatim}
- #include <freetype2/freetype/config/ftheader.h>
-\end{verbatim}
-
-ab. Anschliessend zu dieser Lösung muss nun einfach der ''freetype``-Ordner um eine Ebene nach oben kopieren werden, da die
-\textit{include}-Pfade in den Headern von ''freetype2`` stellenweiße nicht korrekt sind.\newline
-Falls man nun noch \textit{evas} mit \textit{DirectX-Support} kompilieren möchte, muss man das \textit{DirectX-SDK} herunterladen
-und ''ddraw.h`` in die Verzichnisse ''/opt/cegcc/arm-cegcc/include/w32api/'' und ''/opt/mingw32ce/arm-mingw32ce/include/'' kopieren.
-
-\subsubsection{ecore}
-
-Um \textit{ecore} zu erstellen muss zu allererst eine Änderung im ``winnt.h''-Header vorgenommen werden. Dieser liegt im
-\textit{include}-Verzeichniss des \textit{mingw32ce}-Kompilers.
-
-\begin{verbatim}
- #define PROCESS_SET_QUOTA 0x0100
- #define PROCESS_SET_INFORMATION 0x0200
- #define PROCESS_QUERY_INFORMATION 0x0400
-+#define PROCESS_SUSPEND_RESUME 0x0800
- #define PROCESS_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0xfff)
-
- #define THREAD_TERMINATE 0x0001
-\end{verbatim}
-
-Der mit ``+'' gekennzeichnete Eintrag ``PROCESS\_SUSPEND\_RESUME'' muss in die Datei ``winnt.h'' eingefügt werden.\newline
-Nachdem dieser Schritt ausgeführt wurde kann nun auch \textit{ecore} kompiliert werden. Dazu wird auch hier wieder zuerst das
-``autogen.sh'' Skript ausgeführt.
-
-\begin{verbatim}
- ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread
-\end{verbatim}
-
-Nachdem dies erfolgreich ausgeführt wurde können nun auch die gleichen zwei Schritte wie bei den vorhergegangenen Programmen
-ausgeführt werden.
-
-\subsubsection{edje}
-
-Auch hier gilt wieder, Dateien herunterladen.
-
-\begin{verbatim}
- svn co http://svn.enlightenment.org/svn/e/trunk/embryo
-\end{verbatim}
-
-Nachdem die Dateien heruntergeladen wurden, muss auch hier wieder das Skript aufgerufen werden.
-
-\begin{verbatim}
- ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
-\end{verbatim}
-
-Die letzten beiden Schritte sind auch hier wieder kompilieren und installieren.
-
-\begin{verbatim}
- make ; make install
-\end{verbatim}
-
-\subsubsection{elementary}
-
-Zuerst müssen auch hier die benötigten Daten heruntergeladen werden.
-
-\begin{verbatim}
-svn co http://svn.enlightenment.org/svn/e/trunk/TMP/st/elementary
-\end{verbatim}
-
-Nun muss auch wieder das ``autogen.sh'' Skript heruntergeladen werden.
-
-\begin{verbatim}
- ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --with-edje-cc=$WINCE_PATH/bin/edje_cc
-\end{verbatim}
-
-Um zwei Fehlern vorzubeugen, welche beim erstellen der Test-Files von \textit{elementary} auftreten muss man im in der Datei
-``Makefile.am'' im Ordner ``src/bin/'' alle Vorkommnisse von ``test\_fileselector.c'' entfernen und folgende Zeilen auskommentieren.
-
-\begin{verbatim}
-bin_PROGRAMS = elementary_test
-if BUILD_QUICKLAUNCH
-bin_PROGRAMS += elementary_quicklaunch elementary_run elementary_testql
-endif
-\end{verbatim}
-
-Nun kann das Programm auf gewohnte Art und Weise erstellt und installiert werden.
-
-\begin{verbatim}
- make ; make install
-\end{verbatim}
-
-\subsubsection{Weitere Schritte}
-
-Im Anschluss an das Erstellen dieser Programme muss nun noch ein Skript in WINCE\_PATH angelegt und dessen Zugriffsrechte abgeändert
-werden.
-
-\begin{verbatim}
- touch efl_zip.sh
- chmod 774 efl_zip.sh
-\end{verbatim}
-
-In dieses Skript wird nun der Code eingefügt, welcher unter Anhang 4 zu finden ist.\newline
-Bei Ausführung dieses Skripts werden die vorhandenen \textit{DLL's} nocheinmal komprimiert und alles in einen Ordner mit dem Namen
-``efl'' kopiert. Im Anschluss wird der ganze Ordner noch in einem \textit{Zip-Archiv} komprimiert. Möchte man nun noch eigene Anwendungen
-hinzufügen, so muss man diese nur in diesen ``efl'' Ordner hinzufügen und erneut komprimieren. Nun kann dieses Archiv auf das
-Mobile Gerät kopiert und entpackt werden.
+Im Anhang 1 ist eine genaue Anweisung zu finden, um \textit{Enlightenment} für \textit{Windows Mobile} zu erstellen. \ No newline at end of file