| .\" -*- nroff -*- | |
| .TH WINEMAKER 1 "Januar 2012" "@PACKAGE_STRING@" "Wine Entwicklerhandbuch" | |
| .SH NAME | |
| winemaker \- Erzeugt eine Build-Infrastruktur, 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 | |
| Zu diesem Zweck beherrscht \fBwinemaker\fR folgende Operationen: | |
| .PP | |
| - Quellcodedateien und Verzeichnisse in Kleinbuchstaben umbenennen, falls | |
| diese beim Übertragen komplett in Großbuchstaben angekommen sind. | |
| .PP | |
| - Konvertierung von DOS- zu Unix-Zeilenenden (CRLF nach LF). | |
| .PP | |
| - Include-Anweisungen und Resourcenreferenzen durchsuchen, um Backslashes | |
| durch Slashes zu ersetzen. | |
| .PP | |
| - Während des obigen Schrittes wird \fBwinemaker\fR ebenfalls nach der angegebenen Datei | |
| im Includepfad suchen und die entsprechende Zeile, falls nötig, mit der korrekten | |
| Groß-/Kleinschreibweise austauschen. | |
| .PP | |
| - \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. | |
| .PP | |
| - \fBwinemaker\fR kann eine ganze Verzeichnisstruktur auf einmal durchsuchen, | |
| schätzen welche ausführbaren Dateien und Bibliotheken Sie zu erstellen | |
| gedenken, diese den passenden Quelldateien zuordnen und entsprechende \fIMakefile\fR | |
| generieren. | |
| .PP | |
| - letztendlich wird \fBwinemaker\fR eine globale \fIMakefile\fR für den normalen Gebrauch erzeugen. | |
| .PP | |
| - \fBwinemaker\fR erkennt MFC-basierte Projekte und erstellt angepasste Dateien. | |
| .PP | |
| - Existierende Projektdateien können von \fBwinemaker\fR gelesen werden. | |
| Unterstützt sind dsp, dsw, vcproj und sln-Dateien. | |
| .PP | |
| .SH ARGUMENTE | |
| .TP | |
| .B --nobanner | |
| Unterdrückt die Anzeige des Banners. | |
| .TP | |
| .B --backup | |
| Lässt \fBwinemaker\fR Backups von allen Quellcodedateien anlegen, an denen | |
| Änderungen vorgenommen werden. Diese Option ist Standard. | |
| .TP | |
| .B --nobackup | |
| Lässt \fBwinemaker\fR keine Backups anlegen. | |
| .TP | |
| .B --nosource-fix | |
| Weist \fBwinemaker\fR an, keine Quellcodedateien zu ändern (z.B. DOS zu Unix | |
| Konvertierung). Verhindert Fehlermeldungen bei schreibgeschützten Dateien. | |
| .TP | |
| .B --lower-all | |
| Alle Dateien und Verzeichnisse werden in Kleinschreibung umbenannt. | |
| .TP | |
| .B --lower-uppercase | |
| Nur Dateien und Verzeichnisse, die komplett groß geschrieben sind, werden | |
| in Kleinschreibung umbenannt. | |
| \fIHALLO.C\fR würde beispielsweise umbenannt werden, \fIWelt.c\fR jedoch nicht. | |
| .TP | |
| .B --lower-none | |
| Keine Dateien und Verzeichnisse werden in Kleinschreibung umbenannt. | |
| 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. | |
| .TP | |
| .B "--lower-include " | |
| 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. | |
| .TP | |
| .B "--nolower-include " | |
| Es werden keine Änderungen an Include-Anweisungen oder Referenzen vorgenommen, | |
| wenn die entsprechende Datei nicht auffindbar ist. | |
| .TP | |
| .BR "--guiexe " "| " "--windows" | |
| Legt fest, dass für jedes gefundene, ausführbare Target, oder Target unbekannten | |
| Typs angenommen wird, dass es sich um eine grafische Anwendung handelt. | |
| Diese Option ist Standard. | |
| .TP | |
| .BR "--cuiexe " "| " "--console" | |
| Legt fest, dass für jedes gefundene, ausführbare Target, oder Target unbekannten | |
| Typs angenommen wird, dass es sich um eine Konsolenanwendung handelt. | |
| .TP | |
| .B --dll | |
| \fBwinemaker\fR wird im Zweifelsfall annehmen, dass es sich bei einem unbekannten | |
| Target um eine DLL handelt. | |
| .TP | |
| .B --lib | |
| \fBwinemaker\fR wird im Zweifelsfall annehmen, dass es sich bei einem unbekannten | |
| Target um eine statische Bibliothek handelt. | |
| .TP | |
| .B --mfc | |
| 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 | |
| verlinkt die Ziele mit der MFC-Bibliothek. | |
| .TP | |
| .B --nomfc | |
| 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 | |
| MFC aktivieren würde, wenn weder \fB--nomfc\fR noch \fB--mfc\fR angegeben wurden. | |
| .TP | |
| .BI -D macro "\fR[=\fIdefn\fR]" | |
| Fügt diese Makrodefinition zur globalen Makroliste hinzu. | |
| .TP | |
| .BI -I dir | |
| Hängt das angegebene Verzeichnis dem globalen Include-Pfad an. | |
| .TP | |
| .BI -P dir | |
| Hängt das angegebene Verzeichnis dem globalen DLL-Pfad an. | |
| .TP | |
| .BI -i dll | |
| Fügt die angegebene Winelib-Bibliothek zur globalen Liste der zu importierenden | |
| Winelib-Bibliotheken hinzu. | |
| .TP | |
| .BI -L dir | |
| Hängt das angegebene Verzeichnis dem globalen Bibliotheks-Pfad an. | |
| .TP | |
| .BI -l library | |
| Fügt die angegebene Bibliothek zur globalen Liste der zu verlinkenden | |
| Bibliotheken hinzu. | |
| .TP | |
| .B --nodlls | |
| Diese Option teilt \fBwinemaker\fR mit, nicht den Standardsatz an Winelib-Bibliotheken | |
| zu importieren. Dies bedeutet, dass jede DLL, die Ihr Quellcode nutzt, explizit | |
| 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. | |
| .TP | |
| .B --nomsvcrt | |
| Setzt einige Optionen, die \fBwinegcc\fR daran hindern, gegen msvcrt zu kompilieren. | |
| Nutzen Sie diese Option bei cpp-Dateien, die \fI<string>\fR einbinden. | |
| .TP | |
| .B --interactive | |
| Versetzt \fBwinemaker\fR in einen interaktiven Modus. In diesem Modus wird \fBwinemaker\fR | |
| Sie für die Targetliste jedes Verzeichnisses nach Bestätigung und jeweils | |
| target- und verzeichnisspezifischen Optionen fragen. | |
| .TP | |
| .BI --single-target " name" | |
| Gibt an, dass es nur ein einziges Target gibt, namens \fIname\fR. | |
| .TP | |
| .B --generated-files | |
| Weist \fBwinemaker\fR an, eine \fIMakefile\fR zu erzeugen. Diese Option ist Standard. | |
| .TP | |
| .B --nogenerated-files | |
| Weist \fBwinemaker\fR an, keine \fIMakefile\fR zu erzeugen. | |
| .TP | |
| .B --wine32 | |
| Weist \fBwinemaker\fR an, ein 32-Bit Target zu erstellen. Dies ist nützlich bei | |
| wow64-Systemen. Ohne diese Option wird die Standardarchitektur benutzt. | |
| .SH BEISPIELE | |
| .PP | |
| Ein typischer \fBwinemaker\fR Aufruf: | |
| .PP | |
| $ winemaker --lower-uppercase -DSTRICT . | |
| .PP | |
| Damit scannt \fBwinemaker\fR das aktuelle Verzeichnis und die Unterverzeichnisse nach | |
| Quellcodedateien. Jede Datei und jedes Verzeichnis, das ganz in Großbuchstaben | |
| geschrieben ist, wird in Kleinbuchstaben umbenannt. Danach werden alle Quellcodedateien | |
| 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. | |
| .PP | |
| Der nächste Schritt wäre dann: | |
| .PP | |
| $ make | |
| .PP | |
| 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. | |
| .PP | |
| Bei einem MFC-basierten Projekt sollten Sie stattdessen folgenden Befehl ausführen: | |
| .PP | |
| $ winemaker --lower-uppercase --mfc . | |
| .br | |
| $ make | |
| .PP | |
| Mit einer existierenden Projektdatei lautet der passende Befehl: | |
| .PP | |
| $ winemaker meinprojekt.dsp | |
| .br | |
| $ make | |
| .PP | |
| .SH TODO / FEHLER | |
| .PP | |
| In einigen Fällen werden Sie die \fIMakefile\fR oder den Quellcode von Hand | |
| nachbearbeiten müssen. | |
| .PP | |
| Angenommen, die fertigen Windows-Bibliotheken oder Binärdateien sind vorhanden, | |
| könnte mit \fBwinedump\fR ermittelt werden, um welche Art von ausführbarer Datei es | |
| 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. | |
| .PP | |
| Weiterhin ist \fBwinemaker\fR nicht sehr gut darin, die Bibliothek zu finden, die | |
| die Anwendung enthält: Sie muss entweder im aktuellen Verzeichnis oder im | |
| .IR LD_LIBRARY_PATH liegen. | |
| .PP | |
| \fBwinemaker\fR unterstützt noch keine Messagedateien und deren Compiler. | |
| .PP | |
| Fehler können im | |
| .UR http://bugs.winehq.org | |
| .B Wine Bugtracker | |
| .UE | |
| gemeldet werden. | |
| .SH AUTOREN | |
| François Gouget für CodeWeavers | |
| .br | |
| Dimitrie O. Paun | |
| .br | |
| André Hentschel | |
| .SH VERFÜGBARKEIT | |
| .B winemaker | |
| ist Teil der Wine-Distribution, verfügbar im WineHQ, dem | |
| .UR http://www.winehq.org/ | |
| .B Hauptquartier der Wine-Entwicklung | |
| .UE . | |
| .SH SIEHE AUCH | |
| .BR wine (1), | |
| .br | |
| .UR http://www.winehq.org/help | |
| .B Wine-Dokumentation und Support | |
| .UE . |