summaryrefslogtreecommitdiffstats
path: root/ausarbeitung/Anhang.tex.backup
blob: 992a6e523a67dbbc71f9b58be68bb96fd4c2cabc (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
\section*{Anhang}
\begin{appendix}

\subsection*{Anhang 1}

Um die Pakete \textit{Evil, Eina, Eet, Embryo, Evas, Ecore, Edje} und \textit{Elementary} von \textit{Ubuntu} nach \textit{Windows
Mobile} zu portieren, sind die folgenden Schritte nötig: \newline
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 Herunterladen 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 Pakete aus dem \textit{Ubuntu-Repository}
installiert werden.

\begin{lstlisting}[backgroundcolor=\color{grey}]
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}

Als nächstes muss 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. Dies ist notwendig 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 dieser Datei geschieht mit Hilfe des Befehls \colorbox{grey}{\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}[backgroundcolor=\color{grey}]
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} exportiert werden. Die Variablen existieren nur in
den \textit{Shells}, in denen sie exportiert wurden.\newline
Unter den Variablen \textit{CEGCC\_PATH} und \textit{MINGW32CE\_PATH} ist der Pfad zum Verzeichnis des \textit{cegcc},
beziehungsweise des \textit{mingw32ce} Kompilers einzutragen. Unter \textit{WINCE\_PATH} muss der Pfad zum Verzeichnis in dem die
kompilierten Dateien gespeichert werden sollen, eingetragen werden. Mit \textit{PATH} werden die \textit{Binaries} des
\textit{CeGCC's}, in den systemweiten Pfad der ausführbaren Dateien 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 ausführbare Dateien liegen, die zum kompilieren benötigt werden.
\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 
\colorbox{grey}{\lstinline{source <Pfad-zu-der-Datei>/mingw32ce.env}}.\newline
Nun muss noch ein Ordner angelegt werden, in welchem der \textit{Enlightenment Source-Code} gespeichert werden kann.
Nach dem Wechseln in selbigen kann mit dem nächsten Schritt fortgefahren werden.

\subsubsection*{Evil}

Zuerst muss der Quellcode von \textit{Evil} aus dem \textit{SVN} heruntergeladen werden. Das Herunterladen wird mit 
\colorbox{grey}{\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/evil}} ausgeführt.
Nachdem alle Dateien erfolgreich heruntergeladen wurden, muss falls nicht schon geschehen, die Datei mit den
\textit{Umgebungsvaribalen} exportiert werden. Nachdem dies durchgeführt wurde, kann nun das Konfigurationsskript mit dem
Aufruf \colorbox{grey}{\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce|} gestartet werden. \newline
Durch das Ausführen des Skriptes mit den diesen Parametern wird der Installationspfad auf den Wert der Variable
\textit{WINCE\_PATH} gesetzt und der \textit{mingw32ce}-Kompiler als Kompiler festgelegt.\newline
Nachdem dieses Skript erfolgreich ausgeführt wurde, kann im nächsten Schritt das Programm durch Ausführen von
\colorbox{grey}{\lstinline{make}} erstellt und im Anschluss durch \colorbox{grey}{\lstinline{make install}} installiert werden.
Nach diesem Schritt sollte \textit{Evil} erfolgreich im Zielordner, der in der Variable \textit{WINCE\_PATH} festgelegt wurde,
installiert worden sein.

\subsubsection*{Eina}

Hier ist es ebenfalls nötig die Dateien aus dem Entwickler-Repository durch 
\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/eina} herunterzuladen.
Danach wird das \textit{autogen.sh} Skript durch 
\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread| aufgerufen. \newline
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{libpthread} deaktiviert, da diese auf dem Zielsystem
nicht unterstützt wird.\newline
Nachdem das Skript ausgeführt wurde, wird das Programm nun mit \colorbox{grey}{\lstinline{make}} erstellt und im Zielverzeichnis
mit \colorbox{grey}{\lstinline{make install}} installiert.

