WINEMAKER(1)

NAME
winemaker - Erzeugt eine Buildumgebung 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.

Um diese zu tun kann winemaker folgendes vornehmen:

- Quellcodedateien und Verzeichnisse in Kleinbuchstaben umbennen falls alle Buchstaben groß sind.

- DOS zu Unix konvertierung (CRLF to LF).

- include Anweisungen und Resource Referenzen durchsuchen um Backslashes durch Slashes zu ersetzen.

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

- winemaker wird ebenso andere exotische Probleme wie die Benutzung von Sollte irgendwas ungwöhnliches vorkommen wird winemaker Sie warnen.

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

- letzendlich wird winemaker eine Makefile für den normalen gebrauch erstellen.

- MFC-basierte Projekte werden erkannt und es werden angepasste Dateien erstellt.

- Existierende Projektdateien können von winemaker gelesen werden. Unterstützt werden dsp, dsw, vcproj und sln Dateien.

ARGUMENTE

--nobanner
    Schaltet das anzeigen des Banners aus.

--backup
    Lässt winemaker Backups von allen Quellcodedateien erstellen an denen Änderungen vorgenommen werden. Diese Option ist Standard.

--nobackup
    Lässt winemaker keine Backups erstellen.

--nosource-fix
    Lässt winemaker keine Quellcodedateien ändern (z.B. DOS zu Unix Konvertierung) Das kann Meldungen bei schreibgeschützten Dateien verhindern.

--lower-all
    Alle Dateien und Verzeichnisse werden in Kleinschreibung umbenannt.

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

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

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

--nolower-include
    Wenn die Datei zu einer include Anweisung (oder einer Resource Referenz) nicht auffindbar ist, wird keine Änderung vorgenommen.

--guiexe | --windows
    Gibt den Typ(grafisch) der zu erstellenden Anwendung an. Diese Option ist Standard.

--cuiexe | --console
    Gibt den Typ(Konsole) der zu erstellenden Anwendung an.

--dll
    winemaker wird im Zweifelsfall annehmen, dass es sich um eine DLL handelt.

--lib
    winemaker wird im Zweifelsfall annehmen, dass es sich um eine statische Bibliothek handelt.

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

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

-Dmacro[=defn]
    Verwendet diese Makrodefinition global.

-Idir
    Verwendet den Pfad als globalen Include-Pfad.

-Pdir
    Verwendet den Pfad als globalen DLL-Pfad.

-idll
    Fügt eine Winelib Bibliothek zu der globalen Liste der zu importierenden Winelib Bibliotheken hinzu.

-Ldir
    Verwendet den Pfad als globalen Bibliotheks-Pfad.

-llibrary
    Fügt eine Bibliothek zu der globalen Liste der zu importierenden Bibliotheken hinzu.

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

--nomsvcrt
    Dies hindert winegcc gegen msvcrt zu kompilieren. Nutzen Sie diese Option bei cpp-Dateien mit einem <string> include.

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

--single-target name
    Es gibt nur ein Target namens "name".

--generated-files
    Eine Makefile soll erzeugt werden. Diese Option ist Standard.

--nogenerated-files
    Keine Makefile erstellen.

--wine32
    Ein 32-Bit Target erstellen. Das ist nützlich unter wow64 Systemen. Ohne dieser Option wird die Standard Architektur genutzt.

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 in Großbuchstaben geschrieben ist wird in Kleinbuchstaben umbenannt. Danach werden alle Quellcodedateien an die kompilierung mit Winelib angepasst und Makefiles erzeugt. kompiliert. Letztendlich wird winemaker die globale Makefile erzeugen.

Der nächste Schritt wäre dann:

$ make

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.

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

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

Mit einer existierenden Projektdatei folgenden Befehl ausführen:

$ winemaker meinprojekt.dsp
$ make

TODO / FEHLER

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

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.

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

Winemaker unterstützt noch keine Messagedateien und deren Compiler.

SIEHE AUCH

Den Winelib User Guide:

http://www.winehq.org/docs/winelib-guide/index

wine(1)

AUTOREN
François Gouget for CodeWeavers

Dimitrie O. Paun

André Hentschel