winemaker.de.UTF-8.man.in 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264
  1. .\" -*- nroff -*-
  2. .TH WINEMAKER 1 "Januar 2012" "@PACKAGE_STRING@" "Wine Entwicklerhandbuch"
  3. .SH NAME
  4. winemaker \- Erzeugt eine Build-Infrastruktur, um Windows Programme unter Unix zu kompilieren
  5. .SH ÜBERSICHT
  6. .B "winemaker "
  7. [
  8. .BR "--nobanner " "] [ " "--backup " "| " "--nobackup " "] [ "--nosource-fix "
  9. ]
  10. .br
  11. [
  12. .BR "--lower-none " "| " "--lower-all " "| " "--lower-uppercase "
  13. ]
  14. .br
  15. [
  16. .BR "--lower-include " "| " "--nolower-include " ]\ [ " --mfc " "| " "--nomfc "
  17. ]
  18. .br
  19. [
  20. .BR "--guiexe " "| " "--windows " "| " "--cuiexe " "| " "--console " "| " "--dll " "| " "--lib "
  21. ]
  22. .br
  23. [
  24. .BI "-D" macro "\fR[=\fIdefn\fR] ] [" "\ " "-I" "dir\fR ]\ [ " "-P" "dir\fR ] [ " "-i" "dll\fR ] [ " "-L" "dir\fR ] [ " "-l" "library "
  25. ]
  26. .br
  27. [
  28. .BR "--nodlls " "] [ " "--nomsvcrt " "] [ " "--interactive " "] [ " "--single-target \fIname\fR "
  29. ]
  30. .br
  31. [
  32. .BR "--generated-files " "] [ " "--nogenerated-files " "]
  33. .br
  34. [
  35. .BR "--wine32 " "]
  36. .br
  37. .IR " Arbeitsverzeichnis" " | " "Projektdatei" " | " "Workspacedatei"
  38. .SH BESCHREIBUNG
  39. .PP
  40. .B winemaker
  41. ist ein Perl-Script um Ihnen das Konvertieren von Windows-Quellcode
  42. zu einem Winelib-Programm zu erleichtern.
  43. .PP
  44. Zu diesem Zweck beherrscht \fBwinemaker\fR folgende Operationen:
  45. .PP
  46. - Quellcodedateien und Verzeichnisse in Kleinbuchstaben umbenennen, falls
  47. diese beim Übertragen komplett in Großbuchstaben angekommen sind.
  48. .PP
  49. - Konvertierung von DOS- zu Unix-Zeilenenden (CRLF nach LF).
  50. .PP
  51. - Include-Anweisungen und Resourcenreferenzen durchsuchen, um Backslashes
  52. durch Slashes zu ersetzen.
  53. .PP
  54. - Während des obigen Schrittes wird \fBwinemaker\fR ebenfalls nach der angegebenen Datei
  55. im Includepfad suchen und die entsprechende Zeile, falls nötig, mit der korrekten
  56. Groß-/Kleinschreibweise austauschen.
  57. .PP
  58. - \fBwinemaker\fR wird ebenso andere, exotischere Probleme wie die Benutzung von
  59. \fI#pragma pack\fR, \fIafxres.h\fR in nicht-MFC-Projekten und mehr untersuchen.
  60. Sollte etwas ungwöhnliches vorkommen, wird \fBwinemaker\fR Sie warnen.
  61. .PP
  62. - \fBwinemaker\fR kann eine ganze Verzeichnisstruktur auf einmal durchsuchen,
  63. schätzen welche ausführbaren Dateien und Bibliotheken Sie zu erstellen
  64. gedenken, diese den passenden Quelldateien zuordnen und entsprechende \fIMakefile\fR
  65. generieren.
  66. .PP
  67. - letztendlich wird \fBwinemaker\fR eine globale \fIMakefile\fR für den normalen Gebrauch erzeugen.
  68. .PP
  69. - \fBwinemaker\fR erkennt MFC-basierte Projekte und erstellt angepasste Dateien.
  70. .PP
  71. - Existierende Projektdateien können von \fBwinemaker\fR gelesen werden.
  72. Unterstützt sind dsp, dsw, vcproj und sln-Dateien.
  73. .PP
  74. .SH ARGUMENTE
  75. .TP
  76. .B --nobanner
  77. Unterdrückt die Anzeige des Banners.
  78. .TP
  79. .B --backup
  80. Lässt \fBwinemaker\fR Backups von allen Quellcodedateien anlegen, an denen
  81. Änderungen vorgenommen werden. Diese Option ist Standard.
  82. .TP
  83. .B --nobackup
  84. Lässt \fBwinemaker\fR keine Backups anlegen.
  85. .TP
  86. .B --nosource-fix
  87. Weist \fBwinemaker\fR an, keine Quellcodedateien zu ändern (z.B. DOS zu Unix
  88. Konvertierung). Verhindert Fehlermeldungen bei schreibgeschützten Dateien.
  89. .TP
  90. .B --lower-all
  91. Alle Dateien und Verzeichnisse werden in Kleinschreibung umbenannt.
  92. .TP
  93. .B --lower-uppercase
  94. Nur Dateien und Verzeichnisse, die komplett groß geschrieben sind, werden
  95. in Kleinschreibung umbenannt.
  96. \fIHALLO.C\fR würde beispielsweise umbenannt werden, \fIWelt.c\fR jedoch nicht.
  97. .TP
  98. .B --lower-none
  99. Keine Dateien und Verzeichnisse werden in Kleinschreibung umbenannt.
  100. Beachten Sie, dass dies nicht die Umbenennung von Dateien verhindert, deren
  101. Erweiterungen nicht unverändert verarbeitet werden können, z.B. ".Cxx".
  102. Diese Option ist Standard.
  103. .TP
  104. .B "--lower-include "
  105. Wenn die Datei zu einer Include-Anweisung (oder einer anderen Form von
  106. Dateireferenz für Resourcen) nicht auffindbar ist, wird der Dateiname in
  107. Kleinschreibung umbenannt. Diese Option ist Standard.
  108. .TP
  109. .B "--nolower-include "
  110. Es werden keine Änderungen an Include-Anweisungen oder Referenzen vorgenommen,
  111. wenn die entsprechende Datei nicht auffindbar ist.
  112. .TP
  113. .BR "--guiexe " "| " "--windows"
  114. Legt fest, dass für jedes gefundene, ausführbare Target, oder Target unbekannten
  115. Typs angenommen wird, dass es sich um eine grafische Anwendung handelt.
  116. Diese Option ist Standard.
  117. .TP
  118. .BR "--cuiexe " "| " "--console"
  119. Legt fest, dass für jedes gefundene, ausführbare Target, oder Target unbekannten
  120. Typs angenommen wird, dass es sich um eine Konsolenanwendung handelt.
  121. .TP
  122. .B --dll
  123. \fBwinemaker\fR wird im Zweifelsfall annehmen, dass es sich bei einem unbekannten
  124. Target um eine DLL handelt.
  125. .TP
  126. .B --lib
  127. \fBwinemaker\fR wird im Zweifelsfall annehmen, dass es sich bei einem unbekannten
  128. Target um eine statische Bibliothek handelt.
  129. .TP
  130. .B --mfc
  131. Teilt \fBwinemaker\fR mit, dass es sich um MFC-basierte Ziele handelt. In solch einem
  132. Fall passt \fBwinemaker\fR Pfade für Header und Bibliotheken entsprechend an und
  133. verlinkt die Ziele mit der MFC-Bibliothek.
  134. .TP
  135. .B --nomfc
  136. Teilt \fBwinemaker\fR mit, dass es sich nicht um MFC-basierte Ziele handelt. Diese
  137. Option verhindert die Benutzung von MFC-Bibliotheken, selbst wenn \fBwinemaker\fR
  138. Dateien wie \fIstdafx.cpp\fR oder \fIstdafx.h\fR begegnet, was normalerweise automatisch
  139. MFC aktivieren würde, wenn weder \fB--nomfc\fR noch \fB--mfc\fR angegeben wurden.
  140. .TP
  141. .BI -D macro "\fR[=\fIdefn\fR]"
  142. Fügt diese Makrodefinition zur globalen Makroliste hinzu.
  143. .TP
  144. .BI -I dir
  145. Hängt das angegebene Verzeichnis dem globalen Include-Pfad an.
  146. .TP
  147. .BI -P dir
  148. Hängt das angegebene Verzeichnis dem globalen DLL-Pfad an.
  149. .TP
  150. .BI -i dll
  151. Fügt die angegebene Winelib-Bibliothek zur globalen Liste der zu importierenden
  152. Winelib-Bibliotheken hinzu.
  153. .TP
  154. .BI -L dir
  155. Hängt das angegebene Verzeichnis dem globalen Bibliotheks-Pfad an.
  156. .TP
  157. .BI -l library
  158. Fügt die angegebene Bibliothek zur globalen Liste der zu verlinkenden
  159. Bibliotheken hinzu.
  160. .TP
  161. .B --nodlls
  162. Diese Option teilt \fBwinemaker\fR mit, nicht den Standardsatz an Winelib-Bibliotheken
  163. zu importieren. Dies bedeutet, dass jede DLL, die Ihr Quellcode nutzt, explizit
  164. mit \fB-i\fR an \fBwinemaker\fR übergeben werden muss.
  165. Die Standard-Bibliotheken sind: \fIodbc32.dll\fR, \fIodbccp32.dll\fR, \fIole32.dll\fR,
  166. \fIoleaut32.dll\fR und \fIwinspool.drv\fR.
  167. .TP
  168. .B --nomsvcrt
  169. Setzt einige Optionen, die \fBwinegcc\fR daran hindern, gegen msvcrt zu kompilieren.
  170. Nutzen Sie diese Option bei cpp-Dateien, die \fI<string>\fR einbinden.
  171. .TP
  172. .B --interactive
  173. Versetzt \fBwinemaker\fR in einen interaktiven Modus. In diesem Modus wird \fBwinemaker\fR
  174. Sie für die Targetliste jedes Verzeichnisses nach Bestätigung und jeweils
  175. target- und verzeichnisspezifischen Optionen fragen.
  176. .TP
  177. .BI --single-target " name"
  178. Gibt an, dass es nur ein einziges Target gibt, namens \fIname\fR.
  179. .TP
  180. .B --generated-files
  181. Weist \fBwinemaker\fR an, eine \fIMakefile\fR zu erzeugen. Diese Option ist Standard.
  182. .TP
  183. .B --nogenerated-files
  184. Weist \fBwinemaker\fR an, keine \fIMakefile\fR zu erzeugen.
  185. .TP
  186. .B --wine32
  187. Weist \fBwinemaker\fR an, ein 32-Bit Target zu erstellen. Dies ist nützlich bei
  188. wow64-Systemen. Ohne diese Option wird die Standardarchitektur benutzt.
  189. .SH BEISPIELE
  190. .PP
  191. Ein typischer \fBwinemaker\fR Aufruf:
  192. .PP
  193. $ winemaker --lower-uppercase -DSTRICT .
  194. .PP
  195. Damit scannt \fBwinemaker\fR das aktuelle Verzeichnis und die Unterverzeichnisse nach
  196. Quellcodedateien. Jede Datei und jedes Verzeichnis, das ganz in Großbuchstaben
  197. geschrieben ist, wird in Kleinbuchstaben umbenannt. Danach werden alle Quellcodedateien
  198. an die Kompilierung mit Winelib angepasst und \fIMakefile\fRs erzeugt. \fB-DSTRICT\fR gibt
  199. an, dass das \fBSTRICT\fR-Makro gesetzt sein muss, um diesen Quellcode zu kompilieren.
  200. Letztendlich wird \fBwinemaker\fR die globale \fIMakefile\fR erzeugen.
  201. .PP
  202. Der nächste Schritt wäre dann:
  203. .PP
  204. $ make
  205. .PP
  206. Wenn Sie an diesem Punkt Compilerfehler erhalten (was recht wahrscheinlich ist,
  207. ab einer gewissen Projektgröße), sollten Sie den Winelib User Guide zu Rate
  208. ziehen, um Problemlösungen und Tipps zu finden.
  209. .PP
  210. Bei einem MFC-basierten Projekt sollten Sie stattdessen folgenden Befehl ausführen:
  211. .PP
  212. $ winemaker --lower-uppercase --mfc .
  213. .br
  214. $ make
  215. .PP
  216. Mit einer existierenden Projektdatei lautet der passende Befehl:
  217. .PP
  218. $ winemaker meinprojekt.dsp
  219. .br
  220. $ make
  221. .PP
  222. .SH TODO / FEHLER
  223. .PP
  224. In einigen Fällen werden Sie die \fIMakefile\fR oder den Quellcode von Hand
  225. nachbearbeiten müssen.
  226. .PP
  227. Angenommen, die fertigen Windows-Bibliotheken oder Binärdateien sind vorhanden,
  228. könnte mit \fBwinedump\fR ermittelt werden, um welche Art von ausführbarer Datei es
  229. sich handelt (grafisch oder Konsole), gegen welche Bibliotheken sie gelinkt
  230. sind und welche Funktionen exportiert werden (bei Bibliotheken). All diese
  231. Informationen könnten dann für das Winelib-Projekt verwendet werden.
  232. .PP
  233. Weiterhin ist \fBwinemaker\fR nicht sehr gut darin, die Bibliothek zu finden, die
  234. die Anwendung enthält: Sie muss entweder im aktuellen Verzeichnis oder im
  235. .IR LD_LIBRARY_PATH liegen.
  236. .PP
  237. \fBwinemaker\fR unterstützt noch keine Messagedateien und deren Compiler.
  238. .PP
  239. Fehler können im
  240. .UR https://bugs.winehq.org
  241. .B Wine Bugtracker
  242. .UE
  243. gemeldet werden.
  244. .SH AUTOREN
  245. François Gouget für CodeWeavers
  246. .br
  247. Dimitrie O. Paun
  248. .br
  249. André Hentschel
  250. .SH VERFÜGBARKEIT
  251. .B winemaker
  252. ist Teil der Wine-Distribution, verfügbar im WineHQ, dem
  253. .UR https://www.winehq.org/
  254. .B Hauptquartier der Wine-Entwicklung
  255. .UE .
  256. .SH SIEHE AUCH
  257. .BR wine (1),
  258. .br
  259. .UR https://www.winehq.org/help
  260. .B Wine-Dokumentation und Support
  261. .UE .