\subsubsection*{Eet}

Bevor man \textit{Eet} erstellen kann, muss man noch vier \textit{tar-Archive} im Verzeichnis, welches in der
Variable \textit{WINCE\_PATH} gespeichert wurde, entpacken. Diese Archive können unter den Links, welche in Anhang 2 zu finden
sind, heruntergeladen werden. Im Anschluss müssen diese in das \textit{WINCE\_PATH}-Verzeichnis kopiert und
entpackt werden. Nun kann der Quellcode für \textit{Eet} durch Ausführen von 
\colorbox{grey}{\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/eet}} heruntergeladen werden.
Nachdem die Dateien vorhanden sind, muss das \textit{autogen.sh}-Skript durch 
\colorbox{grey}{\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce|} aufgerufen und ausgeführt werden.
Im Anschluss wird mit \colorbox{grey}{\lstinline{make}} kompiliert und mit \colorbox{grey}{\lstinline{make install}} installiert.

\subsubsection*{Embryo}

Der Erste Schritt ist das Herunterladen des Programmcodes unter der Verwendung von 
\colorbox{grey}{\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/embryo}}.
Nachdem die Dateien heruntergeladen wurden, muss durch 
\colorbox{grey}{\lstinline{./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce}} das
\textit{autogen.sh}-Skript aufgerufen werden.
Im Anschluss mit \colorbox{grey}{\lstinline{make}} kompilieren und mit \colorbox{grey}{\lstinline{make install}} installieren.

\subsubsection*{Evas}

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

\begin{lstlisting}[breakatwhitespace=true,backgroundcolor=\color{grey}]
 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}

