summaryrefslogtreecommitdiffstats
path: root/ausarbeitung/Anhang.tex.backup
blob: fe799b87ed852022ca037b58f67f5c8a37a54927 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
\section*{Anhang}
\begin{appendix}

\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:
Zuerst muss eine aktuelle Version des \textit{CeGCC's} heruntergeladen und installiert werden. Die benötigten
Dateien können auf der Projekthomepage\footnote{http://cegcc.sourceforge.net/} heruntergeladen werden. Für dieses Tutorial wird
der \textit{mingw32ce} für den \textit{ARM}-Prozessortyp benötigt. Nach dem heruntergeladen muss dieser 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{lstlisting}
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{lstlisting}

% Nachdem diese Pakete installiert wurden kann man sich nun die einzelnen Packete aus dem \textit{Subversion-Repository} der
% Entwickler herunterladen.\newline
Nun muss man noch ein Verzeichniss angelegt werden, in welchem die für Windows Mobile kompilierten Dateien gespeichert werden
können. Des weiteren muss noch eine Datei angelegt werden, in welcher die Pfade zun genutzten Kompiler liegen und welche dann
einmalig exportiert werden müssen, damit die zum portieren benötigten \textit{Header-Files}, \textit{Libraries} und
\textit{Binaries} auch vom Betriebssystem gefunden werden. Diese Datei wird im folgenden mit \textit{mingw32ce.env} benannt. Das
Anlegen der Datei geschieht mit dem Befehl \lstinline{touch mingw32ce.env}.
% 
% \begin{lstlisting}
%  touch mingw32ce.env
% \end{lstlisting}
% 
Nun müssen noch folgende Einträge in der Datei \textit{mingw32ce.env} hinzugefügt werden.

\begin{lstlisting}
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{lstlisting}

Der Inhalt dieser Datei muss nun in jeder neu geöffneten \textit{Shell} auf ein neues exportiert werden, da die Variablen durch
die hier gewählte Methode nur in den \textit{Shells} existieren, in denen sie exportiert wurden.\newline
Unter den Variablen \textit{CEGCC\_PATH} und \textit{MINGW32CE\_PATH} ist der Pfad zum Verzeichniss des \textit{cegcc},
beziehungsweiße des \textit{mingw32ce} Kompilers einzutragen. Unter \textit{WINCE\_PATH} muss der Pfad zum Zielverzeichniss, der
kompilierten Dateien, gespeichert werden. Mit \textit{PATH} werden die \textit{Binaries} des \textit{CeGCC's}, in den
systemweiten \textit{Binary}-Pfad aufgenommen. Des weiteren werden unter \textit{CPPFLAGS} die \textit{include}-Pfade und
unter \textit{LDFLAGS} die Pfade zu den benötigten Bibliotheken abgelegt. \textit{LD\_LIBRARY\_PATH} zeigt auf den
Ordner in welchem die kompilierten und unter Umständen benötigten, ausführbaren Dateien liegen. \textit{PKG\_CONFIG\_PATH}
zeigt schliesslich noch auf den Ordner der die Paketinformationen der installierten Dateien beinhaltet. Das exportieren dieser
Werte geschieht mit dem Aufruf \lstinline{source <Pfad-zu-der-Datei>/mingw32ce.env}.\newline
% 
%\begin{lstlisting}
%source <Pfad-zu-der-Datei>/mingw32ce.env
%\end{lstlisting}
% 
Nun muss noch ein Ordner angelegt werden, in welchem der \textit{Enlightenment Source-Code} gespeichert werden kann.
Nach dem Wechseln in diesen besagten Ordner kann mit dem nächsten Schritt fortgefahren 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 wird mit \lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/evil}
ausgeführt.
% 
%\begin{lstlisting}
% svn co http://svn.enlightenment.org/svn/e/trunk/evil
%\end{lstlisting}
% 
Nachdem alle Dateien erfolgreich heruntergeladen wurden muss, falls nicht schon geschen, die Datei mit den
\textit{Umgebungsvaribalen} exportiert werden. Nachdem dies geschehen ist, kann man nun das Konfigurationsskript mit dem Aufruf
\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce| starten. \newline
% 
%\begin{lstlisting}
 %./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
%\end{lstlisting}
% 
Durch das Ausführen des Skriptes mit den obigen Parametern wird der Installationspfad auf den Wert der Variable
\textit{WINCE\_PATH} gesetzt, als Zielsystem ein \textit{ARM}-Prozessor gewählt und der \textit{mingw32ce}-Kompiler als Kompiler
festgelegt.\newline
Nachdem dieses Skript erfolgreich ausgeführt wurde, kann man im nächsten Schritt das Programm durch ausführen von
\lstinline{make} erstellen und im Anschluss durch \lstinline{make install} installieren. Nach diesem Schritt sollte \textit{Evil}
erfolgreich im Zielordner, der in der Variable \textit{WINCE\_PATH} festgelegt wurde, installiert worden sein.
% 
%\begin{lstlisting}
 %make
%\end{lstlisting}
% 
%Ist auch dies erfolgreich durchgeführt worden muss man nun noch in einem letzen Schritt die erstellten Dateien im Zielordner
%installieren.
% 
%\begin{lstlisting}
 %make install
%\end{lstlisting}
% 

\subsubsection*{Eina}

Auch hier ist es auch wieder nötig die Dateien aus dem Entwickler-Repository durch 
\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/eina} herunterzuladen. 
% 
%\begin{lstlisting}
 %svn co http://svn.enlightenment.org/svn/e/trunk/eina
%\end{lstlisting}
% 
Danach wird auch hier wieder das ``autogen.sh'' Skript durch 
\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread| Skript aufgerufen. \newline
% 
%\begin{lstlisting}
 %./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread
%\end{lstlisting}
% 
Es werden bei diesem Aufruf die gleichen Parameter wie bei \textit{Evil} übergeben. Hinzu kommt noch \textit{--disable-pthread}.
Mit diesem Parameter wird die Nutzung der \textit{POSIX} Bibliothek \textit{pthread} deaktiviert, da diese auf dem Zielsystem
nicht unterstützt wird.\newline
Nachdem das Skript durchgelaufen ist, muss man nun auch wieder das Programm mit \lstinline{make} erstellen und im Zielverzeichniss
mit \lstinline{make install} installieren.

%\begin{lstlisting}
 %make ; make install
%\end{lstlisting}

\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} durch ausführen von \lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/eet}
herunterladen.
% 
%\begin{lstlisting}
% svn co http://svn.enlightenment.org/svn/e/trunk/eet
%\end{lstlisting}
Nachdem die Dateien heruntergeladen sind, muss wieder das ``autogen.sh``-Skript durch 
\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce| aufgerufen werden.
%\begin{lstlisting}
% ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
%\end{lstlisting}
% 
Im Anschluss muss nun auch wieder kompiliert mit \lstinline{make} und mit \lstinline{make install} installiert  werden.
% 
%\begin{lstlisting}
% make ; make install
%\end{lstlisting}

