summaryrefslogtreecommitdiffstats
path: root/ausarbeitung
diff options
context:
space:
mode:
authorPatrick Hornecker2010-02-05 10:22:24 +0100
committerPatrick Hornecker2010-02-05 10:22:24 +0100
commit99e14a0d8f0447290eaff38be4e71afb63a3e332 (patch)
tree4326645e0fff19aa8136eac8777b304c99768eb3 /ausarbeitung
parenttex source and barcode improvements (diff)
downloadfriendfinder-99e14a0d8f0447290eaff38be4e71afb63a3e332.tar.gz
friendfinder-99e14a0d8f0447290eaff38be4e71afb63a3e332.tar.xz
friendfinder-99e14a0d8f0447290eaff38be4e71afb63a3e332.zip
tex source and barcode improvements
Diffstat (limited to 'ausarbeitung')
-rw-r--r--ausarbeitung/Anhang.aux4
-rw-r--r--ausarbeitung/Anhang.tex404
-rw-r--r--ausarbeitung/Anhang.tex~405
-rw-r--r--ausarbeitung/Ausblick.tex55
-rw-r--r--ausarbeitung/Friend_Finder.tex219
-rw-r--r--ausarbeitung/Tutorial.aux38
-rw-r--r--ausarbeitung/Tutorial.tex461
-rw-r--r--ausarbeitung/Tutorial.tex.backup332
-rw-r--r--ausarbeitung/Tutorial.tex~461
-rw-r--r--ausarbeitung/literature.bib33
-rw-r--r--ausarbeitung/literature.bib~35
-rw-r--r--ausarbeitung/maindoc.aux26
-rw-r--r--ausarbeitung/maindoc.log443
-rw-r--r--ausarbeitung/maindoc.out61
-rw-r--r--ausarbeitung/maindoc.pdfbin1144708 -> 1369112 bytes
-rw-r--r--ausarbeitung/maindoc.tex2
-rw-r--r--ausarbeitung/maindoc.tex~6
-rw-r--r--ausarbeitung/maindoc.toc69
18 files changed, 1648 insertions, 1406 deletions
diff --git a/ausarbeitung/Anhang.aux b/ausarbeitung/Anhang.aux
index 057c89e..03897b0 100644
--- a/ausarbeitung/Anhang.aux
+++ b/ausarbeitung/Anhang.aux
@@ -1,6 +1,6 @@
\relax
\@setckpt{Anhang}{
-\setcounter{page}{26}
+\setcounter{page}{29}
\setcounter{equation}{0}
\setcounter{enumi}{5}
\setcounter{enumii}{0}
@@ -14,7 +14,7 @@
\setcounter{subsubsection}{0}
\setcounter{paragraph}{0}
\setcounter{subparagraph}{0}
-\setcounter{figure}{0}
+\setcounter{figure}{3}
\setcounter{table}{0}
\setcounter{NAT@ctr}{0}
\setcounter{parentequation}{0}
diff --git a/ausarbeitung/Anhang.tex b/ausarbeitung/Anhang.tex
index 90980be..3297ab6 100644
--- a/ausarbeitung/Anhang.tex
+++ b/ausarbeitung/Anhang.tex
@@ -3,9 +3,350 @@
\subsection*{Anhang 1}
+Um die Pakete \textit{Evil, Eina, Eet, Embryo, Evas, Ecore, Edje} und \textit{Elementary} von Ubuntu nach Windows Mobile zu
+portieren, sind die folgenden Schritte nötig:
+
+Im allerersten Schritt muss eine aktuelle Version des \textit{CeGCC's} heruntergeladen und installiert werden. Die benötigten
+Dateien können auf der Projekthomepage gefunden und heruntergeladen werden. Für diese Aufgabe wird der \textit{mingw32ce} für den
+\textit{ARM}-Prozessortyp benötigt. Dieser muss auf der Homepage des CeGCC-Projekts heruntergeladen und in das passende
+Systemverzeichniss entpackt werden.\newline
+
+Bevor man mit dem nächsten Schritt fortfahren 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 Pakete 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}
+
+Ist auch dies erfolgreich durchgelofen, so muss man nun noch in einem letzen Schritt die erstellten Dateien im Zielordner
+installieren.
+
+\begin{verbatim}
+ make install
+\end{verbatim}
+
+Nun sollte \textit{Evil} erfolgreich im Zielordner installiert worden sein.
+
+\subsubsection*{Eina}
+
+Auch hier ist es auch wieder nötig die Dateien aus dem Entwickler-Repository herunterzuladen.
+
+\begin{verbatim}
+ svn co http://svn.enlightenment.org/svn/e/trunk/eina
+\end{verbatim}
+
+Danach wird auch hier wieder das ``autogen.sh'' Skript aufgerufen.
+
+\begin{verbatim}
+ ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread
+\end{verbatim}
+
+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.
+
+\begin{verbatim}
+ make ; make install
+\end{verbatim}
+
+\subsubsection*{Eet}
+
+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{verbatim}
+ svn co http://svn.enlightenment.org/svn/e/trunk/eet
+\end{verbatim}
+
+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 (siehe Anhang 3). 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.
+
\subsection*{Anhang 2}
-Archive für \textit{eet}:
+Archive für \textit{Eet}:
\begin{itemize}
\item zlib-1.2.3-bin.tar.bz2: \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/zlib-1.2.3/zlib-1.2.3-bin.tar.bz2/download}
\item zlib-1.2.3-dev.tar.bz2: \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/zlib-1.2.3/zlib-1.2.3-dev.tar.bz2/download}
@@ -15,7 +356,7 @@ Archive für \textit{eet}:
\subsection*{Anhang 3}
-Archive für \textit{evas}:
+Archive für \textit{Evas}:
\begin{itemize}
\item freetype-2.3.7-bin.tar.bz2: \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/freetype-2.3.7/freetype-2.3.7-bin.tar.bz2/download}
\item freetype-2.3.7-dev.tar.bz2: \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/freetype-2.3.7/freetype-2.3.7-dev.tar.bz2/download}
@@ -80,24 +421,53 @@ arm-mingw32ce-strip efl/eina/mp/eina_fixed_bitmap.dll
arm-mingw32ce-strip efl/eina/mp/eina_pass_through.dll
-cp lib/evas/modules/engines/buffer/mingw32ce-arm/module.dll efl/evas/modules/engines/buffer/mingw32ce-arm/engine_buffer.dll
-cp lib/evas/modules/engines/software_16/mingw32ce-arm/module.dll efl/evas/modules/engines/software_16/mingw32ce-arm/engine_software_16.dll
-cp lib/evas/modules/engines/software_16_wince/mingw32ce-arm/module.dll efl/evas/modules/engines/software_16_wince/mingw32ce-arm/engine_software_16_wince.dll
-cp lib/evas/modules/engines/software_generic/mingw32ce-arm/module.dll efl/evas/modules/engines/software_generic/mingw32ce-arm/engine_software_generic.dll
+cp lib/evas/modules/engines/buffer/mingw32ce-arm/module.dll \
+efl/evas/modules/engines/buffer/mingw32ce-arm/engine_buffer.dll
+
+cp lib/evas/modules/engines/software_16/mingw32ce-arm/module.dll \
+efl/evas/modules/engines/software_16/mingw32ce-arm/\
+engine_software_16.dll
+
+cp lib/evas/modules/engines/software_16_wince/mingw32ce-arm/module.dll \
+efl/evas/modules/engines/software_16_wince/mingw32ce-arm/\
+engine_software_16_wince.dll
+
+cp lib/evas/modules/engines/software_generic/mingw32ce-arm/module.dll \
+efl/evas/modules/engines/software_generic/mingw32ce-arm/\
+engine_software_generic.dll
+
+cp lib/evas/modules/loaders/eet/mingw32ce-arm/module.dll \
+efl/evas/modules/loaders/eet/mingw32ce-arm/loader_eet.dll
+
+cp lib/evas/modules/loaders/jpeg/mingw32ce-arm/module.dll \
+efl/evas/modules/loaders/jpeg/mingw32ce-arm/loader_jpeg.dll
+
+cp lib/evas/modules/loaders/pmaps/mingw32ce-arm/module.dll \
+efl/evas/modules/loaders/pmaps/mingw32ce-arm/loader_pmaps.dll
+
+cp lib/evas/modules/loaders/png/mingw32ce-arm/module.dll \
+efl/evas/modules/loaders/png/mingw32ce-arm/loader_png.dll
+
+cp lib/evas/modules/loaders/xpm/mingw32ce-arm/module.dll \
+efl/evas/modules/loaders/xpm/mingw32ce-arm/loader_xpm.dll
+
+cp lib/evas/modules/savers/eet/mingw32ce-arm/module.dll \
+efl/evas/modules/savers/eet/mingw32ce-arm/saver_eet.dll
+
+cp lib/evas/modules/savers/png/mingw32ce-arm/module.dll \
+efl/evas/modules/savers/png/mingw32ce-arm/saver_png.dll
+
+arm-mingw32ce-strip efl/evas/modules/engines/buffer/\
+mingw32ce-arm/engine_buffer.dll
-cp lib/evas/modules/loaders/eet/mingw32ce-arm/module.dll efl/evas/modules/loaders/eet/mingw32ce-arm/loader_eet.dll
-cp lib/evas/modules/loaders/jpeg/mingw32ce-arm/module.dll efl/evas/modules/loaders/jpeg/mingw32ce-arm/loader_jpeg.dll
-cp lib/evas/modules/loaders/pmaps/mingw32ce-arm/module.dll efl/evas/modules/loaders/pmaps/mingw32ce-arm/loader_pmaps.dll
-cp lib/evas/modules/loaders/png/mingw32ce-arm/module.dll efl/evas/modules/loaders/png/mingw32ce-arm/loader_png.dll
-cp lib/evas/modules/loaders/xpm/mingw32ce-arm/module.dll efl/evas/modules/loaders/xpm/mingw32ce-arm/loader_xpm.dll
+arm-mingw32ce-strip efl/evas/modules/engines/software_16/\
+mingw32ce-arm/engine_software_16.dll
-cp lib/evas/modules/savers/eet/mingw32ce-arm/module.dll efl/evas/modules/savers/eet/mingw32ce-arm/saver_eet.dll
-cp lib/evas/modules/savers/png/mingw32ce-arm/module.dll efl/evas/modules/savers/png/mingw32ce-arm/saver_png.dll
+arm-mingw32ce-strip efl/evas/modules/engines/\
+software_16_wince/mingw32ce-arm/engine_software_16_wince.dll
-arm-mingw32ce-strip efl/evas/modules/engines/buffer/mingw32ce-arm/engine_buffer.dll
-arm-mingw32ce-strip efl/evas/modules/engines/software_16/mingw32ce-arm/engine_software_16.dll
-arm-mingw32ce-strip efl/evas/modules/engines/software_16_wince/mingw32ce-arm/engine_software_16_wince.dll
-arm-mingw32ce-strip efl/evas/modules/engines/software_generic/mingw32ce-arm/engine_software_generic.dll
+arm-mingw32ce-strip efl/evas/modules/engines/\
+software_generic/mingw32ce-arm/engine_software_generic.dll
arm-mingw32ce-strip efl/evas/modules/loaders/eet/mingw32ce-arm/loader_eet.dll
arm-mingw32ce-strip efl/evas/modules/loaders/jpeg/mingw32ce-arm/loader_jpeg.dll
diff --git a/ausarbeitung/Anhang.tex~ b/ausarbeitung/Anhang.tex~
index ee9417f..1c67dce 100644
--- a/ausarbeitung/Anhang.tex~
+++ b/ausarbeitung/Anhang.tex~
@@ -3,9 +3,350 @@
\subsection*{Anhang 1}
+Um die Pakete \textit{Evil, Eina, Eet, Embryo, Evas, Ecore, Edje} und \textit{Elementary} von Ubuntu nach Windows Mobile zu
+portieren, sind die folgenden Schritte nötig:
+
+Im allerersten Schritt muss eine aktuelle Version des \textit{CeGCC's} heruntergeladen und installiert werden. Die benötigten
+Dateien können auf der Projekthomepage gefunden und heruntergeladen werden. Für diese Aufgabe wird der \textit{mingw32ce} für den
+\textit{ARM}-Prozessortyp benötigt. Dieser muss auf der Homepage des CeGCC-Projekts heruntergeladen und in das passende
+Systemverzeichniss entpackt werden.\newline
+
+Bevor man mit dem nächsten Schritt fortfahren 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 Pakete 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}
+
+Ist auch dies erfolgreich durchgelofen, so muss man nun noch in einem letzen Schritt die erstellten Dateien im Zielordner
+installieren.
+
+\begin{verbatim}
+ make install
+\end{verbatim}
+
+Nun sollte \textit{Evil} erfolgreich im Zielordner installiert worden sein.
+
+\subsubsection*{Eina}
+
+Auch hier ist es auch wieder nötig die Dateien aus dem Entwickler-Repository herunterzuladen.
+
+\begin{verbatim}
+ svn co http://svn.enlightenment.org/svn/e/trunk/eina
+\end{verbatim}
+
+Danach wird auch hier wieder das ``autogen.sh'' Skript aufgerufen.
+
+\begin{verbatim}
+ ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread
+\end{verbatim}
+
+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.
+
+\begin{verbatim}
+ make ; make install
+\end{verbatim}
+
+\subsubsection*{Eet}
+
+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{verbatim}
+ svn co http://svn.enlightenment.org/svn/e/trunk/eet
+\end{verbatim}
+
+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 (siehe Anhang 3). 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.
+
\subsection*{Anhang 2}
-Archive für \textit{eet}:
+Archive für \textit{Eet}:
\begin{itemize}
\item zlib-1.2.3-bin.tar.bz2: \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/zlib-1.2.3/zlib-1.2.3-bin.tar.bz2/download}
\item zlib-1.2.3-dev.tar.bz2: \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/zlib-1.2.3/zlib-1.2.3-dev.tar.bz2/download}
@@ -15,7 +356,7 @@ Archive für \textit{eet}:
\subsection*{Anhang 3}
-Archive für \textit{evas}:
+Archive für \textit{Evas}:
\begin{itemize}
\item freetype-2.3.7-bin.tar.bz2: \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/freetype-2.3.7/freetype-2.3.7-bin.tar.bz2/download}
\item freetype-2.3.7-dev.tar.bz2: \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/freetype-2.3.7/freetype-2.3.7-dev.tar.bz2/download}
@@ -25,7 +366,7 @@ Archive für \textit{evas}:
\subsection*{Anhang 4}
-efl_zip.sh:
+efl\_zip.sh:
\begin{verbatim}
#!/bin/sh
@@ -80,24 +421,52 @@ arm-mingw32ce-strip efl/eina/mp/eina_fixed_bitmap.dll
arm-mingw32ce-strip efl/eina/mp/eina_pass_through.dll
-cp lib/evas/modules/engines/buffer/mingw32ce-arm/module.dll efl/evas/modules/engines/buffer/mingw32ce-arm/engine_buffer.dll
-cp lib/evas/modules/engines/software_16/mingw32ce-arm/module.dll efl/evas/modules/engines/software_16/mingw32ce-arm/engine_software_16.dll
-cp lib/evas/modules/engines/software_16_wince/mingw32ce-arm/module.dll efl/evas/modules/engines/software_16_wince/mingw32ce-arm/engine_software_16_wince.dll
-cp lib/evas/modules/engines/software_generic/mingw32ce-arm/module.dll efl/evas/modules/engines/software_generic/mingw32ce-arm/engine_software_generic.dll
+cp lib/evas/modules/engines/buffer/mingw32ce-arm/module.dll \
+efl/evas/modules/engines/buffer/mingw32ce-arm/engine_buffer.dll
+
+cp lib/evas/modules/engines/software_16/mingw32ce-arm/module.dll \
+efl/evas/modules/engines/software_16/mingw32ce-arm/\
+engine_software_16.dll
+
+cp lib/evas/modules/engines/software_16_wince/mingw32ce-arm/module.dll \
+efl/evas/modules/engines/software_16_wince/mingw32ce-arm/\
+engine_software_16_wince.dll
+
+cp lib/evas/modules/engines/software_generic/mingw32ce-arm/module.dll \
+efl/evas/modules/engines/software_generic/mingw32ce-arm/engine_software_generic.dll
+
+cp lib/evas/modules/loaders/eet/mingw32ce-arm/module.dll \
+efl/evas/modules/loaders/eet/mingw32ce-arm/loader_eet.dll
+
+cp lib/evas/modules/loaders/jpeg/mingw32ce-arm/module.dll \
+efl/evas/modules/loaders/jpeg/mingw32ce-arm/loader_jpeg.dll
+
+cp lib/evas/modules/loaders/pmaps/mingw32ce-arm/module.dll \
+efl/evas/modules/loaders/pmaps/mingw32ce-arm/loader_pmaps.dll
+
+cp lib/evas/modules/loaders/png/mingw32ce-arm/module.dll \
+efl/evas/modules/loaders/png/mingw32ce-arm/loader_png.dll
+
+cp lib/evas/modules/loaders/xpm/mingw32ce-arm/module.dll \
+efl/evas/modules/loaders/xpm/mingw32ce-arm/loader_xpm.dll
+
+cp lib/evas/modules/savers/eet/mingw32ce-arm/module.dll \
+efl/evas/modules/savers/eet/mingw32ce-arm/saver_eet.dll
+
+cp lib/evas/modules/savers/png/mingw32ce-arm/module.dll \
+efl/evas/modules/savers/png/mingw32ce-arm/saver_png.dll
+
+arm-mingw32ce-strip efl/evas/modules/engines/buffer/\
+mingw32ce-arm/engine_buffer.dll
-cp lib/evas/modules/loaders/eet/mingw32ce-arm/module.dll efl/evas/modules/loaders/eet/mingw32ce-arm/loader_eet.dll
-cp lib/evas/modules/loaders/jpeg/mingw32ce-arm/module.dll efl/evas/modules/loaders/jpeg/mingw32ce-arm/loader_jpeg.dll
-cp lib/evas/modules/loaders/pmaps/mingw32ce-arm/module.dll efl/evas/modules/loaders/pmaps/mingw32ce-arm/loader_pmaps.dll
-cp lib/evas/modules/loaders/png/mingw32ce-arm/module.dll efl/evas/modules/loaders/png/mingw32ce-arm/loader_png.dll
-cp lib/evas/modules/loaders/xpm/mingw32ce-arm/module.dll efl/evas/modules/loaders/xpm/mingw32ce-arm/loader_xpm.dll
+arm-mingw32ce-strip efl/evas/modules/engines/software_16/\
+mingw32ce-arm/engine_software_16.dll
-cp lib/evas/modules/savers/eet/mingw32ce-arm/module.dll efl/evas/modules/savers/eet/mingw32ce-arm/saver_eet.dll
-cp lib/evas/modules/savers/png/mingw32ce-arm/module.dll efl/evas/modules/savers/png/mingw32ce-arm/saver_png.dll
+arm-mingw32ce-strip efl/evas/modules/engines/\
+software_16_wince/mingw32ce-arm/engine_software_16_wince.dll
-arm-mingw32ce-strip efl/evas/modules/engines/buffer/mingw32ce-arm/engine_buffer.dll
-arm-mingw32ce-strip efl/evas/modules/engines/software_16/mingw32ce-arm/engine_software_16.dll
-arm-mingw32ce-strip efl/evas/modules/engines/software_16_wince/mingw32ce-arm/engine_software_16_wince.dll
-arm-mingw32ce-strip efl/evas/modules/engines/software_generic/mingw32ce-arm/engine_software_generic.dll
+arm-mingw32ce-strip efl/evas/modules/engines/\
+software_generic/mingw32ce-arm/engine_software_generic.dll
arm-mingw32ce-strip efl/evas/modules/loaders/eet/mingw32ce-arm/loader_eet.dll
arm-mingw32ce-strip efl/evas/modules/loaders/jpeg/mingw32ce-arm/loader_jpeg.dll
diff --git a/ausarbeitung/Ausblick.tex b/ausarbeitung/Ausblick.tex
index 17a61eb..89bee9a 100644
--- a/ausarbeitung/Ausblick.tex
+++ b/ausarbeitung/Ausblick.tex
@@ -2,60 +2,7 @@
Die Software \textit{Friend Finder} zeigt nur einen recht einfachen Ansatz auf, um Daten sicher zu versenden und die Position von
anderen Benutzern aufzuzeigen. Im nun folgenden Teil dieser Arbeit werden Ausblicke auf weitere Möglichkeiten und Ansätze, für
-Nachrichtenverschlüsselung und \textit{location awareness}, aufgezeigt.
-
-\subsection{Plattformunabhängigkeit}
-
-Für mobile Systeme existieren zum momentanen Zeitpunkt mehrere verschiedene Betriebssysteme, welche zum Teil andere Ansätze
-verfolgen. Es werden nun die drei bekanntesten Vertreter der Betriebssyteme, für Smart Phones, vorgestellt und es wird erläutert
-werden, inwiefern sie sich zur portierung von Software eignen.
-
-\subsubsection{Windows Mobile}
-
-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 \textit{Windows}-Familie erkennen. \newline
-
-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 funktionieren 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 ist es somit auch nicht wirklich möglich das \textit{Elementary}-Paket für \textit{Android}
-zu compilieren, da dieses komplett in \textit{C} geschrieben wurde. Somit muss Software, um auf einem \textit{Android}-Handy ohne
-Probleme lauffähig zu sein, in \textit{Java} geschrieben sein. Als graphische Darstellung kann der Entwickler die von Google
-bereitgestellten \textit.{GUI}-Elemente nutzen.
-
-\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++}. Hiermit werden mehrere Programmiersprachen
-unterstütz und die Portierungsmöglichkeiten dieser Plattform gewinnen erheblich an Attraktivität.\newline
-
-Wie bereits erwähnt, wurde \textit{Enlightenment}, genauer gesagt \textit{Evas}, bereits erfolgreich für WebOS compiliert und
-ausgeführt. Mit dem \textit{C SDK} und dieser Portierung wäre es so ohne weitere Probleme möglich den \textit{Friend Finder} auf
-einem \textit{WebOS}-Gerät auszuführen.
+Nachrichtenverschlüsselung und \textit{location awareness}, aufgezeigt.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/ausarbeitung/Friend_Finder.tex b/ausarbeitung/Friend_Finder.tex
index 641ee3b..e823035 100644
--- a/ausarbeitung/Friend_Finder.tex
+++ b/ausarbeitung/Friend_Finder.tex
@@ -1,17 +1,35 @@
\section{Friend Finder}
-Die Software die als praktischer Teil dieser Abschlussarbeit entwickelt wurde hat den Namen \textit{Friend Finder}. Im folgenden
-werden zuerst
-die verschiedenen Features des Programms vorgestellt. Im Anschluss werde die verwendeten Verfahren und Bibliotheken, welche zur
-Realisierung des Projektes verwendet wurden, erläutert. Im Abschnitt Implementierung wird kurz auf den Aufbau des Programmes
-eingegangen. Zuletzt wird unter Analyse der gemessene Datenverkehr des \textit{Friend Finders} besprochen.
+So gut wie alle Geräte der heutigen Generation von Smart Phones besitzen einen GPS Empfänger. Dieser kann auf unterschiedliche
+Art und Weiße genutzt werden. Von einfachem bestimmen der aktuellen Position, über Routing bis hin zu Freizeitaktivitäten wie
+\textit{Geocaching}. Eine weitere, interessante Möglichkeit wäre es, sich Freunde anzeigen zu lassen, die sich in
+einem bestimmten Radius um die eigene Position befinden. Mit diesen könnte man dann, ähnlich wie mit einem Chat Programm,
+Nachrichten austauschen.\newline
+Da es unter Datenschutzaspekten aber nicht wünschenswert ist das jeder Dritte die Position anderer ermitteln kann, sollten die
+Daten verschlüsselt versendet werden. Ansonsten könnte es zu Szenarien, wie das erstellen eines Bewegungsprofiles der Benutzer,
+kommen. Es muss somit gewährleistet sein, dass die gesendeten Daten nur dann lesbar sind, wenn der Nutzer dem einwilligt. \newline
+
+Mit einer solchem Programm wäre es zum Beispiel möglich, sich mit Freunden zum Essen zu verabreden, wenn diese sich in der Nähe
+der eigenen Position befinden. Der Nutzer sollte einfach nur den Radius wählen, innerhald dessen Personen sichtbar sind, und
+könnte diese dann per verschlüsselter Textnachricht anschreiben. \newline
+Eine andere Möglichkeit bestünde darin, dass man auf bestimmten Veranstaltungen wissen möchte wer teilnimmt. Dabei stellt
+der Nutzer allerdings fest das eine ihm bekannte Person die gleiche Software nutzt, aber für ihn nicht sichtbar ist. Der
+Benutzer muss nun die Möglichkeit haben dieser Person ohne aufwand den für die Verschlüsselung genutzen Schlüssel zu
+übergeben.\newline
+
+Eine ähnliche Software wurde schon im Paper \textit{Spontaneous Privacy-Aware Location Sharing} \citep{SPALS} beschrieben und
+implementiert. Allerdings lag bei dieser Arbeit der Focus auf einem effizienten Protokoll zur verschlüsselten
+Positionsübertragung. Der Aspekt, dass Nutzer nur innerhalb eines begrenzten Radius angezeigt werden, wurde hier nicht
+berücksichtigt. Auch die Software \textit{SmokeScreen} \citep{SmokeScreen} beschäftigt sich mit versenden privater Informationen
+innerhalb von Gruppen die der Nutzer festlegt. Allerdings bewegt sich \textit{SmokeScreen} nich im Rahmen von \textit{location
+awareness}. Somit sollte die Software ein effizientes Protokoll, eine sichere Verschlüsselung sowie die Möglichkeit der
+Einstellung durch den Anwender verbinden.
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\subsection{Features}
+\subsection{Anforderungsanalyse}
-\textit{Friend Finder} hat bietet verschiedene Features, welche vom Nutzer angewendet werden können und komplett in \textit{C}
-implementiert wurden. Bei diesen Features handelt es sich um:
+Anhand der oben erstellten Szenarien sollte diese Software also folgende Funktionen besitzen:
\begin{itemize}
\item Versenden von Nachrichten
@@ -20,75 +38,62 @@ implementiert wurden. Bei diesen Features handelt es sich um:
\item Erstellen eines 2D-Barcodes
\end{itemize}
-\subsubsection{Nachrichten versenden}
-
-Der Nutzer kann hiermit Nachrichten verfassen und an einen, vorher festgellegten, Freund senden. Dieser kann wiederrum auf
-diese Nachrichten antworten. Die versendeten Textnachrichten werden vom Programm, mit einem vorher festgelegten \textit{private
-key} verschlüsselt. Damit nun die andere Person die erhaltene Nachricht entschlüsseln kann, muss er den selben \textit{private
-key} besitzen.
-
\subsubsection{Eigene Position senden}
-Mit \textit{Friend Finder} kann man die eigene Position im \textit{Latitude}/\textit{Longtitude} Format versenden. Auch hier
-werden die gesendeten Daten mit symmetrischen Verschlüsselungsverfahren für dritte unleserlich gemacht.
+Um den Standort anderer Nutzer zu sehen, muss das Programm in der Lage sein, auf einer Karte deren Position anzuzeigen. Damit
+für andere Nutzer die eigene Position sichtbar ist, muss diese in einem gängigen Format versendet werden. Hierfür fiel die Wahl
+auf das Standart Positions Format \textit{Latitude}/\textit{Longtitude}. Um Datensicherheit zu garantieren müssen diese
+Positionsdaten in verschlüsselter Form versendet werden.
\subsubsection{Position anderer Teilnehmer anzeigen}
-Zusätzlich zum senden der eigenen Position, kann man sich auch die Positionen der anderen Teilnehmer anzeigen lassen. Hierbei
-kann man wählen, ob man alle Nutzer innerhalb eines Radius von 100, 250 oder 1000 Metern sehen möchte. Dieser Radius geht von der
-momentanen Position des Nutzers aus.
+Um die Position anderer Teilnehmer zu visualisieren muss das Programm in der Lage sein, die eigehenden Positionsdaten sowohl zu
+entschlüsseln, als auch diese auf einer Karte darzustellen. Des weiteren muss ein Format für die Karte genutzt werden, welches auf
+dem mobilen Gerät darstelbar ist und man einfach auf den neusten Stand bringen kann. Es sollte auch möglich sein, nur
+Benutzer innerhalb einer bestimmten Entfernung anzuzeigen, da eine Person die sich in 6 Kilometer Entfernung aufhält für Dienste
+dieser Art nur begrenzt sinnvoll sind.
-\subsubsection{2D-Barcode}
+\subsubsection{Nachrichten versenden und empfangen}
-Da das Programm ein symmetrisches Verfahren anwendet, stellt sich die Frage wie man den \textit{private key} an andere Personen
- weitergeben kann, ohne dass dritte diesen auch erhalten können. Hier wäre ein Ansatz, dass man aus einer Zeichenketten einen
-\textit{2D-Barcode} erstellt und ihn von anderen Nutzern abfotographieren lässt. Diese können aus dem erhaltenen Barcode nun
-wieder die ursprüngliche Zeichenkette erstellen und haben somit den \textit{private key} erhalten. \newline
+Damit man mit anderen Nutzern, welche sich in der Nähe der eigenen Position befinden, auch Kommunizieren kann, muss die Software
+in der Lage sein Textnachrichten zu versenden und zu empfangen. Auch soll die Datensicherheit garantiert sein. Der Datenverkehr
+muss also auch bei dieser Funktion in verschlüsselter Form stattfinden.
-Dieser Programmteil kann anhanden einer solchen beliebigen Zeichenkette einen Barcode erstellen und ausgeben. Dieser könnte dann,
- wie schon erwähnt, mit einer entsprechenden anderen Software fotographiert und wieder umgewandelt werden.
+\subsubsection{2D-Barcode}
+
+Um einen Schlüssel an eine Person weiterzugeben, deren Positon man sehen oder mit ihr kommunizieren möchte, muss es eine
+Möglichkeit geben diesen Schlüssel auf einfach Weise weiterzugeben. Hierzu kann aus einer vorher festgelegten Zeichenkette einen
+2D-Barcode erstellt und angezeigt werden. Zur weitergabe des Schlüssels muss nun der andere Anwender diesen vom Display
+fotographieren oder per MMS versenden und auf dem anderen Gerät wiederherstellen.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Verwendete Verfahren und Bibliotheken}
-Um die Software, welche im Rahmen dieser Bachelor-Arbeit realisiert wurde, zu implementieren war die Nutzung verschiedener
-Bibliotheken nötig. Im folgenden werden die verwendeten Bibliotheken kurz erläutert.
+Die oben beschriebene Software wurde mit fast all diesen Funktionen, ausser das abfotographiern und umwandeln der 2D-Barcodes in
+einen Schlüssel, im Rahmen dieser Arbeit implementiert und hört auf den Namen \textit{Friend Finder}. Im folgenden Abschnitt wird
+die Implementierung und Funktionsweise der einzelnen Funktionen erläutert, sowie die zugrundeliegenden Bibliotheken vorgestellt.
+\newline
-\subsubsection{Versenden der Nachrichten}
+\textit{Friend Finder} wurde so konzipiert, dass die Graphische Darstellung ohne großen Aufwand vom den restlichen
+Teilen der Software abgekoppelt und durch eine andere, darstellende Bibliothek ersetzt werden kann. Somit
+könnte man \textit{Enlightenment} durch eine andere Art der Darstellung austauschen, ohne dabei die Funktionalität der
+zugrunde liegenden Komponenten zu zerstören. \newline
+Da das ver- und entschlüsseln der Daten möglichst wenig Rechenaufwand erzeugen und der Schlüsselaustausch nicht zu
+kompliziert sein soll, nutzt das Programm ein symmetrisches Verschlüsselungsverfahren. \newline
+\textit{Abbildung 3} zeigt den Kommunikationsaustausch von \textit{Friend Finder}. Der \textit{Message Sender} ist für das
+Versenden und Empfangen der Textnachrichten zuständig, \textit{Sender} sendet die eigene Position, \textit{Receiver} empfängt
+die Positionen der anderen Nutzer und sendet Acknowledgements an die teilnehmenden \textit{Sender}. Alle drei Teile geben ihre
+empfangenen Daten an die \textit{GUI} weiter, welche sie mit Hilfe von \textit{Enlightenment} ausgibt.
-Um Nachrichten zu versenden wurde für dieses Projekt die \textit{IRC-Client Bibliothek}\citep{libircclient} verwendet. Diese
-\textit{library} bietet verschiedene Funktionen um eine Verbindung mit einem \textit{IRC-Server} zu erstellen und Nachrichten an
-diesen zu senden, sowie eingehende Nachrichten zu empfangen. Des weiteren ist es mit Hilfe dieser Bibliothek auch möglich,
-Nachrichten zu versenden. \newline
-
-\subsubsection{Verschlüsselung der Daten}
-
-Zur Verschlüsselung der gesendeten Nachrichten wird die Bibliothek des \textit{OpenSSL-Projekts}\citep{OpenSSL} verwendet. Hierzu
-werden die Daten mit dem \textit{Blowfish-Algorithmus} verschlüsselt. Bei diesem Algorithmus handelt es sich um ein symmetrisches
-Verfahren, bei welchem alle Teilnehmer den gleichen privaten Schlüssel zum ver- sowie entschlüsseln nutzen. Die genutzte
-Implementierung enstammt der \textit{libcrypto} Bibliothek.
-
-\subsubsection{Erzeugen eines 2D-Barcodes}
-
-\subsubsection{Grafisches Benutzeroberfläche}
+\begin{figure}[h]
+\centering
+ \includegraphics[width=10cm]{Bilder/ablauf}
+ \caption{\textit{Friend Finder} Nachrichtenaustausch}
+\end{figure}
-Die Graphische Nutzeroberfläche wurde mit Hilfe von Bibliotheken aus dem \textit{Elementary}-Paket realisiert. Insbesondere sind
-wurden \textit{Elementary} und \textit{Evas} genutzt. \textit{Elementary} ist eine Sammlung von \textit{Widgets} für
-Benutzeroberflächen, welche einfach und schnell zu implementieren sind. Um das Zeichnen der Elemente auf verschiedenen Systemen
-kümmert sich \textit{Evas}.
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%
-
-\subsection{Implementierung}
-
-Das Programm \textit{Friend Finder} ist so konzipiert, dass die Graphische Darstellung ohne großen Aufwand vom den restlichen Teilen
-der Software abgekoppelt werden kann und durch eine andere Bibliothek ersetzt werden kann. Dies hat zum Vorteil, dass man
-\textit{Enlightenment} durch eine andere Art der Darstellung austauschen kann, ohne dabei die Funktionalität der zugrunde liegenden
-Komponenten zu zerstören. Somit ist, was die Art der Darstellung angeht, schon von vornherein einfacher möglich die Software auf
-unterschiedlichen Plattformen zu konvertieren. \newline
-\textit{Friend Finder} ist an sich in fünf Submodule aufgeteilt. Diese wären
+\textit{Friend Finder} ist an sich in fünf Submodule aufgeteilt:
\begin{enumerate}
\item Graphische Benutzeroberfläche
@@ -98,17 +103,23 @@ unterschiedlichen Plattformen zu konvertieren. \newline
\item Erstellen eines Barcodes
\end{enumerate}
-\subsubsection*{Graphische Benutzeroberfläche}
+\subsubsection{Grafisches Benutzeroberfläche}
+
+Zum erstellen der Oberfläche wurde \textit{Enlightenment} verwendet. Diese Bibliothek stellt alle benötigten Funktionen bereit und
+bietet eine Fülle an vordefinierten Oberflächenelement. Der gesammte Programmcode der Benutzeroberfläche wurde in einer Datei
+zusammengefast (\textit{gui.c}). Diese Tatsache vereinfacht das Erhalten der Modularität, da einfach nur diese Datei
+durch eine andere ersetzen werden muss um einen anderen Typ von Oberfläche zu benutzen. \newline
+In der der Datei \textit{gui.c} sind alle Funktionen enthalten um die Oberflächenelement zu erzeugen und zu platzieren. Um die
+gewünschte Funktionalität der einzelnen Elemente zu realisieren wurden auch die Aufrufe der benötigten Funktionen aus anderen
+Modulen in dieser Datei implementiert. \newline
+Wie schon erwähnt, wurde die Graphische Nutzeroberfläche mit Hilfe von Bibliotheken aus dem \textit{Elementary}-Paket
+realisiert.
-Zum erstellen der Oberfläche wurde, wie schon erwähnt, \textit{Enlightenment} verwendet. Durch diese Bibliothek werden alle benötigten
-Funktionen bereitgestellt. Der gesammte Programmcode der Nutzeroberfläche wurde in eine Datei geschrieben (\textit{gui.c}). Diese
-Tatsache macht die erhaltung der Modularität einfacher, da man einfach nur diese Datei durch eine andere ersetzen muss um eine anderen
-Typ von Oberfläche zu nutzen. \newline
-Inner der Datei \textit{gui.c} sind alle Funktionen enthalten um die Oberflächenelement zu erzeugen und zu platzieren. Um die gewünschte
-Funktionalität der einzelnen Elemente zu realisieren wurden auch die Aufrufe der benötigten Funktionen aus anderen Modulen in dieser
-Datei implementiert.
+\subsubsection{Versenden der Nachrichten}
-\subsubsection*{Versenden von Textnachrichten}
+Um Daten im Allgemeinen zu versenden wurde das \textit{IRC}-Protokoll \citep{IRC} verwendet. Die
+Vorteile dieses Protokolles liegen in seiner weiten Verbreitung, einer ausgedehnten Serverstruktur, sowie in dessen
+Stabilität.\newline
In der Datei \textit{msg\_sender.c} sind alle Funktionen und Aufrufe implementiert, welche nötig sind um die Verbindung zum
\textit{IRC-Server} zu erstellen und die Nachrichten zu verschicken. Um eine Verbindung zu einem gegebenen \textit{IRC-Server} zu
@@ -117,48 +128,63 @@ den \textit{Nickname} des Benutzers oder die \textit{IP-Adresse} des Servers. Na
kann man nun durch das Aufrufen der Funktion "\textit{set\_txt\_msg(char* msg)}" die Nachricht versenden. Wird eine Nachricht
empfangen so wird diese an die Funktion "\textit{show\_message(char* msg)}" , welcher zur Benutzeroberfläche gehört, übergeben.
Bei der Implementerierung des Nachrichtenversandes ist eine Besonderheit zu erwähnen. Das genutzte Verschlüsselungsverfahren
-\textit{Blowfish} wurde seitens der \textit{OpenSSL} Bibliothek als \textit{Blockcipher} implementiert. Das bedeutet, das immer
-nur maximal 64 Bit Nachrichten verschlüsselt werden können. Da in der Programmiersprache \textit{C} dies genau acht Zeichen
-entspricht, werden alle zu sendenden Nachrichten in Blöcke der Größe acht aufgeteilt, versendet und beim Empfänger wieder
-zusammengesetzt. \newline
+\textit{Blowfish} wurde seitens der \textit{OpenSSL}\citep{OpenSSL} Bibliothek als \textit{Blockcipher} implementiert. Das
+bedeutet, das immer nur maximal 64 Bit Nachrichten verschlüsselt werden können. Da in der Programmiersprache \textit{C} dies genau
+acht ASCII-Zeichen entspricht, werden alle zu sendenden Nachrichten in Blöcke der Größe acht aufgeteilt, versendet und beim
+Empfänger wieder zusammengesetzt. \newline
Ein weiterer wichtiger Unterschied zu den Modulen Senden und Empfangen von \textit{GPS}-Positionen ist die Tatsache, dass bei
diesem Programmteil Sender und Empfänger in der gleichen Datei implementiert wurden. Der Grund hierfür ist, dass man hier nicht
zwischen mehreren Sendern oder Empfängern unterscheiden muss, und diese zwei Teile hier somit nicht komplett getrennt voneinander
-arbeiten müssen.
+arbeiten müssen.\newline
+
+Um Nachrichten zu versenden wurde für dieses Projekt die \textit{IRC-Client Bibliothek}\citep{libircclient} verwendet. Diese
+\textit{library} bietet verschiedene Funktionen um eine Verbindung mit einem \textit{IRC-Server} zu erstellen und Nachrichten an
+diesen zu senden, sowie eingehende Nachrichten zu empfangen.\newline
+Zur Ver- und Entschlüsselung der gesendeten Nachrichten, sowie der Positionsdaten wird die Bibliothek
+des \textit{OpenSSL-Projekts}\citep{OpenSSL}, namens \textit{libcrypto}, verwendet. Hierzu werden die Daten mit dem
+\textit{Blowfish-Algorithmus} verschlüsselt. Bei diesem Algorithmus handelt es sich um ein symmetrisches
+Verfahren, bei welchem alle Teilnehmer den gleichen privaten Schlüssel zum ver- sowie entschlüsseln nutzen.
-\subsubsection*{Versenden der eigenen Position}
+\subsubsection{Versenden der eigenen Position}
-Der benötigte Programmcode zum versenden der eigenen Position ist in der Datei \textit{sender.c} zu finden. Auch hier muss zuerst
-eine \textit{IRC-Session} initialisiert werden um danach die Position zu versenden. Der Ablauf beim senden der Positionen erfolgt
+Der benötigte Programmcode zum Versenden der eigenen Position ist in der Datei \textit{sender.c} zu finden. Auch hier muss zuerst
+eine \textit{IRC-Session} initialisiert werden um danach die Position zu versenden. Der Ablauf beim Senden der Positionen erfolgt
in einer vorgegebenen Reihenfolge. Zuerst wird der verschlüsselte Längengrad, danach der verschlüsselte Breitengrade gesendet.
Daraufhin werden solange keine Daten mehr gesendet, bis der Empfänger eine Bestätigung an den \textit{IRC-Kanal} sendet. Diese
-Bestätigung ist unverschlüsselt und stellt einfach nur den \textit{Nickname} des Senders dar. Kommt dieses
-\textit{Acknowledgement} beim Sender an, so versendet dieser wieder ein \textit{Latitude/Longtitude Paar}.
+Bestätigung ist unverschlüssel. Kommt dieses \textit{Acknowledgement} beim Sender an, so versendet dieser wieder ein
+\textit{Latitude/Longtitude Paar}.\newline
-\subsubsection*{Empfangen der eigenen Position}
+Auch hier wird, wie beim Versenden der Nachrichten zum verschlüsseln der \textit{Blowfish-Algorithmus} aus \textit{libcrypto},
+sowie \textit{libircclient} zum versenden der Daten genutzt.
+\subsubsection{Empfangen der eigenen Position}
noch nicht final....empfänger empfängt nachricht, ordnet sie, leitet sie zum zeichnen weiter....grob gesehen
-\subsubsection*{Erstellen eines Barcodes}
+\subsubsection{Erzeugen eines 2D-Barcodes}
Die Datei \textit{barcode.c} beinhaltet die Funktionen zum erstellen eines 2D-Barcodes. Hierzu wird die Funktion
"\textit{generate\_barcode(char* key)}", mit einer Zeichenkette als Übergabeparameter, aufgerufen. Aus dieser Zeichenkette wird
dann ein Barcode erstellt, welcher im darauf folgenden Schritt als \textit{.png} Datei auf das Speichermedium geschrieben wird.
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Analyse}
-Im folgenden Teil wird der erzeugte Datenverkehr von \textit{Friend Finder} analysiert. Es wird hierbei vor allem ein
-die Packetgröße, sowie die Menge der versendeten Datenpakete analysiert. Der \textit{Traffic} wurde mit Hilfe des Programmes
-\textit{Wireshark} \citep{Wireshark} untersucht.\newline
+Das Ziel war es mit \textit{Friend Finder} Daten verschlüsselt zu übertragen. Es soll dabei ein möglichst geringer
+Berechnungsaufwand entstehen um die Daten zu verschlüsseln, sowie möglichst wenig Datenoverhead produziert und versendet werden.
+Dies ist notwendig, damit das Programm möglichst lange auf dem mobilen Gerät ausgeführt werden kann und nicht schon nach
+kurzer Zeit der Akku versagt. \newline
+
+Im folgenden Teil wird der erzeugte Datenverkehr von \textit{Friend Finder} analysiert. Ein Hauptaugenmerkt wird hierbei vor allem
+auf die Packetgröße, sowie die Menge der versendeten Datenpakete geworfen. Der \textit{Traffic} wurde mit Hilfe des Programmes
+\textit{Wireshark} \citep{Wireshark} untersucht.\newline
Die Analyse selbst ist in drei Teile aufgeteilt. Als erstes wird auf den allgemein entstehenden Datenverkehr eingegangen, welcher
bei Verbindungsaufbau, sowie bei Beenden der Verbindung entsteht. Der zweite Teil beschäftigt sich mit dem Versenden sowie
Empfangen von Nachrichten. Im letzten Teil dieser Analyse wird auch das dritte Feature, dass Versenden und Empfangen von
Positionen, unter die Lupe genommen.
-\subsubsection*{Allgemeiner Datenverkehr}
+\subsubsection{Allgemeiner Datenverkehr}
Wie bereits erwähnt wird zum Versenden der Nachrichten das \textit{IRC-Protokoll} \citep{IRC} verwendet. Dieses Protokoll basiert
\textit{TCP/IP} und führt somit bei Verbindungsaufbau einen \textit{TCP-Handshake} durch. Des weiteren werden
@@ -172,20 +198,20 @@ Wird eine bestehnde Verbindung beendet, so entsteht auch hier wieder Datenverkeh
Verbindung ein eigenes Verfahren nutz. Bei diesem wird ein Paket versendet welches angibt dass die Verbindung nun beendet wird.
Dieses Paket wird auch wieder bestätigt. Diese beiden Pakete werden von beiden Seiten der Kommunikation versandt.\newline
-\subsubsection*{Versenden und Empfangen von Nachrichten}
+\subsubsection{Versenden und Empfangen von Nachrichten}
Um das Versenden von Nachrichten zu evaluieren wurde "Hello World" als Testnachricht benutzt. Der \textit{Blockcipher} von
\textit{Friend Finder} teilt den Satz "Hello World" in zwei Teile auf: "Hello " und "World". Diese werden dann von \textit{TCP}
aufgrund der Fenstergröße in ein Paket gepackt. Das gesamte Paket hat die größe von 81 Bytes, wobei der \textit{TCP-Header} 32
-Bytes groß ist. Somit haben die Daten eine Größe von insgesamt 49 Bytes.\newline
+Bytes und der \textit{IP-Header} 20 Bytes groß ist. Somit haben die Daten eine Größe von insgesamt 29 Bytes.\newline
Beachtet man dass ein \textit{char} in \textit{C} die Größe von einem Byte hat und der Beispielsatz aus elf Zeichen besteht, so
-ist dieser unverschlüsselt 11 Byte groß. Somit vergrößern sich die Daten nach der Verschlüsselung um circa den Faktor 4,5.\newline
+ist dieser unverschlüsselt 11 Byte groß. Somit vergrößern sich die Daten nach der Verschlüsselung um circa den Faktor 2,6.\newline
Wenn $h$ die Größe des \textit{TCP-Headers} und $t$ die Anzahl der Zeichen der unverschlüsselten Nachricht ist, so ergibt sie die
-Länge der zu versendenden Nachricht aus: $h + (t * 4,5)$.
+Länge der zu versendenden Nachricht aus: $h + (t * 2,6)$.
-\subsubsection*{Versenden und Empfangen von Positionen}
+\subsubsection{Versenden und Empfangen von Positionen}
-\subsubsection*{Fazit der Auswertung}
+\subsubsection{Fazit der Auswertung}
Zur Analyse des Allgemeinen Datenverkehrs ist zu sagen dass Aufgrund der Tatsache dass das \textit{IRC-Protokoll}
auf \textit{TCP/IP} bassiert, eine großer Overhead an Paketen versandt wird. Somit werde wesentlich mehr Pakete als
@@ -196,10 +222,3 @@ Um den den von \textit{TCP} generierten Datenoverhead zu minimieren, wäre auch
interessant. Dies gilt weniger für das versenden der Textnachrichten sondern eher für das versenden der Positionen. Hier werden,
wenn mehrere User aktiv sind, ständig Positionsdaten und Acknowledgements zwischen Server und Clients ausgetauscht. Somit könnte
durch die Nutzung von \textit{UDP} hier einiges an versendeten Packeten gespart werden.\newline
-
-
-%streamcipher???
-%datenoverhead
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%
diff --git a/ausarbeitung/Tutorial.aux b/ausarbeitung/Tutorial.aux
index 6e000a2..7ad5a53 100644
--- a/ausarbeitung/Tutorial.aux
+++ b/ausarbeitung/Tutorial.aux
@@ -1,21 +1,25 @@
\relax
-\citation{efl}
-\citation{Windows}
\citation{CeGCC}
-\@writefile{toc}{\contentsline {section}{\numberline {2}Tutorial}{3}{section.2}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}CeGCC}{3}{subsection.2.1}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Enlightenment}{3}{subsection.2.2}}
-\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.1}evil}{5}{subsubsection.2.2.1}}
-\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.2}eina}{6}{subsubsection.2.2.2}}
-\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.3}eet}{6}{subsubsection.2.2.3}}
-\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.4}embryo}{7}{subsubsection.2.2.4}}
-\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.5}evas}{7}{subsubsection.2.2.5}}
-\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.6}ecore}{9}{subsubsection.2.2.6}}
-\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.7}edje}{9}{subsubsection.2.2.7}}
-\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.8}elementary}{10}{subsubsection.2.2.8}}
-\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.9}Weitere Schritte}{10}{subsubsection.2.2.9}}
+\citation{Android}
+\@writefile{toc}{\contentsline {section}{\numberline {2}Technische Grundlagen}{3}{section.2}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Betriebsysteme f\IeC {\"u}r mobile Ger\IeC {\"a}te}{3}{subsection.2.1}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.1.1}Windows Mobile}{3}{subsubsection.2.1.1}}
+\citation{WebOS}
+\citation{iPhoneOS}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.1.2}Android}{4}{subsubsection.2.1.2}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.1.3}WebOS}{4}{subsubsection.2.1.3}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.1.4}iPhone OS}{4}{subsubsection.2.1.4}}
+\citation{SymbianOS}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.1.5}Symbian OS}{5}{subsubsection.2.1.5}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.1.6}Zielplattform}{5}{subsubsection.2.1.6}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Softwaregrundlagen}{5}{subsection.2.2}}
+\citation{efl}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.1}CeGCC}{6}{subsubsection.2.2.1}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.2}Enlightenment}{6}{subsubsection.2.2.2}}
+\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Beispiele verschiedener \textit {Elementary} Icons}}{6}{figure.1}}
+\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Aufbau von \textit {Enlightenment}}}{7}{figure.2}}
\@setckpt{Tutorial}{
-\setcounter{page}{11}
+\setcounter{page}{8}
\setcounter{equation}{0}
\setcounter{enumi}{0}
\setcounter{enumii}{0}
@@ -26,10 +30,10 @@
\setcounter{part}{0}
\setcounter{section}{2}
\setcounter{subsection}{2}
-\setcounter{subsubsection}{9}
+\setcounter{subsubsection}{2}
\setcounter{paragraph}{0}
\setcounter{subparagraph}{0}
-\setcounter{figure}{0}
+\setcounter{figure}{2}
\setcounter{table}{0}
\setcounter{NAT@ctr}{0}
\setcounter{parentequation}{0}
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
diff --git a/ausarbeitung/Tutorial.tex.backup b/ausarbeitung/Tutorial.tex.backup
index 835809a..715e29b 100644
--- a/ausarbeitung/Tutorial.tex.backup
+++ b/ausarbeitung/Tutorial.tex.backup
@@ -1,274 +1,116 @@
-\section{Tutorial}
+\section{Technische Grundlagen}
-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} 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} Packet 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.
+Eine Applikation für mobile Geräte, welches das Ziel der kommunikation zwischen Benutzern und 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. 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 einem neuen Gerät ausgeführt werden soll.\newline
-\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. Es gibt zum einen einen Kompiler der eben \textit{cegcc} genannt wird, zum anderen aber
-aber auch einen welcher \textit{mingw32ce} genannt wird. 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.
+Die Problematik der Plattformwahl aufgrund von vorhandener oder nicht vorhandener Hardware ist im direkten 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
-\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.
+\subsection{Betriebsysteme für mobile Geräte}
-Bevor man allerdings damit beginnen kann, müssen noch ein paar benötigte Packete aus dem Ubuntu-Repository installiert werden.
+Im folgenden werden die fünf bekanntesten Betriebssysteme für mobile Geräte kurz vorgestellt werden. Des weiteren wird auf die
+Portierungsmöglichkeiten der einzelnen Systeme eingegangen.
-\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}
+\subsubsection{Windows Mobile}
-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.
+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
-\begin{verbatim}
- touch mingw32ce.env
-\end{verbatim}
+%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
-Nun müssen noch in diese Datei die zu exportierenden Pfade geschrieben werden.
+%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.
-\begin{verbatim}
-export CEGCC_PATH=/opt/cegcc
-export MINGW32CE_PATH=/opt/mingw32ce
-export WINCE_PATH=$HOME/workspace/wince
+\subsubsection{Android}
-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}
+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
-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.
+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 funktionieren 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
-\begin{verbatim}
-source <Pfad-zu-der-Datei>/mingw32ce.env
-\end{verbatim}
+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.
-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{WebOS}
-\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:
+\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
-\begin{verbatim}
- svn co http://svn.enlightenment.org/svn/e/trunk/evil
-\end{verbatim}
+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
-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
+\subsubsection{iPhone OS}
-\begin{verbatim}
- ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
-\end{verbatim}
+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. Somit ist es nicht möglich zwei Anwendungen parallel
+auszuführen.\newline
-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.
+\subsubsection{Symbian OS}
-\begin{verbatim}
- make
-\end{verbatim}
+\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}.
-Ist auch dies erfolgreich durchgelofen, so muss man nun noch in einem letzen Schritt die erstellten Dateien im Zielordner installieren.
+\subsubsection{Zielplattform}
-\begin{verbatim}
- make install
-\end{verbatim}
+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.\newline
-Nun sollte \textit{evil} erfolgreich im Zielordner installiert worden sein.
+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.
-\subsubsection{eina}
+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 Linx Umgebung die für \textit{Windows Mobile} benötigten Bibliotheken und ausführbaren Dateien erstellt werden.\newline
-Auch hier ist es auch wieder nötig die Dateien aus dem Entwickler-Repository herunterzuladen.
+\subsection{}
-\begin{verbatim}
- svn co http://svn.enlightenment.org/svn/e/trunk/eina
-\end{verbatim}
+\subsubsection{CeGCC}
-Danach wird auch hier wieder das ``autogen.sh'' Skript aufgerufen.
+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. Im Unterschied dazu wird der \textit{mingw32ce}-Kompiler dann gebraucht, wenn man auch \textit{Windows Mobile}
+Bibliotheken einbindet.\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}
-
-\subsubsection{eet}
-
-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{verbatim}
- svn co http://svn.enlightenment.org/svn/e/trunk/eet
-\end{verbatim}
-
-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
-\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}
-
-
-\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}
-
-\subsection{Ueberall} \ No newline at end of file
+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
+\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}.
diff --git a/ausarbeitung/Tutorial.tex~ b/ausarbeitung/Tutorial.tex~
index c6a69d3..d2b3a34 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
diff --git a/ausarbeitung/literature.bib b/ausarbeitung/literature.bib
index f62d17f..8cfc63c 100644
--- a/ausarbeitung/literature.bib
+++ b/ausarbeitung/literature.bib
@@ -59,12 +59,13 @@ Note = {[Online; letzter Aufruf 25.01.2010]},
}
@misc{FriendSensing,
-Title = {FriendSensing: Recommending Friends Using Mobile Phones},
-author = {Daniele Quercia und Licia Capra},
+title = {FriendSensing: Recommending Friends Using Mobile Phones},
+author = {Daniele Quercia},
+author = {Licia Capra},
year = {2009},
organization = {MIT SENSEable City Laboratory, Cambridge, USA und Dept.of Computer Sience, University College London, UK},
url = {web.mit.edu/quercia/www/publications/friendSensing_short.pdf},
-Note = {[Online; letzter Aufruf 27.01.2010]},
+note = {[Online; letzter Aufruf 27.01.2010]},
}
@misc{PGPmobile,
@@ -84,3 +85,29 @@ Title = {Kerberos},
url = {http://www.kerberos.org/},
Note = {[Online; letzter Aufruf 28.01.2010]},
}
+
+@misc{iPhoneOS,
+Title = {iPhone OS},
+url = {http://www.apple.com/de/iphone/},
+Note = {[Online; letzter Aufruf 03.02.2010]},
+}
+
+@misc{SymbianOS,
+Title = {Symbian OS},
+OPTurl = {http://www.symbian.org/},
+Note = {[Online; letzter Aufruf 03.02.2010]},
+}
+
+@misc{SPALS,
+title = {Spontaneous Privacy-Aware Location Sharing},
+author = {Klaus Rechert, Konstantin Welke},
+organization = {Lehrstuhl für Kommunikationssysteme, Albert-Ludwigs Universität Freiburg},
+year = {2009},
+}
+
+@misc{SmokeScreen,
+title = {SmokeScreen: Flexible Privacy Controls for Presence-Sharing},
+author = {Landon P. Cox, Angela Dalton, Varun Marupadi},
+organization = {Department of Computer Science, Duke University},
+year = {2007},
+} \ No newline at end of file
diff --git a/ausarbeitung/literature.bib~ b/ausarbeitung/literature.bib~
index 1773fa4..8cfc63c 100644
--- a/ausarbeitung/literature.bib~
+++ b/ausarbeitung/literature.bib~
@@ -59,12 +59,13 @@ Note = {[Online; letzter Aufruf 25.01.2010]},
}
@misc{FriendSensing,
-Title = {FriendSensing: Recommending Friends Using Mobile Phones},
-author = {Daniele Quercia und Licia Capra},
+title = {FriendSensing: Recommending Friends Using Mobile Phones},
+author = {Daniele Quercia},
+author = {Licia Capra},
year = {2009},
organization = {MIT SENSEable City Laboratory, Cambridge, USA und Dept.of Computer Sience, University College London, UK},
url = {web.mit.edu/quercia/www/publications/friendSensing_short.pdf},
-Note = {[Online; letzter Aufruf 27.01.2010]},
+note = {[Online; letzter Aufruf 27.01.2010]},
}
@misc{PGPmobile,
@@ -81,6 +82,32 @@ Note = {[Online; letzter Aufruf 28.01.2010]},
@misc{Kerberos,
Title = {Kerberos},
-url = {http://www.kerberos.org/}
+url = {http://www.kerberos.org/},
Note = {[Online; letzter Aufruf 28.01.2010]},
}
+
+@misc{iPhoneOS,
+Title = {iPhone OS},
+url = {http://www.apple.com/de/iphone/},
+Note = {[Online; letzter Aufruf 03.02.2010]},
+}
+
+@misc{SymbianOS,
+Title = {Symbian OS},
+OPTurl = {http://www.symbian.org/},
+Note = {[Online; letzter Aufruf 03.02.2010]},
+}
+
+@misc{SPALS,
+title = {Spontaneous Privacy-Aware Location Sharing},
+author = {Klaus Rechert, Konstantin Welke},
+organization = {Lehrstuhl für Kommunikationssysteme, Albert-Ludwigs Universität Freiburg},
+year = {2009},
+}
+
+@misc{SmokeScreen,
+title = {SmokeScreen: Flexible Privacy Controls for Presence-Sharing},
+author = {Landon P. Cox, Angela Dalton, Varun Marupadi},
+organization = {Department of Computer Science, Duke University},
+year = {2007},
+} \ No newline at end of file
diff --git a/ausarbeitung/maindoc.aux b/ausarbeitung/maindoc.aux
index ffcc475..2639769 100644
--- a/ausarbeitung/maindoc.aux
+++ b/ausarbeitung/maindoc.aux
@@ -27,16 +27,20 @@
\bibcite{Android}{{1}{}{{Android}}{{}}}
\bibcite{CeGCC}{{2}{}{{CeGCC}}{{}}}
\bibcite{efl}{{3}{}{{efl}}{{}}}
-\bibcite{IRC}{{4}{}{{IRC}}{{}}}
-\bibcite{Kerberos}{{5}{}{{Kerberos}}{{}}}
-\bibcite{OpenSSL}{{6}{}{{OpenSSL}}{{}}}
-\bibcite{libircclient}{{7}{}{{libircclient}}{{}}}
-\bibcite{openPGP}{{8}{}{{openPGP}}{{}}}
-\bibcite{PalmOS}{{9}{}{{PalmOS}}{{}}}
-\bibcite{PGPmobile}{{10}{}{{PGPmobile}}{{}}}
-\bibcite{WebOS}{{11}{}{{WebOS}}{{}}}
-\bibcite{Windows}{{12}{}{{Windows}}{{}}}
-\bibcite{Wireshark}{{13}{}{{Wireshark}}{{}}}
-\bibcite{FriendSensing}{{14}{2009}{{und Licia~Capra}}{{}}}
+\bibcite{iPhoneOS}{{4}{}{{iPhoneOS}}{{}}}
+\bibcite{IRC}{{5}{}{{IRC}}{{}}}
+\bibcite{Kerberos}{{6}{}{{Kerberos}}{{}}}
+\bibcite{OpenSSL}{{7}{}{{OpenSSL}}{{}}}
+\bibcite{libircclient}{{8}{}{{libircclient}}{{}}}
+\bibcite{openPGP}{{9}{}{{openPGP}}{{}}}
+\bibcite{PalmOS}{{10}{}{{PalmOS}}{{}}}
+\bibcite{PGPmobile}{{11}{}{{PGPmobile}}{{}}}
+\bibcite{SymbianOS}{{12}{}{{SymbianOS}}{{}}}
+\bibcite{WebOS}{{13}{}{{WebOS}}{{}}}
+\bibcite{Windows}{{14}{}{{Windows}}{{}}}
+\bibcite{Wireshark}{{15}{}{{Wireshark}}{{}}}
+\bibcite{SPALS}{{16}{2009}{{Klaus~Rechert}}{{}}}
+\bibcite{SmokeScreen}{{17}{2007}{{Landon P.~Cox}}{{}}}
+\bibcite{FriendSensing}{{18}{2009}{{Quercia}}{{}}}
\bibstyle{dinat}
\citation{*}
diff --git a/ausarbeitung/maindoc.log b/ausarbeitung/maindoc.log
index 28c2ddc..cdbfe51 100644
--- a/ausarbeitung/maindoc.log
+++ b/ausarbeitung/maindoc.log
@@ -1,4 +1,4 @@
-This is pdfTeXk, Version 3.141592-1.40.3 (Web2C 7.5.6) (format=pdflatex 2009.12.22) 28 JAN 2010 17:15
+This is pdfTeXk, Version 3.141592-1.40.3 (Web2C 7.5.6) (format=pdflatex 2009.12.22) 4 FEB 2010 15:24
entering extended mode
%&-line parsing enabled.
**maindoc
@@ -531,7 +531,7 @@ LaTeX Info: Redefining \pageref on input line 105.
\openout2 = `Title.aux'.
(./Title.tex
-<Bilder/siegel.png, id=151, 568.2831pt x 568.2831pt>
+<Bilder/siegel.png, id=147, 568.2831pt x 568.2831pt>
File: Bilder/siegel.png Graphic file (type png)
<use Bilder/siegel.png>
(/usr/share/texmf-texlive/tex/latex/ucs/data/uni-0.def
@@ -622,439 +622,464 @@ Underfull \hbox (badness 10000) in paragraph at lines 17--23
]
\openout2 = `Tutorial.aux'.
- (./Tutorial.tex [3
+ (./Tutorial.tex
+Overfull \hbox (0.23062pt too wide) in paragraph at lines 3--12
+\OT1/ptm/m/n/12 Auch die Frage der un-ter-st[]utzten Pro-gram-mier-sprachen ste
+llt sich, da das Pro-gramm nicht st[]andig
+ []
-]
-Overfull \hbox (2.40399pt too wide) in paragraph at lines 76--76
-[]\OT1/cmtt/m/n/12 export CPPFLAGS="-I$WINCE_PATH/include -I$WINCE_PATH/zlib-1.
-2.3-dev/include[]
+Underfull \hbox (badness 10000) in paragraph at lines 3--12
+
[]
-Overfull \hbox (14.754pt too wide) in paragraph at lines 76--76
-[] \OT1/cmtt/m/n/12 -I$WINCE_PATH/win_iconv-dev/include -I/opt/mingw32ce/arm-mi
-ngw32ce/include/"[]
+Underfull \hbox (badness 10000) in paragraph at lines 13--17
+
[]
-[4] [5] [6]
-Overfull \hbox (64.15402pt too wide) in paragraph at lines 197--197
-[] \OT1/cmtt/m/n/12 cp $WINCE_PATH/cp libpng-1.2.33-dev/lib/pkgconfig/libpng* $
-WINCE_PATH/lib/pkgconfig/[]
+
+Underfull \hbox (badness 10000) in paragraph at lines 25--30
+
[]
-Overfull \hbox (95.02904pt too wide) in paragraph at lines 197--197
-[] \OT1/cmtt/m/n/12 cp $WINCE_PATH/freetype-2.3.7-dev/lib/pkgconfig/freetype2.p
-c $WINCE_PATH/lib/freetype2.pc[]
+Underfull \hbox (badness 10000) in paragraph at lines 44--47
+
[]
+[3
+
+
+]
+Underfull \hbox (badness 10000) in paragraph at lines 48--53
-Overfull \hbox (13.83946pt too wide) in paragraph at lines 199--201
-\OT1/ptm/m/n/12 be-liebi-gen Ed-i-tor ge[]offnet wer-den und in bei-den Dateien
- der Wert von ''pre-fix`` auf ''WINCE[]PATH``
[]
-Overfull \hbox (20.929pt too wide) in paragraph at lines 212--212
-[] \OT1/cmtt/m/n/12 ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --di
-sable-async-events[]
+Underfull \hbox (badness 10000) in paragraph at lines 59--62
+
[]
-[7]
-Overfull \hbox (15.93102pt too wide) in paragraph at lines 227--229
-[]\OT1/ptm/m/n/12 Allerdings wird sie im Ord-ner ''freetype2`` nicht ge-fun-den
-. Um dies zu umge-hen muss ''ft2build.h``
+
+Underfull \hbox (badness 10000) in paragraph at lines 63--67
+
[]
-Overfull \hbox (169.12907pt too wide) in paragraph at lines 232--232
-[] \OT1/cmtt/m/n/12 cp $WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2buil
-d.h $WINCE_PATH/freetype-2.3.7-dev/include[]
+Underfull \hbox (badness 10000) in paragraph at lines 70--76
+
[]
-[8]
-Overfull \hbox (33.279pt too wide) in paragraph at lines 265--265
-[] \OT1/cmtt/m/n/12 #define PROCESS_ALL_ACCESS (STANDARD_RIGHTS_REQUIRE
-D|SYNCHRONIZE|0xfff)[]
+[4]
+Underfull \hbox (badness 10000) in paragraph at lines 86--91
+
[]
-[9]
-Overfull \hbox (119.72905pt too wide) in paragraph at lines 310--310
-[] \OT1/cmtt/m/n/12 ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --wi
-th-edje-cc=$WINCE_PATH/bin/edje_cc[]
+
+Underfull \hbox (badness 10000) in paragraph at lines 96--99
+
[]
-Overfull \hbox (40.46509pt too wide) in paragraph at lines 312--314
-\OT1/ptm/m/n/12 muss man im in der Datei ``Make-file.am'' im Ord-ner ``sr-c/bin
-/'' alle Vorkomm-nisse von ``test[]fileselector.c''
+Underfull \hbox (badness 10000) in paragraph at lines 107--110
+
[]
-) [10]
-\openout2 = `Friend_Finder.aux'.
+[5]
+Underfull \hbox (badness 10000) in paragraph at lines 111--115
- (./Friend_Finder.tex
-Overfull \hbox (5.0949pt too wide) in paragraph at lines 3--8
-\OT1/ptm/m/it/12 Friend Find-er\OT1/ptm/m/n/12 . Im fol-gen-den wer-den zuerst
-die ver-schiede-nen Fea-tures des Pro-gramms vorgestellt.
[]
-LaTeX Font Info: Try loading font information for OMS+ptm on input line 17.
-(/usr/share/texmf-texlive/tex/latex/psnfss/omsptm.fd
-File: omsptm.fd
-)
-LaTeX Font Info: Font shape `OMS/ptm/m/n' in size <12> not available
-(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 17.
-Overfull \hbox (2.78857pt too wide) in paragraph at lines 25--29
-\OT1/ptm/m/n/12 Der Nutzer kann hi-er-mit Nachricht-en ver-fassen und an einen,
- vorher fest-gel-legten, Fre-und senden.
+Overfull \hbox (6.26726pt too wide) in paragraph at lines 118--123
+\OT1/ptm/m/n/12 auch f[]ur den Be-nutzer ansprechend darzustellen, sowie eine e
+in-fache Be-di-en-barkeit zu garantieren.
[]
+<Bilder/elm-app-01_2.png, id=231, 133.35536pt x 185.83714pt>
+File: Bilder/elm-app-01_2.png Graphic file (type png)
-Underfull \hbox (badness 10000) in paragraph at lines 43--47
+<use Bilder/elm-app-01_2.png>
+<Bilder/elm-app-02_2.png, id=232, 206.48572pt x 405.22821pt>
+File: Bilder/elm-app-02_2.png Graphic file (type png)
- []
+<use Bilder/elm-app-02_2.png> <Bilder/efl.png, id=233, 48.18pt x 72.27pt>
+File: Bilder/efl.png Graphic file (type png)
-[11
+<use Bilder/efl.png>
+LaTeX Warning: `h' float specifier changed to `ht'.
-]
-Underfull \hbox (badness 10000) in paragraph at lines 60--64
+Overfull \hbox (7.29773pt too wide) in paragraph at lines 140--146
+[]\OT1/ptm/m/n/12 Bei \OT1/ptm/m/it/12 Ecore \OT1/ptm/m/n/12 han-delt es sich u
+m eine \OT1/ptm/m/it/12 li-brary \OT1/ptm/m/n/12 welche das se-ri-al-isieren vo
+n mehreren Pro-grammteilen
[]
-Overfull \hbox (28.50227pt too wide) in paragraph at lines 67--71
-\OT1/ptm/m/n/12 Zur Ver-schl[]usselung der gesende-ten Nachricht-en wird die Bi
-b-lio-thek des \OT1/ptm/m/it/12 OpenSSL-Projekts\OT1/ptm/m/n/12 [[][]OpenSSL[][
-]]
+Underfull \hbox (badness 10000) in paragraph at lines 140--146
+
[]
-[12] [13]
-Overfull \hbox (0.26793pt too wide) in paragraph at lines 140--141
-\OT1/ptm/m/n/12 noch nicht fi-nal....empf[]anger empf[]angt nachricht, ord-net
-sie, leit-et sie zum ze-ich-nen weit-er....grob
+[6 <./Bilder/elm-app-01_2.png> <./Bilder/elm-app-02_2.png>]) [7 <./Bilder/efl.p
+ng>]
+\openout2 = `Friend_Finder.aux'.
+
+ (./Friend_Finder.tex
+Underfull \hbox (badness 10000) in paragraph at lines 3--11
+
[]
-[14]
-Underfull \hbox (badness 10000) in paragraph at lines 152--155
+Overfull \hbox (5.16269pt too wide) in paragraph at lines 12--19
+\OT1/ptm/m/n/12 Eine an-dere M[]oglichkeit best[]unde darin, dass man auf bes-t
+immten Ve-r-anstal-tun-gen wis-sen m[]ochte
[]
-Underfull \hbox (badness 10000) in paragraph at lines 163--166
+Underfull \hbox (badness 10000) in paragraph at lines 12--19
[]
+LaTeX Font Info: Try loading font information for OMS+ptm on input line 35.
+(/usr/share/texmf-texlive/tex/latex/psnfss/omsptm.fd
+File: omsptm.fd
+)
+LaTeX Font Info: Font shape `OMS/ptm/m/n' in size <12> not available
+(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 35.
+ [8
-Underfull \hbox (badness 10000) in paragraph at lines 167--170
+
+]
+Underfull \hbox (badness 10000) in paragraph at lines 73--77
[]
+[9]
+Overfull \hbox (10.33582pt too wide) in paragraph at lines 78--88
+\OT1/ptm/m/n/12 lung aus-tauschen, ohne dabei die Funk-tion-alit[]at der zu-gru
+nde liegen-den Kom-po-nen-ten zu zerst[]oren.
+ []
+
+<Bilder/ablauf.png, id=262, 564.60938pt x 606.76688pt>
+File: Bilder/ablauf.png Graphic file (type png)
+ <use Bilder/ablauf.png>
-Underfull \hbox (badness 10000) in paragraph at lines 171--174
+LaTeX Warning: `h' float specifier changed to `ht'.
+
+Overfull \hbox (17.98195pt too wide) in paragraph at lines 108--117
+\OT1/ptm/m/n/12 Zum er-stellen der Ober-fl[]ache wurde \OT1/ptm/m/it/12 En-ligh
+t-en-ment \OT1/ptm/m/n/12 ver-wen-det. Diese Bib-lio-thek stellt alle ben[]otig
+ten
[]
-Overfull \hbox (4.52718pt too wide) in paragraph at lines 177--185
-\OT1/ptm/m/n/12 Wenn $\OML/ztmcm/m/it/12 h$ \OT1/ptm/m/n/12 die Gr[]o^^Ye des \
-OT1/ptm/m/it/12 TCP-Headers \OT1/ptm/m/n/12 und $\OML/ztmcm/m/it/12 t$ \OT1/ptm
-/m/n/12 die An-zahl der Ze-ichen der un-ver-schl[]usselten Nachricht
+Underfull \hbox (badness 10000) in paragraph at lines 120--123
+
[]
-[15]
-Underfull \hbox (badness 10000) in paragraph at lines 195--199
+[10]
+Underfull \hbox (badness 10000) in paragraph at lines 124--139
[]
-) [16]
-\openout2 = `Ausblick.aux'.
+[11 <./Bilder/ablauf.png>]
+Underfull \hbox (badness 10000) in paragraph at lines 150--156
- (./Ausblick.tex
-Underfull \hbox (badness 10000) in paragraph at lines 15--18
+ []
+
+Overfull \hbox (16.41936pt too wide) in paragraph at lines 157--159
+[]\OT1/ptm/m/n/12 Auch hi-er wird, wie beim Versenden der Nachricht-en zum ver-
+schl[]usseln der \OT1/ptm/m/it/12 Blowfish-Algorithmus
[]
-Underfull \hbox (badness 10000) in paragraph at lines 19--23
+Overfull \hbox (0.26793pt too wide) in paragraph at lines 161--162
+\OT1/ptm/m/n/12 noch nicht fi-nal....empf[]anger empf[]angt nachricht, ord-net
+sie, leit-et sie zum ze-ich-nen weit-er....grob
+ []
+[12]
+Overfull \hbox (16.41174pt too wide) in paragraph at lines 173--177
+\OT1/ptm/m/n/12 Daten-over-head pro-duziert und versendet wer-den. Dies ist not
+wendig, damit das Pro-gramm m[]oglichst
[]
-Underfull \hbox (badness 10000) in paragraph at lines 31--34
+Underfull \hbox (badness 10000) in paragraph at lines 173--177
[]
-Underfull \hbox (badness 10000) in paragraph at lines 35--40
+Underfull \hbox (badness 10000) in paragraph at lines 178--181
[]
-[17
+Underfull \hbox (badness 10000) in paragraph at lines 189--192
-]
-Underfull \hbox (badness 10000) in paragraph at lines 48--51
+ []
+
+
+Underfull \hbox (badness 10000) in paragraph at lines 193--196
+
+ []
+
+
+Underfull \hbox (badness 10000) in paragraph at lines 197--200
[]
+[13]
+Overfull \hbox (4.52718pt too wide) in paragraph at lines 203--211
+\OT1/ptm/m/n/12 Wenn $\OML/ztmcm/m/it/12 h$ \OT1/ptm/m/n/12 die Gr[]o^^Ye des \
+OT1/ptm/m/it/12 TCP-Headers \OT1/ptm/m/n/12 und $\OML/ztmcm/m/it/12 t$ \OT1/ptm
+/m/n/12 die An-zahl der Ze-ichen der un-ver-schl[]usselten Nachricht
+ []
-Underfull \hbox (badness 10000) in paragraph at lines 52--55
+)
+Underfull \hbox (badness 10000) in paragraph at lines 221--119
[]
+[14]
+\openout2 = `Ausblick.aux'.
-Overfull \hbox (20.34167pt too wide) in paragraph at lines 64--69
+ (./Ausblick.tex
+Overfull \hbox (20.34167pt too wide) in paragraph at lines 11--16
\OT1/ptm/m/n/12 Bei er-sterem ex-istiert nur ein \OT1/ptm/m/it/12 private-key \
OT1/ptm/m/n/12 welch-er von allen Teil-nehmern zum ver- sowie entschl[]usseln
[]
-Underfull \hbox (badness 10000) in paragraph at lines 64--69
+Underfull \hbox (badness 10000) in paragraph at lines 11--16
[]
-[18]
-Underfull \hbox (badness 10000) in paragraph at lines 75--79
+
+Underfull \hbox (badness 10000) in paragraph at lines 22--26
[]
-Underfull \hbox (badness 10000) in paragraph at lines 80--83
+Underfull \hbox (badness 10000) in paragraph at lines 27--30
[]
-Underfull \hbox (badness 10000) in paragraph at lines 84--92
+Underfull \hbox (badness 10000) in paragraph at lines 31--39
[]
+[15
+
-Underfull \hbox (badness 10000) in paragraph at lines 102--107
+]
+Underfull \hbox (badness 10000) in paragraph at lines 49--54
[]
-[19]
-Overfull \hbox (6.1992pt too wide) in paragraph at lines 108--124
+
+Overfull \hbox (6.1992pt too wide) in paragraph at lines 55--71
\OT1/ptm/m/n/12 Phones re-al-isiert. Das \OT1/ptm/m/it/12 PGP\OT1/ptm/m/n/12 -V
erfahren erm[]oglicht es Dat-en zu ver-schl[]usseln, sig-nieren oder sowohl
[]
-Underfull \hbox (badness 10000) in paragraph at lines 108--124
+Underfull \hbox (badness 10000) in paragraph at lines 55--71
[]
+[16]
LaTeX Font Warning: Font shape `OT1/cmss/bx/it' undefined
-(Font) using `OT1/cmss/bx/n' instead on input line 129.
+(Font) using `OT1/cmss/bx/n' instead on input line 76.
-[20]) [21]
+) [17]
\openout2 = `Anhang.aux'.
(./Anhang.tex
-Overfull \hbox (57.77696pt too wide) in paragraph at lines 10--11
-[]\OT1/ptm/m/n/12 zlib-1.2.3-bin.tar.bz2: [][]$\OT1/cmtt/m/n/12 http : / / sour
-ceforge . net / projects / cegcc / files / ported % 20packages /
- []
-
+Underfull \hbox (badness 10000) in paragraph at lines 9--13
-Overfull \hbox (58.68912pt too wide) in paragraph at lines 11--12
-[]\OT1/ptm/m/n/12 zlib-1.2.3-dev.tar.bz2: [][]$\OT1/cmtt/m/n/12 http : / / sour
-ceforge . net / projects / cegcc / files / ported % 20packages /
[]
-Overfull \hbox (60.93295pt too wide) in paragraph at lines 12--13
-[]\OT1/ptm/m/n/12 libjpeg-6b-bin.tar.bz2: [][]$\OT1/cmtt/m/n/12 http : / / sour
-ceforge . net / projects / cegcc / files / ported % 20packages /
- []
-
-
-Overfull \hbox (62.025pt too wide) in paragraph at lines 13--14
-[]\OT1/ptm/m/n/12 libjepg-6b-dev.tar.bz2: [][]$\OT1/cmtt/m/n/12 http : / / sour
-ceforge . net / projects / cegcc / files / ported % 20packages /
+Overfull \hbox (2.40399pt too wide) in paragraph at lines 56--56
+[]\OT1/cmtt/m/n/12 export CPPFLAGS="-I$WINCE_PATH/include -I$WINCE_PATH/zlib-1.
+2.3-dev/include[]
[]
+[18
-Overfull \hbox (11.16382pt too wide) in paragraph at lines 20--21
-[]\OT1/ptm/m/n/12 freetype-2.3.7-bin.tar.bz2: [][]$\OT1/cmtt/m/n/12 http : / /
-sourceforge . net / projects / cegcc / files / ported %
- []
-
-Overfull \hbox (12.07597pt too wide) in paragraph at lines 21--22
-[]\OT1/ptm/m/n/12 freetype-2.3.7-dev.tar.bz2: [][]$\OT1/cmtt/m/n/12 http : / /
-sourceforge . net / projects / cegcc / files / ported %
+]
+Overfull \hbox (14.754pt too wide) in paragraph at lines 56--56
+[] \OT1/cmtt/m/n/12 -I$WINCE_PATH/win_iconv-dev/include -I/opt/mingw32ce/arm-mi
+ngw32ce/include/"[]
[]
-
-Overfull \hbox (8.524pt too wide) in paragraph at lines 22--23
-[]\OT1/ptm/m/n/12 libpng-1.2.33-bin.tar.bz2: [][]$\OT1/cmtt/m/n/12 http : / / s
-ourceforge . net / projects / cegcc / files / ported %
+[19] [20]
+Overfull \hbox (64.15402pt too wide) in paragraph at lines 192--192
+[] \OT1/cmtt/m/n/12 cp $WINCE_PATH/cp libpng-1.2.33-dev/lib/pkgconfig/libpng* $
+WINCE_PATH/lib/pkgconfig/[]
[]
-Overfull \hbox (9.43616pt too wide) in paragraph at lines 23--24
-[]\OT1/ptm/m/n/12 libpng-1.2.33-dev.tar.bz2: [][]$\OT1/cmtt/m/n/12 http : / / s
-ourceforge . net / projects / cegcc / files / ported %
+Overfull \hbox (95.02904pt too wide) in paragraph at lines 192--192
+[] \OT1/cmtt/m/n/12 cp $WINCE_PATH/freetype-2.3.7-dev/lib/pkgconfig/freetype2.p
+c $WINCE_PATH/lib/freetype2.pc[]
[]
-[22
-
-] [23]
-Overfull \hbox (298.80414pt too wide) in paragraph at lines 119--119
-[]\OT1/cmtt/m/n/12 cp lib/evas/modules/engines/buffer/mingw32ce-arm/module.dll
-efl/evas/modules/engines/buffer/mingw32ce-arm/engine_buffer.dll[]
+Overfull \hbox (13.83946pt too wide) in paragraph at lines 194--197
+\OT1/ptm/m/n/12 be-liebi-gen Ed-i-tor ge[]offnet wer-den und in bei-den Dateien
+ der Wert von ''pre-fix`` auf ''WINCE[]PATH``
[]
-
-Overfull \hbox (391.42918pt too wide) in paragraph at lines 119--119
-[]\OT1/cmtt/m/n/12 cp lib/evas/modules/engines/software_16/mingw32ce-arm/module
-.dll efl/evas/modules/engines/software_16/mingw32ce-arm/engine_software_16.dll[
-]
+[21]
+Overfull \hbox (20.929pt too wide) in paragraph at lines 208--208
+[] \OT1/cmtt/m/n/12 ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --di
+sable-async-events[]
[]
-Overfull \hbox (502.57924pt too wide) in paragraph at lines 119--119
-[]\OT1/cmtt/m/n/12 cp lib/evas/modules/engines/software_16_wince/mingw32ce-arm/
-module.dll efl/evas/modules/engines/software_16_wince/mingw32ce-arm/engine_soft
-ware_16_wince.dll[]
+Overfull \hbox (15.93102pt too wide) in paragraph at lines 224--227
+[]\OT1/ptm/m/n/12 Allerdings wird sie im Ord-ner ''freetype2`` nicht ge-fun-den
+. Um dies zu umge-hen muss ''ft2build.h``
[]
-Overfull \hbox (484.05423pt too wide) in paragraph at lines 119--119
-[]\OT1/cmtt/m/n/12 cp lib/evas/modules/engines/software_generic/mingw32ce-arm/m
-odule.dll efl/evas/modules/engines/software_generic/mingw32ce-arm/engine_softwa
-re_generic.dll[]
+Overfull \hbox (169.12907pt too wide) in paragraph at lines 230--230
+[] \OT1/cmtt/m/n/12 cp $WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2buil
+d.h $WINCE_PATH/freetype-2.3.7-dev/include[]
[]
-
-Overfull \hbox (243.22911pt too wide) in paragraph at lines 119--119
-[]\OT1/cmtt/m/n/12 cp lib/evas/modules/loaders/eet/mingw32ce-arm/module.dll efl
-/evas/modules/loaders/eet/mingw32ce-arm/loader_eet.dll[]
+[22]
+Overfull \hbox (33.279pt too wide) in paragraph at lines 265--265
+[] \OT1/cmtt/m/n/12 #define PROCESS_ALL_ACCESS (STANDARD_RIGHTS_REQUIRE
+D|SYNCHRONIZE|0xfff)[]
[]
-
-Overfull \hbox (261.75412pt too wide) in paragraph at lines 119--119
-[]\OT1/cmtt/m/n/12 cp lib/evas/modules/loaders/jpeg/mingw32ce-arm/module.dll ef
-l/evas/modules/loaders/jpeg/mingw32ce-arm/loader_jpeg.dll[]
+[23]
+Overfull \hbox (119.72905pt too wide) in paragraph at lines 310--310
+[] \OT1/cmtt/m/n/12 ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --wi
+th-edje-cc=$WINCE_PATH/bin/edje_cc[]
[]
-Overfull \hbox (280.27913pt too wide) in paragraph at lines 119--119
-[]\OT1/cmtt/m/n/12 cp lib/evas/modules/loaders/pmaps/mingw32ce-arm/module.dll e
-fl/evas/modules/loaders/pmaps/mingw32ce-arm/loader_pmaps.dll[]
+Overfull \hbox (40.46509pt too wide) in paragraph at lines 312--315
+\OT1/ptm/m/n/12 muss man im in der Datei ``Make-file.am'' im Ord-ner ``sr-c/bin
+/'' alle Vorkomm-nisse von ``test[]fileselector.c''
[]
-
-Overfull \hbox (243.22911pt too wide) in paragraph at lines 119--119
-[]\OT1/cmtt/m/n/12 cp lib/evas/modules/loaders/png/mingw32ce-arm/module.dll efl
-/evas/modules/loaders/png/mingw32ce-arm/loader_png.dll[]
+[24]
+Overfull \hbox (57.77696pt too wide) in paragraph at lines 351--352
+[]\OT1/ptm/m/n/12 zlib-1.2.3-bin.tar.bz2: [][]$\OT1/cmtt/m/n/12 http : / / sour
+ceforge . net / projects / cegcc / files / ported % 20packages /
[]
-Overfull \hbox (243.22911pt too wide) in paragraph at lines 119--119
-[]\OT1/cmtt/m/n/12 cp lib/evas/modules/loaders/xpm/mingw32ce-arm/module.dll efl
-/evas/modules/loaders/xpm/mingw32ce-arm/loader_xpm.dll[]
+Overfull \hbox (58.68912pt too wide) in paragraph at lines 352--353
+[]\OT1/ptm/m/n/12 zlib-1.2.3-dev.tar.bz2: [][]$\OT1/cmtt/m/n/12 http : / / sour
+ceforge . net / projects / cegcc / files / ported % 20packages /
[]
-Overfull \hbox (224.7041pt too wide) in paragraph at lines 119--119
-[]\OT1/cmtt/m/n/12 cp lib/evas/modules/savers/eet/mingw32ce-arm/module.dll efl/
-evas/modules/savers/eet/mingw32ce-arm/saver_eet.dll[]
+Overfull \hbox (60.93295pt too wide) in paragraph at lines 353--354
+[]\OT1/ptm/m/n/12 libjpeg-6b-bin.tar.bz2: [][]$\OT1/cmtt/m/n/12 http : / / sour
+ceforge . net / projects / cegcc / files / ported % 20packages /
[]
-Overfull \hbox (224.7041pt too wide) in paragraph at lines 119--119
-[]\OT1/cmtt/m/n/12 cp lib/evas/modules/savers/png/mingw32ce-arm/module.dll efl/
-evas/modules/savers/png/mingw32ce-arm/saver_png.dll[]
+Overfull \hbox (62.025pt too wide) in paragraph at lines 354--355
+[]\OT1/ptm/m/n/12 libjepg-6b-dev.tar.bz2: [][]$\OT1/cmtt/m/n/12 http : / / sour
+ceforge . net / projects / cegcc / files / ported % 20packages /
[]
-Overfull \hbox (51.80402pt too wide) in paragraph at lines 119--119
-[]\OT1/cmtt/m/n/12 arm-mingw32ce-strip efl/evas/modules/engines/buffer/mingw32c
-e-arm/engine_buffer.dll[]
+Overfull \hbox (11.16382pt too wide) in paragraph at lines 361--362
+[]\OT1/ptm/m/n/12 freetype-2.3.7-bin.tar.bz2: [][]$\OT1/cmtt/m/n/12 http : / /
+sourceforge . net / projects / cegcc / files / ported %
[]
-Overfull \hbox (113.55405pt too wide) in paragraph at lines 119--119
-[]\OT1/cmtt/m/n/12 arm-mingw32ce-strip efl/evas/modules/engines/software_16/min
-gw32ce-arm/engine_software_16.dll[]
+Overfull \hbox (12.07597pt too wide) in paragraph at lines 362--363
+[]\OT1/ptm/m/n/12 freetype-2.3.7-dev.tar.bz2: [][]$\OT1/cmtt/m/n/12 http : / /
+sourceforge . net / projects / cegcc / files / ported %
[]
-Overfull \hbox (187.65408pt too wide) in paragraph at lines 119--119
-[]\OT1/cmtt/m/n/12 arm-mingw32ce-strip efl/evas/modules/engines/software_16_win
-ce/mingw32ce-arm/engine_software_16_wince.dll[]
+Overfull \hbox (8.524pt too wide) in paragraph at lines 363--364
+[]\OT1/ptm/m/n/12 libpng-1.2.33-bin.tar.bz2: [][]$\OT1/cmtt/m/n/12 http : / / s
+ourceforge . net / projects / cegcc / files / ported %
[]
-Overfull \hbox (175.30408pt too wide) in paragraph at lines 119--119
-[]\OT1/cmtt/m/n/12 arm-mingw32ce-strip efl/evas/modules/engines/software_generi
-c/mingw32ce-arm/engine_software_generic.dll[]
+Overfull \hbox (9.43616pt too wide) in paragraph at lines 364--365
+[]\OT1/ptm/m/n/12 libpng-1.2.33-dev.tar.bz2: [][]$\OT1/cmtt/m/n/12 http : / / s
+ourceforge . net / projects / cegcc / files / ported %
[]
-
-Overfull \hbox (14.754pt too wide) in paragraph at lines 119--119
+[25] [26] [27]
+Overfull \hbox (14.754pt too wide) in paragraph at lines 489--489
[]\OT1/cmtt/m/n/12 arm-mingw32ce-strip efl/evas/modules/loaders/eet/mingw32ce-a
rm/loader_eet.dll[]
[]
-Overfull \hbox (27.104pt too wide) in paragraph at lines 119--119
+Overfull \hbox (27.104pt too wide) in paragraph at lines 489--489
[]\OT1/cmtt/m/n/12 arm-mingw32ce-strip efl/evas/modules/loaders/jpeg/mingw32ce-
arm/loader_jpeg.dll[]
[]
-Overfull \hbox (39.45401pt too wide) in paragraph at lines 119--119
+Overfull \hbox (39.45401pt too wide) in paragraph at lines 489--489
[]\OT1/cmtt/m/n/12 arm-mingw32ce-strip efl/evas/modules/loaders/pmaps/mingw32ce
-arm/loader_pmaps.dll[]
[]
-Overfull \hbox (14.754pt too wide) in paragraph at lines 119--119
+Overfull \hbox (14.754pt too wide) in paragraph at lines 489--489
[]\OT1/cmtt/m/n/12 arm-mingw32ce-strip efl/evas/modules/loaders/png/mingw32ce-a
rm/loader_png.dll[]
[]
-Overfull \hbox (14.754pt too wide) in paragraph at lines 119--119
+Overfull \hbox (14.754pt too wide) in paragraph at lines 489--489
[]\OT1/cmtt/m/n/12 arm-mingw32ce-strip efl/evas/modules/loaders/xpm/mingw32ce-a
rm/loader_xpm.dll[]
[]
-Overfull \hbox (2.40399pt too wide) in paragraph at lines 119--119
+Overfull \hbox (2.40399pt too wide) in paragraph at lines 489--489
[]\OT1/cmtt/m/n/12 arm-mingw32ce-strip efl/evas/modules/savers/eet/mingw32ce-ar
m/saver_eet.dll[]
[]
-Overfull \hbox (2.40399pt too wide) in paragraph at lines 119--119
+Overfull \hbox (2.40399pt too wide) in paragraph at lines 489--489
[]\OT1/cmtt/m/n/12 arm-mingw32ce-strip efl/evas/modules/savers/png/mingw32ce-ar
m/saver_png.dll[]
[]
-[24]) [25] (./maindoc.bbl) [26
+) [28] (./maindoc.bbl [29
-] (./maindoc.aux (./Title.aux) (./Erklaerung.aux) (./Einleitung.aux) (./Tutoria
-l.aux) (./Friend_Finder.aux) (./Ausblick.aux)
+]) [30] (./maindoc.aux (./Title.aux) (./Erklaerung.aux) (./Einleitung.aux) (./T
+utorial.aux) (./Friend_Finder.aux) (./Ausblick.aux)
(./Anhang.aux))
LaTeX Font Warning: Some font shapes were not available, defaults substituted.
)
Here is how much of TeX's memory you used:
- 8678 strings out of 95086
- 119047 string characters out of 1183254
- 199055 words of memory out of 1500000
- 11515 multiletter control sequences out of 10000+50000
+ 8712 strings out of 95086
+ 119616 string characters out of 1183254
+ 200164 words of memory out of 1500000
+ 11535 multiletter control sequences out of 10000+50000
24736 words of font info for 62 fonts, out of 1200000 for 2000
28 hyphenation exceptions out of 8191
35i,12n,46p,303b,591s stack positions out of 5000i,500n,6000p,200000b,5000s
@@ -1065,9 +1090,9 @@ sky/cm/cmr10.pfb></usr/share/texmf-texlive/fonts/type1/bluesky/cm/cmssbx10.pfb>
exlive/fonts/type1/bluesky/cm/cmtt12.pfb></usr/share/texmf-texlive/fonts/type1/
urw/times/utmr8a.pfb></usr/share/texmf-texlive/fonts/type1/urw/times/utmri8a.pf
b>
-Output written on maindoc.pdf (28 pages, 1144708 bytes).
+Output written on maindoc.pdf (32 pages, 1369112 bytes).
PDF statistics:
- 443 PDF objects out of 1000 (max. 8388607)
- 101 named destinations out of 1000 (max. 131072)
- 310 words of extra memory for PDF output out of 10000 (max. 10000000)
+ 481 PDF objects out of 1000 (max. 8388607)
+ 111 named destinations out of 1000 (max. 131072)
+ 322 words of extra memory for PDF output out of 10000 (max. 10000000)
diff --git a/ausarbeitung/maindoc.out b/ausarbeitung/maindoc.out
index 6d701b2..3ef467a 100644
--- a/ausarbeitung/maindoc.out
+++ b/ausarbeitung/maindoc.out
@@ -1,36 +1,35 @@
\BOOKMARK [1][-]{section.1}{Einleitung}{}
-\BOOKMARK [1][-]{section.2}{Tutorial}{}
-\BOOKMARK [2][-]{subsection.2.1}{CeGCC}{section.2}
-\BOOKMARK [2][-]{subsection.2.2}{Enlightenment}{section.2}
-\BOOKMARK [3][-]{subsubsection.2.2.1}{evil}{subsection.2.2}
-\BOOKMARK [3][-]{subsubsection.2.2.2}{eina}{subsection.2.2}
-\BOOKMARK [3][-]{subsubsection.2.2.3}{eet}{subsection.2.2}
-\BOOKMARK [3][-]{subsubsection.2.2.4}{embryo}{subsection.2.2}
-\BOOKMARK [3][-]{subsubsection.2.2.5}{evas}{subsection.2.2}
-\BOOKMARK [3][-]{subsubsection.2.2.6}{ecore}{subsection.2.2}
-\BOOKMARK [3][-]{subsubsection.2.2.7}{edje}{subsection.2.2}
-\BOOKMARK [3][-]{subsubsection.2.2.8}{elementary}{subsection.2.2}
-\BOOKMARK [3][-]{subsubsection.2.2.9}{Weitere Schritte}{subsection.2.2}
+\BOOKMARK [1][-]{section.2}{Technische Grundlagen}{}
+\BOOKMARK [2][-]{subsection.2.1}{Betriebsysteme f\374r mobile Ger\344te}{section.2}
+\BOOKMARK [3][-]{subsubsection.2.1.1}{Windows Mobile}{subsection.2.1}
+\BOOKMARK [3][-]{subsubsection.2.1.2}{Android}{subsection.2.1}
+\BOOKMARK [3][-]{subsubsection.2.1.3}{WebOS}{subsection.2.1}
+\BOOKMARK [3][-]{subsubsection.2.1.4}{iPhone OS}{subsection.2.1}
+\BOOKMARK [3][-]{subsubsection.2.1.5}{Symbian OS}{subsection.2.1}
+\BOOKMARK [3][-]{subsubsection.2.1.6}{Zielplattform}{subsection.2.1}
+\BOOKMARK [2][-]{subsection.2.2}{Softwaregrundlagen}{section.2}
+\BOOKMARK [3][-]{subsubsection.2.2.1}{CeGCC}{subsection.2.2}
+\BOOKMARK [3][-]{subsubsection.2.2.2}{Enlightenment}{subsection.2.2}
\BOOKMARK [1][-]{section.3}{Friend Finder}{}
-\BOOKMARK [2][-]{subsection.3.1}{Features}{section.3}
-\BOOKMARK [3][-]{subsubsection.3.1.1}{Nachrichten versenden}{subsection.3.1}
-\BOOKMARK [3][-]{subsubsection.3.1.2}{Eigene Position senden}{subsection.3.1}
-\BOOKMARK [3][-]{subsubsection.3.1.3}{Position anderer Teilnehmer anzeigen}{subsection.3.1}
+\BOOKMARK [2][-]{subsection.3.1}{Anforderungsanalyse}{section.3}
+\BOOKMARK [3][-]{subsubsection.3.1.1}{Eigene Position senden}{subsection.3.1}
+\BOOKMARK [3][-]{subsubsection.3.1.2}{Position anderer Teilnehmer anzeigen}{subsection.3.1}
+\BOOKMARK [3][-]{subsubsection.3.1.3}{Nachrichten versenden und empfangen}{subsection.3.1}
\BOOKMARK [3][-]{subsubsection.3.1.4}{2D-Barcode}{subsection.3.1}
\BOOKMARK [2][-]{subsection.3.2}{Verwendete Verfahren und Bibliotheken}{section.3}
-\BOOKMARK [3][-]{subsubsection.3.2.1}{Versenden der Nachrichten}{subsection.3.2}
-\BOOKMARK [3][-]{subsubsection.3.2.2}{Verschl\374sselung der Daten}{subsection.3.2}
-\BOOKMARK [3][-]{subsubsection.3.2.3}{Erzeugen eines 2D-Barcodes}{subsection.3.2}
-\BOOKMARK [3][-]{subsubsection.3.2.4}{Grafisches Benutzeroberfl\344che}{subsection.3.2}
-\BOOKMARK [2][-]{subsection.3.3}{Implementierung}{section.3}
-\BOOKMARK [2][-]{subsection.3.4}{Analyse}{section.3}
+\BOOKMARK [3][-]{subsubsection.3.2.1}{Grafisches Benutzeroberfl\344che}{subsection.3.2}
+\BOOKMARK [3][-]{subsubsection.3.2.2}{Versenden der Nachrichten}{subsection.3.2}
+\BOOKMARK [3][-]{subsubsection.3.2.3}{Versenden der eigenen Position}{subsection.3.2}
+\BOOKMARK [3][-]{subsubsection.3.2.4}{Empfangen der eigenen Position}{subsection.3.2}
+\BOOKMARK [3][-]{subsubsection.3.2.5}{Erzeugen eines 2D-Barcodes}{subsection.3.2}
+\BOOKMARK [2][-]{subsection.3.3}{Analyse}{section.3}
+\BOOKMARK [3][-]{subsubsection.3.3.1}{Allgemeiner Datenverkehr}{subsection.3.3}
+\BOOKMARK [3][-]{subsubsection.3.3.2}{Versenden und Empfangen von Nachrichten}{subsection.3.3}
+\BOOKMARK [3][-]{subsubsection.3.3.3}{Versenden und Empfangen von Positionen}{subsection.3.3}
+\BOOKMARK [3][-]{subsubsection.3.3.4}{Fazit der Auswertung}{subsection.3.3}
\BOOKMARK [1][-]{section.4}{Ausblick}{}
-\BOOKMARK [2][-]{subsection.4.1}{Plattformunabh\344ngigkeit}{section.4}
-\BOOKMARK [3][-]{subsubsection.4.1.1}{Windows Mobile}{subsection.4.1}
-\BOOKMARK [3][-]{subsubsection.4.1.2}{Android}{subsection.4.1}
-\BOOKMARK [3][-]{subsubsection.4.1.3}{WebOS}{subsection.4.1}
-\BOOKMARK [2][-]{subsection.4.2}{Kryptographische Verfahren auf Mobilen Plattformen}{section.4}
-\BOOKMARK [3][-]{subsubsection.4.2.1}{Symmetrische Verschl\374sselungsverfahren}{subsection.4.2}
-\BOOKMARK [3][-]{subsubsection.4.2.2}{Asymmetrische Verschl\374sselungsverfahren}{subsection.4.2}
-\BOOKMARK [2][-]{subsection.4.3}{Alternative location awareness Verfahren}{section.4}
-\BOOKMARK [2][-]{subsection.4.4}{Zusammenfassung}{section.4}
+\BOOKMARK [2][-]{subsection.4.1}{Kryptographische Verfahren auf Mobilen Plattformen}{section.4}
+\BOOKMARK [3][-]{subsubsection.4.1.1}{Symmetrische Verschl\374sselungsverfahren}{subsection.4.1}
+\BOOKMARK [3][-]{subsubsection.4.1.2}{Asymmetrische Verschl\374sselungsverfahren}{subsection.4.1}
+\BOOKMARK [2][-]{subsection.4.2}{Alternative location awareness Verfahren}{section.4}
+\BOOKMARK [2][-]{subsection.4.3}{Zusammenfassung}{section.4}
diff --git a/ausarbeitung/maindoc.pdf b/ausarbeitung/maindoc.pdf
index 26f06c1..68af1d2 100644
--- a/ausarbeitung/maindoc.pdf
+++ b/ausarbeitung/maindoc.pdf
Binary files differ
diff --git a/ausarbeitung/maindoc.tex b/ausarbeitung/maindoc.tex
index 5de7032..760f984 100644
--- a/ausarbeitung/maindoc.tex
+++ b/ausarbeitung/maindoc.tex
@@ -122,8 +122,8 @@
%\bibliographystyle{dinat}
%\bibliography{literature}
\bibliography{literature}
+%\bibliographystyle{plain}
\bibliographystyle{dinat}
-
\nocite{*}
\end{document}
diff --git a/ausarbeitung/maindoc.tex~ b/ausarbeitung/maindoc.tex~
index 1af3165..0a413aa 100644
--- a/ausarbeitung/maindoc.tex~
+++ b/ausarbeitung/maindoc.tex~
@@ -50,7 +50,7 @@
urlcolor=blue,
linkcolor=black,
citecolor=black,
- pdfauthor={Michael Rist, Vincent Langenfeld, Patrick Hornecker},
+ pdfauthor={Patrick Hornecker},
pdftitle={GZ:if expand("%") == ""|browse confirm w|else|confirm w|endif
}
]{hyperref}
@@ -122,8 +122,8 @@
%\bibliographystyle{dinat}
%\bibliography{literature}
\bibliography{literature}
-\bibliographystyle{dinat}
-
+%\bibliographystyle{plain}
+\bibliographystyle{unsrt}
\nocite{*}
\end{document}
diff --git a/ausarbeitung/maindoc.toc b/ausarbeitung/maindoc.toc
index 5615a64..a218c0a 100644
--- a/ausarbeitung/maindoc.toc
+++ b/ausarbeitung/maindoc.toc
@@ -1,37 +1,36 @@
\select@language {ngerman}
\contentsline {section}{\numberline {1}Einleitung}{2}{section.1}
-\contentsline {section}{\numberline {2}Tutorial}{3}{section.2}
-\contentsline {subsection}{\numberline {2.1}CeGCC}{3}{subsection.2.1}
-\contentsline {subsection}{\numberline {2.2}Enlightenment}{3}{subsection.2.2}
-\contentsline {subsubsection}{\numberline {2.2.1}evil}{5}{subsubsection.2.2.1}
-\contentsline {subsubsection}{\numberline {2.2.2}eina}{6}{subsubsection.2.2.2}
-\contentsline {subsubsection}{\numberline {2.2.3}eet}{6}{subsubsection.2.2.3}
-\contentsline {subsubsection}{\numberline {2.2.4}embryo}{7}{subsubsection.2.2.4}
-\contentsline {subsubsection}{\numberline {2.2.5}evas}{7}{subsubsection.2.2.5}
-\contentsline {subsubsection}{\numberline {2.2.6}ecore}{9}{subsubsection.2.2.6}
-\contentsline {subsubsection}{\numberline {2.2.7}edje}{9}{subsubsection.2.2.7}
-\contentsline {subsubsection}{\numberline {2.2.8}elementary}{10}{subsubsection.2.2.8}
-\contentsline {subsubsection}{\numberline {2.2.9}Weitere Schritte}{10}{subsubsection.2.2.9}
-\contentsline {section}{\numberline {3}Friend Finder}{11}{section.3}
-\contentsline {subsection}{\numberline {3.1}Features}{11}{subsection.3.1}
-\contentsline {subsubsection}{\numberline {3.1.1}Nachrichten versenden}{11}{subsubsection.3.1.1}
-\contentsline {subsubsection}{\numberline {3.1.2}Eigene Position senden}{11}{subsubsection.3.1.2}
-\contentsline {subsubsection}{\numberline {3.1.3}Position anderer Teilnehmer anzeigen}{11}{subsubsection.3.1.3}
-\contentsline {subsubsection}{\numberline {3.1.4}2D-Barcode}{12}{subsubsection.3.1.4}
-\contentsline {subsection}{\numberline {3.2}Verwendete Verfahren und Bibliotheken}{12}{subsection.3.2}
-\contentsline {subsubsection}{\numberline {3.2.1}Versenden der Nachrichten}{12}{subsubsection.3.2.1}
-\contentsline {subsubsection}{\numberline {3.2.2}Verschl\IeC {\"u}sselung der Daten}{12}{subsubsection.3.2.2}
-\contentsline {subsubsection}{\numberline {3.2.3}Erzeugen eines 2D-Barcodes}{13}{subsubsection.3.2.3}
-\contentsline {subsubsection}{\numberline {3.2.4}Grafisches Benutzeroberfl\IeC {\"a}che}{13}{subsubsection.3.2.4}
-\contentsline {subsection}{\numberline {3.3}Implementierung}{13}{subsection.3.3}
-\contentsline {subsection}{\numberline {3.4}Analyse}{15}{subsection.3.4}
-\contentsline {section}{\numberline {4}Ausblick}{17}{section.4}
-\contentsline {subsection}{\numberline {4.1}Plattformunabh\IeC {\"a}ngigkeit}{17}{subsection.4.1}
-\contentsline {subsubsection}{\numberline {4.1.1}Windows Mobile}{17}{subsubsection.4.1.1}
-\contentsline {subsubsection}{\numberline {4.1.2}Android}{17}{subsubsection.4.1.2}
-\contentsline {subsubsection}{\numberline {4.1.3}WebOS}{18}{subsubsection.4.1.3}
-\contentsline {subsection}{\numberline {4.2}Kryptographische Verfahren auf Mobilen Plattformen}{18}{subsection.4.2}
-\contentsline {subsubsection}{\numberline {4.2.1}Symmetrische Verschl\IeC {\"u}sselungsverfahren}{19}{subsubsection.4.2.1}
-\contentsline {subsubsection}{\numberline {4.2.2}Asymmetrische Verschl\IeC {\"u}sselungsverfahren}{20}{subsubsection.4.2.2}
-\contentsline {subsection}{\numberline {4.3}Alternative \textit {location awareness} Verfahren}{20}{subsection.4.3}
-\contentsline {subsection}{\numberline {4.4}Zusammenfassung}{21}{subsection.4.4}
+\contentsline {section}{\numberline {2}Technische Grundlagen}{3}{section.2}
+\contentsline {subsection}{\numberline {2.1}Betriebsysteme f\IeC {\"u}r mobile Ger\IeC {\"a}te}{3}{subsection.2.1}
+\contentsline {subsubsection}{\numberline {2.1.1}Windows Mobile}{3}{subsubsection.2.1.1}
+\contentsline {subsubsection}{\numberline {2.1.2}Android}{4}{subsubsection.2.1.2}
+\contentsline {subsubsection}{\numberline {2.1.3}WebOS}{4}{subsubsection.2.1.3}
+\contentsline {subsubsection}{\numberline {2.1.4}iPhone OS}{4}{subsubsection.2.1.4}
+\contentsline {subsubsection}{\numberline {2.1.5}Symbian OS}{5}{subsubsection.2.1.5}
+\contentsline {subsubsection}{\numberline {2.1.6}Zielplattform}{5}{subsubsection.2.1.6}
+\contentsline {subsection}{\numberline {2.2}Softwaregrundlagen}{5}{subsection.2.2}
+\contentsline {subsubsection}{\numberline {2.2.1}CeGCC}{6}{subsubsection.2.2.1}
+\contentsline {subsubsection}{\numberline {2.2.2}Enlightenment}{6}{subsubsection.2.2.2}
+\contentsline {section}{\numberline {3}Friend Finder}{8}{section.3}
+\contentsline {subsection}{\numberline {3.1}Anforderungsanalyse}{8}{subsection.3.1}
+\contentsline {subsubsection}{\numberline {3.1.1}Eigene Position senden}{9}{subsubsection.3.1.1}
+\contentsline {subsubsection}{\numberline {3.1.2}Position anderer Teilnehmer anzeigen}{9}{subsubsection.3.1.2}
+\contentsline {subsubsection}{\numberline {3.1.3}Nachrichten versenden und empfangen}{9}{subsubsection.3.1.3}
+\contentsline {subsubsection}{\numberline {3.1.4}2D-Barcode}{9}{subsubsection.3.1.4}
+\contentsline {subsection}{\numberline {3.2}Verwendete Verfahren und Bibliotheken}{10}{subsection.3.2}
+\contentsline {subsubsection}{\numberline {3.2.1}Grafisches Benutzeroberfl\IeC {\"a}che}{10}{subsubsection.3.2.1}
+\contentsline {subsubsection}{\numberline {3.2.2}Versenden der Nachrichten}{11}{subsubsection.3.2.2}
+\contentsline {subsubsection}{\numberline {3.2.3}Versenden der eigenen Position}{12}{subsubsection.3.2.3}
+\contentsline {subsubsection}{\numberline {3.2.4}Empfangen der eigenen Position}{12}{subsubsection.3.2.4}
+\contentsline {subsubsection}{\numberline {3.2.5}Erzeugen eines 2D-Barcodes}{13}{subsubsection.3.2.5}
+\contentsline {subsection}{\numberline {3.3}Analyse}{13}{subsection.3.3}
+\contentsline {subsubsection}{\numberline {3.3.1}Allgemeiner Datenverkehr}{13}{subsubsection.3.3.1}
+\contentsline {subsubsection}{\numberline {3.3.2}Versenden und Empfangen von Nachrichten}{14}{subsubsection.3.3.2}
+\contentsline {subsubsection}{\numberline {3.3.3}Versenden und Empfangen von Positionen}{14}{subsubsection.3.3.3}
+\contentsline {subsubsection}{\numberline {3.3.4}Fazit der Auswertung}{14}{subsubsection.3.3.4}
+\contentsline {section}{\numberline {4}Ausblick}{15}{section.4}
+\contentsline {subsection}{\numberline {4.1}Kryptographische Verfahren auf Mobilen Plattformen}{15}{subsection.4.1}
+\contentsline {subsubsection}{\numberline {4.1.1}Symmetrische Verschl\IeC {\"u}sselungsverfahren}{15}{subsubsection.4.1.1}
+\contentsline {subsubsection}{\numberline {4.1.2}Asymmetrische Verschl\IeC {\"u}sselungsverfahren}{16}{subsubsection.4.1.2}
+\contentsline {subsection}{\numberline {4.2}Alternative \textit {location awareness} Verfahren}{17}{subsection.4.2}
+\contentsline {subsection}{\numberline {4.3}Zusammenfassung}{17}{subsection.4.3}