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
|
.\" -*- nroff -*-
.TH WINEMAKER 1 "Januar 2012" "@PACKAGE_STRING@" "Wine Developers Manual"
.SH NAME
winemaker \- Erzeugt eine Buildumgebung um Windows Programme unter Unix zu kompilieren
.SH ÜBERSICHT
.B "winemaker "
[
.BR "--nobanner " "] [ " "--backup " "| " "--nobackup " "] [ "--nosource-fix "
]
.br
[
.BR "--lower-none " "| " "--lower-all " "| " "--lower-uppercase "
]
.br
[
.BR "--lower-include " "| " "--nolower-include " ]\ [ " --mfc " "| " "--nomfc "
]
.br
[
.BR "--guiexe " "| " "--windows " "| " "--cuiexe " "| " "--console " "| " "--dll " "| " "--lib "
]
.br
[
.BI "-D" macro "\fR[=\fIdefn\fR] ] [" "\ " "-I" "dir\fR ]\ [ " "-P" "dir\fR ] [ " "-i" "dll\fR ] [ " "-L" "dir\fR ] [ " "-l" "library "
]
.br
[
.BR "--nodlls " "] [ " "--nomsvcrt " "] [ " "--interactive " "] [ " "--single-target \fIname\fR "
]
.br
[
.BR "--generated-files " "] [ " "--nogenerated-files " "]
]
.br
[
.BR "--wine32 " "]
.br
.IR " Arbeitsverzeichnis" " | " "Projektdatei" " | " "Workspacedatei"
.SH BESCHREIBUNG
.PP
.B winemaker
ist ein Perl Script um Ihnen das konvertieren von Windows Quellcode
zu einem Winelib Programm zu erleichtern.
.PP
Um diese zu tun kann winemaker folgendes vornehmen:
.PP
- Quellcodedateien und Verzeichnisse in Kleinbuchstaben umbennen falls
alle Buchstaben groß sind.
.PP
- DOS zu Unix konvertierung (CRLF to LF).
.PP
- include Anweisungen und Resource Referenzen durchsuchen um Backslashes
durch Slashes zu ersetzen.
.PP
- während des oberen Schrittes wird winemaker auch nach der angegebenen Datei
im Includepfad suchen um die entsprechende Zeile falls nötig mit der jeweiligen Schreibweise
zu korriegieren.
.PP
- winemaker wird ebenso andere exotische Probleme wie die Benutzung von
'#pragma pack', 'afxres.h' in nicht-MFC-Projekten und mehr untersuchen.
Sollte irgendwas ungwöhnliches vorkommen wird winemaker Sie warnen.
.PP
- winemaker kann auch eine ganze Verzeichnisstruktur auf einmal durchsuchen,
schätzen was die ausführbaren Dateien und Bibliotheken sind die Sie neu erstellen
möchten und dazu die Quellcodedateien zuordnen.
.PP
- letzendlich wird winemaker eine Makefile für den normalen gebrauch erstellen.
.PP
- MFC-basierte Projekte werden erkannt und es werden angepasste Dateien erstellt.
.PP
- Existierende Projektdateien können von winemaker gelesen werden.
Unterstützt werden dsp, dsw, vcproj und sln Dateien.
.PP
.SH ARGUMENTE
.TP
.B --nobanner
Schaltet das anzeigen des Banners aus.
.TP
.B --backup
Lässt winemaker Backups von allen Quellcodedateien erstellen an denen
Änderungen vorgenommen werden. Diese Option ist Standard.
.TP
.B --nobackup
Lässt winemaker keine Backups erstellen.
.TP
.B --nosource-fix
Lässt winemaker keine Quellcodedateien ändern (z.B. DOS zu Unix Konvertierung)
Das kann Meldungen bei schreibgeschützten Dateien verhindern.
.TP
.B --lower-all
Alle Dateien und Verzeichnisse werden in Kleinschreibung umbenannt.
.TP
.B --lower-uppercase
Alle Dateien und Verzeichnisse die komplett groß geschrieben sind werden
in Kleinschreibung umbenannt.
Also "HALLO.C" würde umbenannt werden, "Welt.c" jedoch nicht.
.TP
.B --lower-none
Keine Dateien und Verzeichnisse werden in Kleinschreibung umbenannt.
Achtung: Dies verhindert nicht die Umbennenung von Dateien, deren Erweiterung
nicht verarbeiten lassen, wie z.B. ".Cxx". Diese Option ist Standard.
.TP
.B "--lower-include "
Wenn die Datei zu einer include Anweisung (oder einer Resource Referenz)
nicht auffindbar ist, wird der Dateiname in Kleinschreibung umbenannt.
Diese Option ist Standard.
.TP
.B "--nolower-include "
Wenn die Datei zu einer include Anweisung (oder einer Resource Referenz)
nicht auffindbar ist, wird keine Änderung vorgenommen.
.TP
.BR "--guiexe " "| " "--windows"
Gibt den Typ(grafisch) der zu erstellenden Anwendung an.
Diese Option ist Standard.
.TP
.BR "--cuiexe " "| " "--console"
Gibt den Typ(Konsole) der zu erstellenden Anwendung an.
.TP
.B --dll
winemaker wird im Zweifelsfall annehmen, dass es sich um eine DLL handelt.
.TP
.B --lib
winemaker wird im Zweifelsfall annehmen, dass es sich um eine statische Bibliothek handelt.
.TP
.B --mfc
Teilt winemaker mit, dass es sich um MFC-basierten Quellcode handelt.
In solch einem Fall passt winemaker Pfade für Header und Bibliotheken entsprechend an
und kompiliert gegen die MFC Bibliothek.
.TP
.B --nomfc
Teilt winemaker mit, dass es sich nicht um MFC-basierten Quellcode handelt.
Selbst wenn winemaker dateien wie "stdafx.cpp" oder "stdafx.h" bemerkt, was automatisch
MFC aktivieren würde, wenn weder --nomfc noch --mfc angegeben wurden.
.TP
.BI -D macro "\fR[=\fIdefn\fR]"
Verwendet diese Makrodefinition global.
.TP
.BI -I dir
Verwendet den Pfad als globalen Include-Pfad.
.TP
.BI -P dir
Verwendet den Pfad als globalen DLL-Pfad.
.TP
.BI -i dll
Fügt eine Winelib Bibliothek zu der globalen Liste der zu importierenden
Winelib Bibliotheken hinzu.
.TP
.BI -L dir
Verwendet den Pfad als globalen Bibliotheks-Pfad.
.TP
.BI -l library
Fügt eine Bibliothek zu der globalen Liste der zu importierenden
Bibliotheken hinzu.
.TP
.B --nodlls
Dieso Option teil winemakr mit, nicht die Standard Winelib Bibliotheken zu importieren.
Also muss jede DLL die der Quellcode nutzt explizit mit -i an winemaker übergeben werden.
Die Standard Bibliotheken sind: odbc32.dll, odbccp32.dll, ole32.dll,
oleaut32.dll und winspool.drv.
.TP
.B --nomsvcrt
Dies hindert winegcc gegen msvcrt zu kompilieren.
Nutzen Sie diese Option bei cpp-Dateien mit einem <string> include.
.TP
.B --interactive
Versetzt winemaker in einen interaktiven Modus. In diesem Modus wird winemaker
Sie für jede Targetliste in jedem Verzeichniss nach Bestätigung fragen und nach jeweils
speziellen Optionen fragen.
.TP
.B --single-target name
Es gibt nur ein Target namens "name".
.TP
.B --generated-files
Eine Makefile soll erzeugt werden. Diese Option ist Standard.
.TP
.B --nogenerated-files
Keine Makefile erstellen.
.TP
.B --wine32
Ein 32-Bit Target erstellen. Das ist nützlich unter wow64 Systemen.
Ohne dieser Option wird die Standard Architektur genutzt.
.SH BEISPIELE
.PP
Ein typischer winemaker aufruf:
.PP
$ winemaker --lower-uppercase -DSTRICT .
.PP
Damit scannt winemaker das aktuelle Verzeichnis und die Unterverzeichnisse nach
Quellcodedateien. Jede Datei und jedes Verzeichnis das in Großbuchstaben geschrieben
ist wird in Kleinbuchstaben umbenannt. Danach werden alle Quellcodedateien an die
kompilierung mit Winelib angepasst und Makefiles erzeugt.
'-DSTRICT' gibt an, dass das STRICT Makro gesetzt sein muss wenn man diesen Quellcode
kompiliert. Letztendlich wird winemaker die globale Makefile erzeugen.
.PP
Der nächste Schritt wäre dann:
.PP
$ make
.PP
Wenn Sie hier Compiler Fehler sehen (was nicht unwahrscheinlich für ein einigermaßen
großes Projekt), dann sollten Sie einen Blick in den Winelib User Guide werfen um
für die Problemlösung ein paar Tipps zu finden.
.PP
Bei einem MFC-basierten Projekt müssen Sie stattdessen folgenden Befehl ausführen:
.PP
$ winemaker --lower-uppercase --mfc .
.br
$ make
.PP
Mit einer existierenden Projektdatei folgenden Befehl ausführen:
.PP
$ winemaker meinprojekt.dsp
.br
$ make
.PP
.SH TODO / FEHLER
.PP
In einigen Fällen müssen Sie die Makefile oder den Quellcode nachbearbeiten.
.PP
Für den Fall das die Binärdateien schon vorhanden sind könnten wir winedump
nutzen um die Art (grafisch oder Konsole), die benötigten Bibliotheken und welche
Funktionen exportiert werden (bei den Bibliotheken). Wir könnten all diese Informationen
für das Winelib Projekt verwenden.
.PP
Weiterhin ist winemaker nicht sehr gut darin die Bibliothek zu finden, die die
Anwendung enthält. Sie muss entweder im aktuellen Verzeichnis sein oder in
.IR LD_LIBRARY_PATH .
.PP
Winemaker unterstützt noch keine Messagedateien und deren Compiler.
.PP
.SH SIEHE AUCH
.PP
Den Winelib User Guide:
.PP
http://www.winehq.org/docs/winelib-guide/index
.PP
.BR wine (1)
.PP
.SH AUTOREN
François Gouget for CodeWeavers
.PP
Dimitrie O. Paun
.PP
André Hentschel
.PP
|