WineHQ

Man Pages/winemaker.de

Revision as of 10:59, 25 December 2021 by Jkfloris (talk | contribs) (Created page with "__NOTOC__ == NAME == winemaker - Erzeugt eine Build-Infrastruktur, um Windows Programme unter Unix zu kompilieren == ÜBERSICHT == '''winemaker''' [ '''--nobanner''' ] [...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)


NAME

winemaker - Erzeugt eine Build-Infrastruktur, um Windows Programme unter Unix zu kompilieren


ÜBERSICHT

winemaker [ --nobanner ] [ --backup | --nobackup ] [ --nosource-fix ]

[ --lower-none | --lower-all | --lower-uppercase ]

[ --lower-include | --nolower-include ] [ --mfc | --nomfc ]

[ --guiexe | --windows | --cuiexe | --console | --dll | --lib ]

[ -Dmacro[=defn] ] [ -Idir ] [ -Pdir ] [ -idll ] [ -Ldir ] [ -llibrary ]

[ --nodlls ] [ --nomsvcrt ] [ --interactive ] [ --single-target name ]

[ --generated-files ] [ --nogenerated-files ]

[ --wine32 ]

Arbeitsverzeichnis | Projektdatei | Workspacedatei


BESCHREIBUNG

winemaker ist ein Perl-Script um Ihnen das Konvertieren von Windows-Quellcode zu einem Winelib-Programm zu erleichtern.

Zu diesem Zweck beherrscht winemaker folgende Operationen:

  • Quellcodedateien und Verzeichnisse in Kleinbuchstaben umbenennen, falls diese beim Übertragen komplett in Großbuchstaben angekommen sind.
  • Konvertierung von DOS- zu Unix-Zeilenenden (CRLF nach LF).
  • Include-Anweisungen und Resourcenreferenzen durchsuchen, um Backslashes durch Slashes zu ersetzen.
  • Während des obigen Schrittes wird winemaker ebenfalls nach der angegebenen Datei im Includepfad suchen und die entsprechende Zeile, falls nötig, mit der korrekten Groß-/Kleinschreibweise austauschen.
  • winemaker wird ebenso andere, exotischere Probleme wie die Benutzung von #pragma pack, afxres.h in nicht-MFC-Projekten und mehr untersuchen. Sollte etwas ungwöhnliches vorkommen, wird winemaker Sie warnen.
  • winemaker 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 Makefile generieren.
  • letztendlich wird winemaker eine globale Makefile für den normalen Gebrauch erzeugen.
  • winemaker erkennt MFC-basierte Projekte und erstellt angepasste Dateien.
  • Existierende Projektdateien können von winemaker gelesen werden. Unterstützt sind dsp, dsw, vcproj und sln-Dateien.


ARGUMENTE

--nobanner

Unterdrückt die Anzeige des Banners.

--backup

Lässt winemaker Backups von allen Quellcodedateien anlegen, an denen Änderungen vorgenommen werden. Diese Option ist Standard.

--nobackup

Lässt winemaker keine Backups anlegen.

--nosource-fix

Weist winemaker an, keine Quellcodedateien zu ändern (z.B. DOS zu Unix Konvertierung). Verhindert Fehlermeldungen bei schreibgeschützten Dateien.

--lower-all

Alle Dateien und Verzeichnisse werden in Kleinschreibung umbenannt.

--lower-uppercase

Nur Dateien und Verzeichnisse, die komplett groß geschrieben sind, werden in Kleinschreibung umbenannt. HALLO.C würde beispielsweise umbenannt werden, Welt.c jedoch nicht.

--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.

--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.

--nolower-include

Es werden keine Änderungen an Include-Anweisungen oder Referenzen vorgenommen, wenn die entsprechende Datei nicht auffindbar ist.

--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.

--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.

--dll

winemaker wird im Zweifelsfall annehmen, dass es sich bei einem unbekannten Target um eine DLL handelt.

--lib

winemaker wird im Zweifelsfall annehmen, dass es sich bei einem unbekannten Target um eine statische Bibliothek handelt.

--mfc

Teilt winemaker mit, dass es sich um MFC-basierte Ziele handelt. In solch einem Fall passt winemaker Pfade für Header und Bibliotheken entsprechend an und verlinkt die Ziele mit der MFC-Bibliothek.

--nomfc

Teilt winemaker mit, dass es sich nicht um MFC-basierte Ziele handelt. Diese Option verhindert die Benutzung von MFC-Bibliotheken, selbst wenn winemaker Dateien wie stdafx.cpp oder stdafx.h begegnet, was normalerweise automatisch MFC aktivieren würde, wenn weder --nomfc noch --mfc angegeben wurden.

-Dmacro[=defn]

Fügt diese Makrodefinition zur globalen Makroliste hinzu.

-Idir

Hängt das angegebene Verzeichnis dem globalen Include-Pfad an.

-Pdir

Hängt das angegebene Verzeichnis dem globalen DLL-Pfad an.

-idll

Fügt die angegebene Winelib-Bibliothek zur globalen Liste der zu importierenden Winelib-Bibliotheken hinzu.

-Ldir

Hängt das angegebene Verzeichnis dem globalen Bibliotheks-Pfad an.

-llibrary

Fügt die angegebene Bibliothek zur globalen Liste der zu verlinkenden Bibliotheken hinzu.

--nodlls

Diese Option teilt winemaker mit, nicht den Standardsatz an Winelib-Bibliotheken zu importieren. Dies bedeutet, dass jede DLL, die Ihr Quellcode nutzt, explizit mit -i an winemaker übergeben werden muss. Die Standard-Bibliotheken sind: odbc32.dll, odbccp32.dll, ole32.dll, oleaut32.dll und winspool.drv.

--nomsvcrt

Setzt einige Optionen, die winegcc daran hindern, gegen msvcrt zu kompilieren. Nutzen Sie diese Option bei cpp-Dateien, die <string> einbinden.

--interactive

Versetzt winemaker in einen interaktiven Modus. In diesem Modus wird winemaker Sie für die Targetliste jedes Verzeichnisses nach Bestätigung und jeweils target- und verzeichnisspezifischen Optionen fragen.

--single-target name

Gibt an, dass es nur ein einziges Target gibt, namens name.

--generated-files

Weist winemaker an, eine Makefile zu erzeugen. Diese Option ist Standard.

--nogenerated-files

Weist winemaker an, keine Makefile zu erzeugen.

--wine32

Weist winemaker an, ein 32-Bit Target zu erstellen. Dies ist nützlich bei wow64-Systemen. Ohne diese Option wird die Standardarchitektur benutzt.


BEISPIELE

Ein typischer winemaker Aufruf:

$ winemaker --lower-uppercase -DSTRICT .

Damit scannt winemaker 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 Makefiles erzeugt. -DSTRICT gibt an, dass das STRICT-Makro gesetzt sein muss, um diesen Quellcode zu kompilieren. Letztendlich wird winemaker die globale Makefile erzeugen.

Der nächste Schritt wäre dann:

$ make

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.

Bei einem MFC-basierten Projekt sollten Sie stattdessen folgenden Befehl ausführen:

$ winemaker --lower-uppercase --mfc .
$ make

Mit einer existierenden Projektdatei lautet der passende Befehl:

$ winemaker meinprojekt.dsp
$ make


TODO / FEHLER

In einigen Fällen werden Sie die Makefile oder den Quellcode von Hand nachbearbeiten müssen.

Angenommen, die fertigen Windows-Bibliotheken oder Binärdateien sind vorhanden, könnte mit winedump 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.

Weiterhin ist winemaker nicht sehr gut darin, die Bibliothek zu finden, die die Anwendung enthält: Sie muss entweder im aktuellen Verzeichnis oder im LD_LIBRARY_PATHliegen.

winemaker unterstützt noch keine Messagedateien und deren Compiler.

Fehler können im Wine Bugtracker

gemeldet werden.


AUTOREN

François Gouget für CodeWeavers

Dimitrie O. Paun

André Hentschel


VERFÜGBARKEIT

winemaker ist Teil der Wine-Distribution, verfügbar im WineHQ, dem Hauptquartier der Wine-Entwicklung


SIEHE AUCH

wine(1),

Wine-Dokumentation und Support

This page was last edited on 25 December 2021, at 10:59.