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