diff --git a/.gitignore b/.gitignore index 3af2027e300..d2ba32bbcfc 100644 --- a/.gitignore +++ b/.gitignore @@ -277,6 +277,7 @@ tools/winegcc/winecpp tools/winegcc/wineg++ tools/winegcc/winegcc tools/winegcc/winegcc.man +tools/winemaker.de.man tools/winemaker.man tools/wineprefixcreate tools/wineprefixcreate.man diff --git a/tools/Makefile.in b/tools/Makefile.in index 5e005e0661f..526ac1b47d9 100644 --- a/tools/Makefile.in +++ b/tools/Makefile.in @@ -20,6 +20,7 @@ PROGRAMS = \ MANPAGES = \ winemaker.man \ + winemaker.de.man \ wineprefixcreate.man C_SRCS = \ @@ -36,7 +37,8 @@ INSTALLDIRS = \ $(DESTDIR)$(bindir) \ $(DESTDIR)$(datadir)/applications \ $(DESTDIR)$(datadir)/wine \ - $(DESTDIR)$(mandir)/man$(prog_manext) + $(DESTDIR)$(mandir)/man$(prog_manext) \ + $(DESTDIR)$(mandir)/de.UTF-8/man$(prog_manext) UPDATE_DESKTOP_DATABASE = update-desktop-database @@ -82,9 +84,10 @@ install install-lib:: wine.inf wineprefixcreate $(INSTALLDIRS) install install-dev:: $(DESTDIR)$(bindir) $(DESTDIR)$(mandir)/man$(prog_manext) $(INSTALL_SCRIPT) $(SRCDIR)/winemaker $(DESTDIR)$(bindir)/winemaker $(INSTALL_DATA) winemaker.man $(DESTDIR)$(mandir)/man$(prog_manext)/winemaker.$(prog_manext) + $(INSTALL_DATA) winemaker.de.man $(DESTDIR)$(mandir)/de.UTF-8/man$(prog_manext)/winemaker.$(prog_manext) uninstall:: - $(RM) $(DESTDIR)$(bindir)/winemaker $(DESTDIR)$(bindir)/wineprefixcreate $(DESTDIR)$(mandir)/man$(prog_manext)/winemaker.$(prog_manext) $(DESTDIR)$(mandir)/man$(prog_manext)/wineprefixcreate.$(prog_manext) $(DESTDIR)$(datadir)/wine/wine.inf $(DESTDIR)$(datadir)/applications/wine.desktop + $(RM) $(DESTDIR)$(bindir)/winemaker $(DESTDIR)$(bindir)/wineprefixcreate $(DESTDIR)$(mandir)/man$(prog_manext)/winemaker.$(prog_manext) $(DESTDIR)$(mandir)/de.UTF-8/man$(prog_manext)/winemaker.$(prog_manext) $(DESTDIR)$(mandir)/man$(prog_manext)/wineprefixcreate.$(prog_manext) $(DESTDIR)$(datadir)/wine/wine.inf $(DESTDIR)$(datadir)/applications/wine.desktop -$(UPDATE_DESKTOP_DATABASE) depend: makedep$(EXEEXT) diff --git a/tools/winemaker.de.man.in b/tools/winemaker.de.man.in new file mode 100644 index 00000000000..12a58d049f2 --- /dev/null +++ b/tools/winemaker.de.man.in @@ -0,0 +1,245 @@ +.\" -*- 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 " +[ +.IR "--nobanner " "] [ " "--backup " "| " "--nobackup " "] [ "--nosource-fix " +] +.br + [ +.IR "--lower-none " "| " "--lower-all " "| " "--lower-uppercase " +] +.br + [ +.IR "--lower-include " "| " "--nolower-include " ] [ " "--mfc " "| " "--nomfc " +] +.br + [ +.IR "--guiexe " "| " "--windows " "| " "--cuiexe " "| " "--console " "| " "--dll " +] +.br + [ +.IR "-Dmacro[=defn] " "] [ " "-Idir " "] [ " "-Pdir " "] [ " "-idll" "] [ " "-Ldir " "] [ " "-llibrary " +] +.br + [ +.IR "--nodlls " "] [ " "--nomsvcrt " "] [ " "--interactive " "] [ " "--single-target name " +] +.br + [ +.IR "--generated-files " "] [ " "--nogenerated-files " "] +] +.br + [ +.IR "--wine64 " "] +.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 +.I --nobanner +Schaltet das anzeigen des Banners aus. +.TP +.I --backup +Lässt winemaker Backups von allen Quellcodedateien erstellen an denen +Änderungen vorgenommen werden. Diese Option ist Standard. +.TP +.I --nobackup +Lässt winemaker keine Backups erstellen. +.TP +.I --nosource-fix +Lässt winemaker keine Quellcodedateien ändern (z.B. DOS zu Unix Konvertierung) +Das kann Meldungen bei schreibgeschützten Dateien verhindern. +.TP +.I --lower-all +Alle Dateien und Verzeichnisse werden in Kleinschreibung umbenannt. +.TP +.I --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 +.I --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 +.I "--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 +.I "--nolower-include " +Wenn die Datei zu einer include Anweisung (oder einer Resource Referenz) +nicht auffindbar ist, wird keine Änderung vorgenommen. +.TP +.IR "--guiexe " "| " "--windows" +Gibt den Typ(grafisch) der zu erstellenden Anwendung an. +Diese Option ist Standard. +.TP +.IR "--cuiexe " "| " "--console" +Gibt den Typ(Konsole) der zu erstellenden Anwendung an. +.TP +.I --dll +winemaker wird im Zweifelsfall annehmen, dass es sich um eine Bibliothek handelt. +.TP +.I --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 +.I --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 +.I -Dmacro[=defn] +Verwendet diese Makrodefinition global. +.TP +.I -Idir +Verwendet den Pfad als globalen Include-Pfad. +.TP +.I -Pdir +Verwendet den Pfad als globalen DLL-Pfad. +.TP +.I -idll +Fügt eine Winelib Bibliothek zu der globalen Liste der zu importierenden +Winelib Bibliotheken hinzu. +.TP +.I -Ldir +Verwendet den Pfad als globalen Bibliotheks-Pfad. +.TP +.I -llibrary +Fügt eine Bibliothek zu der globalen Liste der zu importierenden +Bibliotheken hinzu. +.TP +.I --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 +.I --nomsvcrt +Dies hindert winegcc gegen msvcrt zu kompilieren. +Nutzen Sie diese Option bei cpp-Dateien mit einem include. +.TP +.I --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 +.I --single-target name +Es gibt nur ein Target namens "name". +.TP +.I --generated-files +Eine Makefile soll erzeugt werden. Diese Option ist Standard. +.TP +.I --nogenerated-files +Keine Makefile erstellen. +.TP +.I --wine64 +Eine Makefile für 64-Bit erstellen. + +.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