\subsubsection*{Embryo}

Der Erste Schritt ist auch hier das Herunterladen des Programmcodes unter der Verwendung von 
\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/embryo}.
% 
%\begin{lstlisting}
%  svn co http://svn.enlightenment.org/svn/e/trunk/embryo
% \end{lstlisting}
% 
Nachdem die Dateien heruntergeladen sind auch wieder mit \lstinline{./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce} das
Skript aufrufen.
% 
% \begin{lstlisting}
%  ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
% \end{lstlisting}
% 
Im Anschluss nun auch wieder kompilieren mit \lstinline{make} und installieren mit \lstinline{make install}.
% 
%\begin{lstlisting}
% make ; make install
%\end{lstlisting}

\subsubsection*{Evas}

Auch für \textit{Evas} müssen mehrere \textit{tar-Archive} heruntergeladen werden (siehe Anhang 3). Auch sollten diese in das
gleiche Verzeichniss, wie die vorhergegangenen Archive, entpackt werden. Nun müssen noch die Dateien, welche die
Paketinformationen beinhalten, um die heruntergeladen Pakete ergänzt werden:

\begin{lstlisting}[breakatwhitespace=true]
 cp $WINCE_PATH/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{lstlisting}

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}
durch ausführen von \lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/evas} heruntergeladen werden.
% 
% \begin{lstlisting}
%  svn co http://svn.enlightenment.org/svn/e/trunk/evas
% \end{lstlisting}
% 
Nun muss auch hier, wie bei allen anderen Programmen das ''autogen.sh``-Skript aufgerufen durch 
\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-async-events| werden.
% 
% \begin{lstlisting}
%  ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-async-events
% \end{lstlisting}
% 
Als nächster Schritt muss nun das Programm mit \lstinline{make} kompiliert werden.
% 
% \begin{lstlisting}
%  make
% \end{lstlisting}
% 
Sollte hierbei die Datei ''ft2build.h`` nicht gefunden werden, so muss diese an die richtige Stelle kopiert werden. Ursprünglich
ist die Datei an folgendem Ort zu finden: \lstinline|$WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h|.
% 
% \begin{lstlisting}
%  $WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h
% \end{lstlisting}
% 
Allerdings wird sie im Ordner ''freetype2`` nicht gefunden. Um dies zu umgehen muss ''ft2build.h`` einfach eine Ordnerebene nach
oben kopiert werden. Dies geschieht durch den Aufruf von 
\lstinline|cp $WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h $WINCE_PATH/freetype-2.3.7-dev/include|. \newline
% 
% 
% \begin{lstlisting}
%  cp $WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h $WINCE_PATH/freetype-2.3.7-dev/include
% \end{lstlisting}
% 
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 \lstinline{#include <freetype/config/ftheader.h>} zu
\lstinline{#include <freetype2/freetype/config/ftheader.h>} ab. \newline
% 
% \begin{lstlisting}
% %  #include <freetype/config/ftheader.h>
% \end{lstlisting}

% zu

% \begin{lstlisting}
%  #include <freetype2/freetype/config/ftheader.h>
% \end{lstlisting}
% 
Anschliessend muss nun auch der ''freetype``-Ordner um eine Ebene nach oben kopieren werden, da die
\textit{include}-Pfade in den Headern von ''freetype2`` 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 erst eine Änderung im ``winnt.h''-Header vorgenommen werden. Dieser liegt im 
\textit{include}-Verzeichniss des \textit{mingw32ce}-Kompilers.

\begin{lstlisting}
 #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{lstlisting}

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 das
``autogen.sh'' Skript ausgeführt durch den Aufruf von 
\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread|. \newline
% 
% \begin{lstlisting}
%  ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread
% \end{lstlisting}
% 
Nachdem dies erfolgreich ausgeführt wurde können nun auch die gleichen zwei Schritte wie bei den vorhergegangenen Programmen
ausgeführt werden. Der Kompilierungsvorgang wird durch \lstinline{make} gestartet. Im Anschluss kann mit \lstinline{make install}
installiert werden.

\subsubsection*{Edje}

Auch hier gilt wieder, Dateien herunterladen durch Aufruf von \lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/embryo}.
% 
% \begin{lstlisting}
%  svn co http://svn.enlightenment.org/svn/e/trunk/embryo
% \end{lstlisting}
% 
Nachdem die Dateien heruntergeladen wurden, muss auch hier wieder das Skript durch 
\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce| aufgerufen werden. 
% 
% \begin{lstlisting}
%  ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
% \end{lstlisting}
% 
Die letzten beiden Schritte sind auch hier wieder kompilieren und Installation durch \lstinline{make} und 
\lstinline{make install} ausführen.

% \begin{lstlisting}
%  make ; make install
% \end{lstlisting}

\subsubsection*{Elementary}

Zuerst müssen auch hier die benötigten Daten heruntergeladen werden. Dies geschieht durch den Aufruf von 
\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/TMP/st/elementary}.
% 
% 
% \begin{lstlisting}
% svn co http://svn.enlightenment.org/svn/e/trunk/TMP/st/elementary
% \end{lstlisting}
% 
Nun muss auch wieder das ``autogen.sh'' Skript mit 
\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --with-edje-cc=$WINCE_PATH/bin/edje_cc| gestartet und ausgeführt
werden.
% 
% \begin{lstlisting}
%  ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce 
% 	      --with-edje-cc=$WINCE_PATH/bin/edje_cc
% \end{lstlisting}
% 
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{lstlisting}
bin_PROGRAMS = elementary_test
if BUILD_QUICKLAUNCH
bin_PROGRAMS += elementary_quicklaunch elementary_run elementary_testql
endif
\end{lstlisting}