Die Paketinformationen müssen allerdings noch bearbeitet werden. Dazu werden folgende drei Dateien, \textit{freetype2.pc},
\textit{libpng.pc} und \textit{libpng12.pc} benötigt. Diese werden daraufolgend mit einem beliebigen Editor geöffnet und allen
drei Dateien der Wert der Variable \textit{prefix} auf \textit{\$WINCE\_PATH} gesetzt. Nachdem dies durchgeführt wurde kann nun
der Quellcode von \textit{Evas}
durch ausführen von \colorbox{grey}{\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/evas}} heruntergeladen werden.
Es muss auch hier, wie bei allen anderen Programmen, das \textit{autogen.sh}-Skript durch 
\colorbox{grey}{\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-async-events|} aufgerufen werden.
Als nächster Schritt muss nun das Programm mit \lstinline{make} kompiliert werden.
Sollte hierbei die Datei \textit{ft2build.h} nicht gefunden werden, so muss diese an die richtige Stelle kopiert werden.
Ursprünglich ist diese Datei unter \colorbox{grey}{\lstinline|$WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h|} zu
finden.
Es kann vorkommen das sie in diesem Ordner nicht gefunden wird. Um dies zu beheben muss \textit{ft2build.h} eine Ordnerebene
nach oben kopiert werden. Dies geschieht durch den Aufruf von
\colorbox{grey}{\lstinline|cp $WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2build.h$WINCE_PATH/freetype-2.3.7-dev/include|}
. \newline
Um einen weiteren Fehler von vorneherein zu umgehen, muss noch der Pfad eines eingebundenen Headers in \textit{ft2build.h}
abgeändert werden. 
Hierzu öffnet man \textit{ft2build.h} mit einem beliebigen Editor und ändert \colorbox{grey}{\lstinline{#include
<freetype/config/ftheader.h>}} zu
\colorbox{grey}{\lstinline{#include <freetype2/freetype/config/ftheader.h>}} ab. \newline
Anschliessend muss nun auch der \textit{freetype}-Ordner um eine Ebene nach oben kopieren werden, da die
\textit{include}-Pfade in den Headern von \textit{freetype2} nicht korrekt sind.\newline
Falls man nun noch \textit{Evas} mit \textit{DirectX-Support} kompilieren möchte, muss das \textit{DirectX-SDK} herunterladen
und \textit{ddraw.h} in die Verzeichnisse \textit{/opt/cegcc/arm-cegcc/include/w32api/} und
\textit{/opt/mingw32ce/arm-mingw32ce/include/} kopiert werden.

\subsubsection*{Ecore}

Um \textit{Ecore} zu erstellen muss zuerst eine Änderung im \textit{winnt.h}-Header vorgenommen werden. Dieser liegt im 
\textit{include}-Verzeichniss des \textit{mingw32ce}-Kompilers.

\begin{lstlisting}[backgroundcolor=\color{grey}]
 #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 \textit{+} gekennzeichnete Eintrag \textit{PROCESS\_SUSPEND\_RESUME} muss in die Datei \textit{winnt.h} eingefügt
werden.\newline
Nachdem dieser Schritt ausgeführt wurde kann \textit{Ecore} erstellt werden. Dazu wird das
\textit{autogen.sh}-Skript durch den Aufruf von 
\colorbox{grey}{\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-pthread|} gestartet. \newline
Nachdem das Skript erfolgreich ausgeführt wurde, können nun die gleichen zwei Schritte wie bei den vorhergegangenen
Programmen ausgeführt werden. Der Kompilierungsvorgang wird durch \colorbox{grey}{\lstinline{make}} gestartet. Im Anschluss kann
mit
\colorbox{grey}{\lstinline{make install}} installiert werden.

\subsubsection*{Edje}

Auch hier müssen zuerst die Dateien durch Aufruf von \lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/embryo}
heruntergeladen werden.
Nachdem die Dateien heruntergeladen wurden, muss das Skript durch 
\colorbox{grey}{\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce|} aufgerufen werden.
Die letzten beiden Schritte sind kompilieren und installieren durch \colorbox{grey}{\lstinline{make}} und 
\colorbox{grey}{\lstinline{make install}}.

\subsubsection*{Elementary}

Zuerst ist es notwendig den Quellcode und die benötigte Daten herunterzuladen. Dies geschieht durch den Aufruf von 
\colorbox{grey}{\lstinline{svn co http://svn.enlightenment.org/svn/e/trunk/TMP/st/elementary}}.
Nun muss das \textit{autogen.sh}-Skript mit 
\colorbox{grey}{\lstinline|./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --with-edje-cc=$WINCE_PATH/bin/edje_cc|}
gestartet und ausgeführt werden.
Um zwei Fehlern vorzubeugen, welche beim Erstellen der Test-Files von \textit{elementary} auftreten, sollte man im in der Datei
\textit{Makefile.am} im Ordner \textit{\textless Pfad-zu-Elementary\textgreater /src/bin/} alle Vorkommnisse von
\textit{test\_fileselector.c} entfernen und folgende
Zeilen auskommentieren:
\begin{lstlisting}[backgroundcolor=\color{grey}]
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 \colorbox{grey}{\lstinline{make}} und 
\colorbox{grey}{\lstinline{make install}} erstellt und installiert werden.

\subsubsection*{Weitere Schritte}

Im Anschluss an das Erstellen dieser Programme muss nun noch ein Skript in \textit{WINCE\_PATH} angelegt und dessen Zugriffsrechte
abgeändert werden. Das Anlegen des Skripts erfolgt durch \colorbox{grey}{\lstinline{touch efl_zip.sh}}. Die Zugriffsrechte werden
durch \colorbox{grey}{\lstinline{chmod 774 efl_zip.sh}} abgeändert. \newline
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
\textit{efl} kopiert. Im Anschluss wird der ganze Ordner noch in einem \textit{Zip-Archiv} zusammengefasst. Möchte
man nun noch eigene Anwendungen hinzufügen, so muss man diese nur in diesen \textit{efl} Ordner hinzufügen und das Skript aus
Anhang 4 erneut ausführen. 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,backgroundcolor=\color{grey}]
 #!/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}