| .\" -*- 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 . |