246 lines
7.7 KiB
Groff
246 lines
7.7 KiB
Groff
|
.\" -*- nroff -*-
|
||
|
.TH WINEMAKER 1 "April 2010" "@PACKAGE_STRING@" "Wine Developers Manual"
|
||
|
.SH NAME
|
||
|
winemaker \- Erzeugt eine Buildumgebung um Windows Programme unter Unix zu kompilieren
|
||
|
.SH ÜBERSICHT
|
||
|
.B "winemaker "
|
||
|
[
|
||
|
.IR "--nobanner " "] [ " "--backup " "| " "--nobackup " "] [ "--nosource-fix "
|
||
|
]
|
||
|
.br
|
||
|
[
|
||
|
.IR "--lower-none " "| " "--lower-all " "| " "--lower-uppercase "
|
||
|
]
|
||
|
.br
|
||
|
[
|
||
|
.IR "--lower-include " "| " "--nolower-include " ] [ " "--mfc " "| " "--nomfc "
|
||
|
]
|
||
|
.br
|
||
|
[
|
||
|
.IR "--guiexe " "| " "--windows " "| " "--cuiexe " "| " "--console " "| " "--dll "
|
||
|
]
|
||
|
.br
|
||
|
[
|
||
|
.IR "-Dmacro[=defn] " "] [ " "-Idir " "] [ " "-Pdir " "] [ " "-idll" "] [ " "-Ldir " "] [ " "-llibrary "
|
||
|
]
|
||
|
.br
|
||
|
[
|
||
|
.IR "--nodlls " "] [ " "--nomsvcrt " "] [ " "--interactive " "] [ " "--single-target name "
|
||
|
]
|
||
|
.br
|
||
|
[
|
||
|
.IR "--generated-files " "] [ " "--nogenerated-files " "]
|
||
|
]
|
||
|
.br
|
||
|
[
|
||
|
.IR "--wine64 " "]
|
||
|
.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
|
||
|
.I --nobanner
|
||
|
Schaltet das anzeigen des Banners aus.
|
||
|
.TP
|
||
|
.I --backup
|
||
|
Lässt winemaker Backups von allen Quellcodedateien erstellen an denen
|
||
|
Änderungen vorgenommen werden. Diese Option ist Standard.
|
||
|
.TP
|
||
|
.I --nobackup
|
||
|
Lässt winemaker keine Backups erstellen.
|
||
|
.TP
|
||
|
.I --nosource-fix
|
||
|
Lässt winemaker keine Quellcodedateien ändern (z.B. DOS zu Unix Konvertierung)
|
||
|
Das kann Meldungen bei schreibgeschützten Dateien verhindern.
|
||
|
.TP
|
||
|
.I --lower-all
|
||
|
Alle Dateien und Verzeichnisse werden in Kleinschreibung umbenannt.
|
||
|
.TP
|
||
|
.I --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
|
||
|
.I --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
|
||
|
.I "--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
|
||
|
.I "--nolower-include "
|
||
|
Wenn die Datei zu einer include Anweisung (oder einer Resource Referenz)
|
||
|
nicht auffindbar ist, wird keine Änderung vorgenommen.
|
||
|
.TP
|
||
|
.IR "--guiexe " "| " "--windows"
|
||
|
Gibt den Typ(grafisch) der zu erstellenden Anwendung an.
|
||
|
Diese Option ist Standard.
|
||
|
.TP
|
||
|
.IR "--cuiexe " "| " "--console"
|
||
|
Gibt den Typ(Konsole) der zu erstellenden Anwendung an.
|
||
|
.TP
|
||
|
.I --dll
|
||
|
winemaker wird im Zweifelsfall annehmen, dass es sich um eine Bibliothek handelt.
|
||
|
.TP
|
||
|
.I --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
|
||
|
.I --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
|
||
|
.I -Dmacro[=defn]
|
||
|
Verwendet diese Makrodefinition global.
|
||
|
.TP
|
||
|
.I -Idir
|
||
|
Verwendet den Pfad als globalen Include-Pfad.
|
||
|
.TP
|
||
|
.I -Pdir
|
||
|
Verwendet den Pfad als globalen DLL-Pfad.
|
||
|
.TP
|
||
|
.I -idll
|
||
|
Fügt eine Winelib Bibliothek zu der globalen Liste der zu importierenden
|
||
|
Winelib Bibliotheken hinzu.
|
||
|
.TP
|
||
|
.I -Ldir
|
||
|
Verwendet den Pfad als globalen Bibliotheks-Pfad.
|
||
|
.TP
|
||
|
.I -llibrary
|
||
|
Fügt eine Bibliothek zu der globalen Liste der zu importierenden
|
||
|
Bibliotheken hinzu.
|
||
|
.TP
|
||
|
.I --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
|
||
|
.I --nomsvcrt
|
||
|
Dies hindert winegcc gegen msvcrt zu kompilieren.
|
||
|
Nutzen Sie diese Option bei cpp-Dateien mit einem <string> include.
|
||
|
.TP
|
||
|
.I --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
|
||
|
.I --single-target name
|
||
|
Es gibt nur ein Target namens "name".
|
||
|
.TP
|
||
|
.I --generated-files
|
||
|
Eine Makefile soll erzeugt werden. Diese Option ist Standard.
|
||
|
.TP
|
||
|
.I --nogenerated-files
|
||
|
Keine Makefile erstellen.
|
||
|
.TP
|
||
|
.I --wine64
|
||
|
Eine Makefile für 64-Bit erstellen.
|
||
|
|
||
|
.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
|