WINEMAKER(1) | Wine Entwicklerhandbuch | WINEMAKER(1) |
winemaker - Erzeugt eine Build-Infrastruktur, um Windows Programme unter Unix zu kompilieren
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
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.
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
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.
François Gouget für CodeWeavers
Dimitrie O. Paun
André Hentschel
winemaker ist Teil der Wine-Distribution, verfügbar im WineHQ, dem Hauptquartier der Wine-Entwicklung.
Januar 2012 | Wine 5.0.3 |