247 lines
7.8 KiB
Groff
247 lines
7.8 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 "
|
|
[
|
|
.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 "
|
|
]
|
|
.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 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
|