Nun kann das Programm auf gewohnte Art und Weise mit \lstinline{make} und \lstinline{make install} erstellt und installiert
werden.
% 
% \begin{lstlisting}
%  make ; make install
% \end{lstlisting}

\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. Das Anlegen des Skriptes erfolgt durch \lstinline{touch efl_zip.sh}. Die Zugriffsrechte werden durch
\lstinline{chmod 774 efl_zip.sh} abgeändert. \newline
% 
% \begin{lstlisting}
%  touch efl_zip.sh
%  chmod 774 efl_zip.sh
% \end{lstlisting}
% 
In dieses Skript wird nun der Code kopiert, 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} zusammengefast und 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}:
\begin{itemize}
 \item zlib-1.2.3-bin.tar.bz2:
\newline \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:
\newline \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/zlib-1.2.3/zlib-1.2.3-dev.tar.bz2/download}
 \item libjpeg-6b-bin.tar.bz2:
\newline \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/libjpeg-6b/libjpeg-6b-bin.tar.bz2/download}
 \item libjepg-6b-dev.tar.bz2: 
\newline \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/libjpeg-6b/libjpeg-6b-dev.tar.bz2/download}
\end{itemize}

\subsection*{Anhang 3}

Archive für \textit{Evas}:
\begin{itemize}
 \item freetype-2.3.7-bin.tar.bz2:
