winemaker.de.UTF-8.man.in 9.29 KB
Newer Older
1
.\" -*- nroff -*-
2
.TH WINEMAKER 1 "Januar 2012" "@PACKAGE_STRING@" "Wine Entwicklerhandbuch"
3
.SH NAME
4
winemaker \- Erzeugt eine Build-Infrastruktur, um Windows Programme unter Unix zu kompilieren
5 6 7
.SH ÜBERSICHT
.B "winemaker "
[
8
.BR               "--nobanner " "] [ " "--backup " "| " "--nobackup " "] [ "--nosource-fix "
9 10 11
]
.br
  [
12
.BR               "--lower-none " "| " "--lower-all " "| " "--lower-uppercase "
13 14 15
]
.br
  [
16
.BR               "--lower-include " "| " "--nolower-include " ]\ [ " --mfc " "| " "--nomfc "
17 18 19
]
.br
  [
20
.BR               "--guiexe " "| " "--windows " "| " "--cuiexe " "| " "--console " "| " "--dll " "| " "--lib "
21 22 23
]
.br
  [
24
.BI               "-D" macro "\fR[=\fIdefn\fR] ] [" "\ " "-I" "dir\fR ]\ [ " "-P" "dir\fR ] [ " "-i" "dll\fR ] [ " "-L" "dir\fR ] [ " "-l" "library "
25 26 27
]
.br
  [
28
.BR               "--nodlls " "] [ " "--nomsvcrt " "] [ " "--interactive " "] [ " "--single-target \fIname\fR "
29 30 31
]
.br
  [
32
.BR               "--generated-files " "] [ " "--nogenerated-files " "]
33 34
.br
  [
35
.BR               "--wine32 " "]
36
.br
37
.IR               "  Arbeitsverzeichnis" " | " "Projektdatei" " | " "Workspacedatei"
38 39 40 41

.SH BESCHREIBUNG
.PP
.B winemaker
42 43
ist ein Perl-Script um Ihnen das Konvertieren von Windows-Quellcode
zu einem Winelib-Programm zu erleichtern.
44
.PP
45
Zu diesem Zweck beherrscht \fBwinemaker\fR folgende Operationen:
46
.PP
47 48
- Quellcodedateien und Verzeichnisse in Kleinbuchstaben umbenennen, falls
diese beim Übertragen komplett in Großbuchstaben angekommen sind.
49
.PP
50
- Konvertierung von DOS- zu Unix-Zeilenenden (CRLF nach LF).
51
.PP
52
- Include-Anweisungen und Resourcenreferenzen durchsuchen, um Backslashes
53 54
durch Slashes zu ersetzen.
.PP
55
- Während des obigen Schrittes wird \fBwinemaker\fR ebenfalls nach der angegebenen Datei
56 57
im Includepfad suchen und die entsprechende Zeile, falls nötig, mit der korrekten
Groß-/Kleinschreibweise austauschen.
58
.PP
59 60 61
- \fBwinemaker\fR wird ebenso andere, exotischere Probleme wie die Benutzung von
\fI#pragma pack\fR, \fIafxres.h\fR in nicht-MFC-Projekten und mehr untersuchen.
Sollte etwas ungwöhnliches vorkommen, wird \fBwinemaker\fR Sie warnen.
62
.PP
63
- \fBwinemaker\fR kann eine ganze Verzeichnisstruktur auf einmal durchsuchen,
64
schätzen welche ausführbaren Dateien und Bibliotheken Sie zu erstellen
65
gedenken, diese den passenden Quelldateien zuordnen und entsprechende \fIMakefile\fR
66
generieren.
67
.PP
68
- letztendlich wird \fBwinemaker\fR eine globale \fIMakefile\fR für den normalen Gebrauch erzeugen.
69
.PP
70
- \fBwinemaker\fR erkennt MFC-basierte Projekte und erstellt angepasste Dateien.
71
.PP
72
- Existierende Projektdateien können von \fBwinemaker\fR gelesen werden.
73
Unterstützt sind dsp, dsw, vcproj und sln-Dateien.
74 75 76
.PP
.SH ARGUMENTE
.TP
77
.B --nobanner
78
Unterdrückt die Anzeige des Banners.
79
.TP
80
.B --backup
81
Lässt \fBwinemaker\fR Backups von allen Quellcodedateien anlegen, an denen
82 83
Änderungen vorgenommen werden. Diese Option ist Standard.
.TP
84
.B --nobackup
85
Lässt \fBwinemaker\fR keine Backups anlegen.
86
.TP
87
.B --nosource-fix
88
Weist \fBwinemaker\fR an, keine Quellcodedateien zu ändern (z.B. DOS zu Unix
89
Konvertierung). Verhindert Fehlermeldungen bei schreibgeschützten Dateien.
90
.TP
91
.B --lower-all
92 93
Alle Dateien und Verzeichnisse werden in Kleinschreibung umbenannt.
.TP
94
.B --lower-uppercase
95
Nur Dateien und Verzeichnisse, die komplett groß geschrieben sind, werden
96
in Kleinschreibung umbenannt.
97
\fIHALLO.C\fR würde beispielsweise umbenannt werden, \fIWelt.c\fR jedoch nicht.
98
.TP
99
.B --lower-none
100
Keine Dateien und Verzeichnisse werden in Kleinschreibung umbenannt.
101 102 103
Beachten Sie, dass dies nicht die Umbenennung von Dateien verhindert, deren
Erweiterungen nicht unverändert verarbeitet werden können, z.B. ".Cxx".
Diese Option ist Standard.
104
.TP
105
.B "--lower-include "
106 107 108
Wenn die Datei zu einer Include-Anweisung (oder einer anderen Form von
Dateireferenz für Resourcen) nicht auffindbar ist, wird der Dateiname in
Kleinschreibung umbenannt. Diese Option ist Standard.
109
.TP
110
.B "--nolower-include "
111 112
Es werden keine Änderungen an Include-Anweisungen oder Referenzen vorgenommen,
wenn die entsprechende Datei nicht auffindbar ist.
113
.TP
114
.BR "--guiexe " "| " "--windows"
115 116
Legt fest, dass für jedes gefundene, ausführbare Target, oder Target unbekannten
Typs angenommen wird, dass es sich um eine grafische Anwendung handelt.
117 118
Diese Option ist Standard.
.TP
119
.BR "--cuiexe " "| " "--console"
120 121
Legt fest, dass für jedes gefundene, ausführbare Target, oder Target unbekannten
Typs angenommen wird, dass es sich um eine Konsolenanwendung handelt.
122
.TP
123
.B --dll
124
\fBwinemaker\fR wird im Zweifelsfall annehmen, dass es sich bei einem unbekannten
125
Target um eine DLL handelt.
126 127
.TP
.B --lib
128
\fBwinemaker\fR wird im Zweifelsfall annehmen, dass es sich bei einem unbekannten
129
Target um eine statische Bibliothek handelt.
130
.TP
131
.B --mfc
132 133
Teilt \fBwinemaker\fR mit, dass es sich um MFC-basierte Ziele handelt. In solch einem
Fall passt \fBwinemaker\fR Pfade für Header und Bibliotheken entsprechend an und
134
verlinkt die Ziele mit der MFC-Bibliothek.
135
.TP
136
.B --nomfc
137 138 139
Teilt \fBwinemaker\fR mit, dass es sich nicht um MFC-basierte Ziele handelt. Diese
Option verhindert die Benutzung von MFC-Bibliotheken, selbst wenn \fBwinemaker\fR
Dateien wie \fIstdafx.cpp\fR oder \fIstdafx.h\fR begegnet, was normalerweise automatisch
140
MFC aktivieren würde, wenn weder \fB--nomfc\fR noch \fB--mfc\fR angegeben wurden.
141
.TP
142
.BI -D macro "\fR[=\fIdefn\fR]"
143
Fügt diese Makrodefinition zur globalen Makroliste hinzu.
144
.TP
145
.BI -I dir
146
Hängt das angegebene Verzeichnis dem globalen Include-Pfad an.
147
.TP
148
.BI -P dir
149
Hängt das angegebene Verzeichnis dem globalen DLL-Pfad an.
150
.TP
151
.BI -i dll
152 153
Fügt die angegebene Winelib-Bibliothek zur globalen Liste der zu importierenden
Winelib-Bibliotheken hinzu.
154
.TP
155
.BI -L dir
156
Hängt das angegebene Verzeichnis dem globalen Bibliotheks-Pfad an.
157
.TP
158
.BI -l library
159
Fügt die angegebene Bibliothek zur globalen Liste der zu verlinkenden
160 161
Bibliotheken hinzu.
.TP
162
.B --nodlls
163
Diese Option teilt \fBwinemaker\fR mit, nicht den Standardsatz an Winelib-Bibliotheken
164
zu importieren. Dies bedeutet, dass jede DLL, die Ihr Quellcode nutzt, explizit
165 166 167
mit \fB-i\fR an \fBwinemaker\fR übergeben werden muss.
Die Standard-Bibliotheken sind: \fIodbc32.dll\fR, \fIodbccp32.dll\fR, \fIole32.dll\fR,
\fIoleaut32.dll\fR und \fIwinspool.drv\fR.
168
.TP
169
.B --nomsvcrt
170 171
Setzt einige Optionen, die \fBwinegcc\fR daran hindern, gegen msvcrt zu kompilieren.
Nutzen Sie diese Option bei cpp-Dateien, die \fI<string>\fR einbinden.
172
.TP
173
.B --interactive
174
Versetzt \fBwinemaker\fR in einen interaktiven Modus. In diesem Modus wird \fBwinemaker\fR
175 176
Sie für die Targetliste jedes Verzeichnisses nach Bestätigung und jeweils
target- und verzeichnisspezifischen Optionen fragen.
177
.TP
178 179
.BI --single-target " name"
Gibt an, dass es nur ein einziges Target gibt, namens \fIname\fR.
180
.TP
181
.B --generated-files
182
Weist \fBwinemaker\fR an, eine \fIMakefile\fR zu erzeugen. Diese Option ist Standard.
183
.TP
184
.B --nogenerated-files
185
Weist \fBwinemaker\fR an, keine \fIMakefile\fR zu erzeugen.
186
.TP
187
.B --wine32
188
Weist \fBwinemaker\fR an, ein 32-Bit Target zu erstellen. Dies ist nützlich bei
189
wow64-Systemen. Ohne diese Option wird die Standardarchitektur benutzt.
190 191 192

.SH BEISPIELE
.PP
193
Ein typischer \fBwinemaker\fR Aufruf:
194 195 196
.PP
$ winemaker --lower-uppercase -DSTRICT .
.PP
197
Damit scannt \fBwinemaker\fR das aktuelle Verzeichnis und die Unterverzeichnisse nach
198 199
Quellcodedateien. Jede Datei und jedes Verzeichnis, das ganz in Großbuchstaben
geschrieben ist, wird in Kleinbuchstaben umbenannt. Danach werden alle Quellcodedateien
200 201 202
an die Kompilierung mit Winelib angepasst und \fIMakefile\fRs erzeugt. \fB-DSTRICT\fR gibt
an, dass das \fBSTRICT\fR-Makro gesetzt sein muss, um diesen Quellcode zu kompilieren.
Letztendlich wird \fBwinemaker\fR die globale \fIMakefile\fR erzeugen.
203 204 205 206 207
.PP
Der nächste Schritt wäre dann:
.PP
$ make
.PP
208 209 210
Wenn Sie an diesem Punkt Compilerfehler erhalten (was recht wahrscheinlich ist,
ab einer gewissen Projektgröße), sollten Sie den Winelib User Guide zu Rate
ziehen, um Problemlösungen und Tipps zu finden.
211
.PP
212
Bei einem MFC-basierten Projekt sollten Sie stattdessen folgenden Befehl ausführen:
213 214 215 216 217
.PP
$ winemaker --lower-uppercase --mfc .
.br
$ make
.PP
218
Mit einer existierenden Projektdatei lautet der passende Befehl:
219 220 221 222 223 224 225 226
.PP
$ winemaker meinprojekt.dsp
.br
$ make
.PP

.SH TODO / FEHLER
.PP
227
In einigen Fällen werden Sie die \fIMakefile\fR oder den Quellcode von Hand
228
nachbearbeiten müssen.
229
.PP
230
Angenommen, die fertigen Windows-Bibliotheken oder Binärdateien sind vorhanden,
231
könnte mit \fBwinedump\fR ermittelt werden, um welche Art von ausführbarer Datei es
232 233 234
sich handelt (grafisch oder Konsole), gegen welche Bibliotheken sie gelinkt
sind und welche Funktionen exportiert werden (bei Bibliotheken). All diese
Informationen könnten dann für das Winelib-Projekt verwendet werden.
235
.PP
236
Weiterhin ist \fBwinemaker\fR nicht sehr gut darin, die Bibliothek zu finden, die
237 238
die Anwendung enthält: Sie muss entweder im aktuellen Verzeichnis oder im
.IR LD_LIBRARY_PATH liegen.
239
.PP
240
\fBwinemaker\fR unterstützt noch keine Messagedateien und deren Compiler.
241
.PP
242
Fehler können im
243
.UR https://bugs.winehq.org
244 245 246
.B Wine Bugtracker
.UE
gemeldet werden.
247
.SH AUTOREN
248 249
François Gouget für CodeWeavers
.br
250
Dimitrie O. Paun
251
.br
252
André Hentschel
253
.SH VERFÜGBARKEIT
254
.B winemaker
255
ist Teil der Wine-Distribution, verfügbar im WineHQ, dem
256
.UR https://www.winehq.org/
257 258 259 260 261
.B Hauptquartier der Wine-Entwicklung
.UE .
.SH SIEHE AUCH
.BR wine (1),
.br
262
.UR https://www.winehq.org/help
263 264
.B Wine-Dokumentation und Support
.UE .