123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264 |
- .\" -*- 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 https://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 https://www.winehq.org/
- .B Hauptquartier der Wine-Entwicklung
- .UE .
- .SH SIEHE AUCH
- .BR wine (1),
- .br
- .UR https://www.winehq.org/help
- .B Wine-Dokumentation und Support
- .UE .
|