\newline \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: 
\newline \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/freetype-2.3.7/freetype-2.3.7-dev.tar.bz2/download}
 \item libpng-1.2.33-bin.tar.bz2:
\newline \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/libpng-1.2.33/libpng-1.2.33-bin.tar.bz2/download}
 \item libpng-1.2.33-dev.tar.bz2: 
\newline \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/libpng-1.2.33/libpng-1.2.33-dev.tar.bz2/download}
\end{itemize}

\subsection*{Anhang 4}

efl\_zip.sh:
\begin{lstlisting}[breakatwhitespace=false]
 #!/bin/sh

rm -rf efl/
rm -f efl.zip

mkdir -p efl/eina/mp
mkdir -p efl/evas/modules/engines/buffer/mingw32ce-arm/
mkdir -p efl/evas/modules/engines/software_16/mingw32ce-arm/
mkdir -p efl/evas/modules/engines/software_16_wince/mingw32ce-arm/
mkdir -p efl/evas/modules/engines/software_generic/mingw32ce-arm/
mkdir -p efl/evas/modules/loaders/eet/mingw32ce-arm/
mkdir -p efl/evas/modules/loaders/jpeg/mingw32ce-arm/
mkdir -p efl/evas/modules/loaders/pmaps/mingw32ce-arm/
mkdir -p efl/evas/modules/loaders/png/mingw32ce-arm/
mkdir -p efl/evas/modules/loaders/xpm/mingw32ce-arm/
mkdir -p efl/evas/modules/savers/eet/mingw32ce-arm/
mkdir -p efl/evas/modules/savers/png/mingw32ce-arm/

cp bin/eet.exe efl/
cp bin/libdl-0.dll efl/
cp bin/libevil-0.dll efl/
cp bin/libeina-0.dll efl/
cp bin/libeet-1.dll efl/
cp bin/libevas-0.dll efl/
cp bin/libecore-0.dll efl/
cp bin/libecore_evas-0.dll efl/
cp bin/libecore_job-0.dll efl/
cp bin/libecore_wince-0.dll efl/
cp bin/libembryo-0.dll efl/
cp bin/libedje-0.dll efl/

arm-mingw32ce-strip efl/libdl-0.dll
arm-mingw32ce-strip efl/libevil-0.dll
arm-mingw32ce-strip efl/libeina-0.dll
arm-mingw32ce-strip efl/libeet-1.dll
arm-mingw32ce-strip efl/libevas-0.dll
arm-mingw32ce-strip efl/libecore-0.dll
arm-mingw32ce-strip efl/libecore_evas-0.dll
arm-mingw32ce-strip efl/libecore_job-0.dll
arm-mingw32ce-strip efl/libecore_wince-0.dll
arm-mingw32ce-strip efl/libembryo-0.dll
arm-mingw32ce-strip efl/libedje-0.dll


cp lib/eina/mp/eina_chained_mempool.dll efl/eina/mp
cp lib/eina/mp/eina_fixed_bitmap.dll efl/eina/mp
cp lib/eina/mp/eina_pass_through.dll efl/eina/mp

arm-mingw32ce-strip efl/eina/mp/eina_chained_mempool.dll
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/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

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/loaders/eet/ mingw32ce-arm/loader_eet.dll
arm-mingw32ce-strip efl/evas/modules/loaders/jpeg/ mingw32ce-arm/loader_jpeg.dll
arm-mingw32ce-strip efl/evas/modules/loaders/pmaps/ mingw32ce-arm/loader_pmaps.dll
arm-mingw32ce-strip efl/evas/modules/loaders/png/ mingw32ce-arm/loader_png.dll
arm-mingw32ce-strip efl/evas/modules/loaders/xpm/ mingw32ce-arm/loader_xpm.dll

arm-mingw32ce-strip efl/evas/modules/savers/eet/mingw32ce-arm/saver_eet.dll
arm-mingw32ce-strip efl/evas/modules/savers/png/mingw32ce-arm/saver_png.dll

cp freetype-2.3.7-bin/bin/libfreetype-6.dll efl/
cp libjpeg-6b-bin/bin/jpeg62.dll efl/
cp libpng-1.2.33-bin/bin/libpng12-0.dll efl/
cp libpng-1.2.33-bin/bin/libpng-3.dll efl/
cp zlib-1.2.3-bin/bin/zlib1.dll efl/

zip -r -9 efl.zip efl/

\end{lstlisting}


\end{appendix}