FreeBSD Manual Pages
WINEMAKER(1) Wine Developers Manual WINEMAKER(1) NAME winemaker - generate a build infrastructure for compiling Windows pro- grams on Unix SYNOPSIS 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 ] [ -lli- brary ] [ --nodlls ] [ --nomsvcrt ] [ --interactive ] [ --single-target name ] [ --generated-files ] [ --nogenerated-files ] [ --wine32 ] work_directory | project_file | workspace_file DESCRIPTION winemaker is a perl script designed to help you bootstrap the process of converting your Windows sources to Winelib programs. In order to do this winemaker can perform the following operations: - rename your source files and directories to lowercase in the event they got all uppercased during the transfer. - perform DOS to Unix (CRLF to LF) conversions. - scan the include statements and resource file references to replace the backslashes with forward slashes. - during the above step winemaker will also perform a case insensitive search of the referenced file in the include path and rewrite the in- clude statement with the right case if necessary. - winemaker will also check other more exotic issues like #pragma pack usage, use of afxres.h in non MFC projects, and more. Whenever it en- counters something out of the ordinary, it will warn you about it. - winemaker can also scan a complete directory tree at once, guess what are the executables and libraries you are trying to build, match them with source files, and generate the corresponding Makefile. - finally winemaker will generate a global Makefile for normal use. - winemaker knows about MFC-based project and will generate customized files. - winemaker can read existing project files. It supports dsp, dsw, vcproj and sln files. OPTIONS --nobanner Disable the printing of the banner. --backup Perform a backup of all the modified source files. This is the default. --nobackup Do not backup modified source files. --nosource-fix Do no try to fix the source files (e.g. DOS to Unix conversion). This prevents complaints if the files are readonly. --lower-all Rename all files and directories to lowercase. --lower-uppercase Only rename files and directories that have an all uppercase name. So HELLO.C would be renamed but not World.c. --lower-none Do not rename files and directories to lower case. Note that this does not prevent the renaming of a file if its extension cannot be handled as is, e.g. ".Cxx". This is the default. --lower-include When the file corresponding to an include statement (or other form of file reference for resource files) cannot be found, con- vert that filename to lowercase. This is the default. --nolower-include Do not modify the include statement if the referenced file can- not be found. --guiexe | --windows Assume a graphical application when an executable target or a target of unknown type is found. This is the default. --cuiexe | --console Assume a console application when an executable target or a tar- get of unknown type is found. --dll Assume a dll when a target of unknown type is found, i.e. when winemaker is unable to determine whether it is an executable, a dll, or a static library, --lib Assume a static library when a target of unknown type is found, i.e. when winemaker is unable to determine whether it is an exe- cutable, a dll, or a static library, --mfc Specify that the targets are MFC based. In such a case winemaker adapts the include and library paths accordingly, and links the target with the MFC library. --nomfc Specify that targets are not MFC-based. This option disables use of MFC libraries even if winemaker encounters files stdafx.cpp or stdafx.h that would cause it to enable MFC automatically if neither --nomfc nor --mfc was specified. -Dmacro[=defn] Add the specified macro definition to the global list of macro definitions. -Idir Append the specified directory to the global include path. -Pdir Append the specified directory to the global dll path. -idll Add the Winelib library to the global list of Winelib libraries to import. -Ldir Append the specified directory to the global library path. -llibrary Add the specified library to the global list of libraries to link with. --nodlls Do not use the standard set of Winelib libraries for imports. That is, any DLL your code uses must be explicitly passed with -i options. The standard set of libraries is: odbc32.dll, odbccp32.dll, ole32.dll, oleaut32.dll and winspool.drv. --nomsvcrt Set some options to tell winegcc not to compile against msvcrt. Use this option if you have cpp-files that include <string>. --interactive Use interactive mode. In this mode winemaker will ask you to confirm the list of targets for each directory, and then to pro- vide directory and target specific options. --single-target name Specify that there is only one target, called name. --generated-files Generate the Makefile. This is the default. --nogenerated-files Do not generate the Makefile. --wine32 Generate a 32-bit target. This is useful on wow64 systems. Without that option the default architecture is used. EXAMPLES Here is a typical winemaker use: $ winemaker --lower-uppercase -DSTRICT . The above tells winemaker to scan the current directory and its subdi- rectories for source files. Whenever if finds a file or directory which name is all uppercase, it should rename it to lowercase. It should then fix all these source files for compilation with Winelib and generate Makefiles. The -DSTRICT specifies that the STRICT macro must be set when compiling these sources. Finally a Makefile will be created. The next step would be: $ make If at this point you get compilation errors (which is quite likely for a reasonably sized project) then you should consult the Winelib User Guide to find tips on how to resolve them. For an MFC-based project you would have to run the following commands instead: $ winemaker --lower-uppercase --mfc . $ make For an existing project-file you would have to run the following com- mands: $ winemaker myproject.dsp $ make TODO / BUGS In some cases you will have to edit the Makefile or source files manu- ally. Assuming that the windows executable/library is available, we could use winedump to determine what kind of executable it is (graphical or con- sole), which libraries it is linked with, and which functions it ex- ports (for libraries). We could then restore all these settings for the corresponding Winelib target. Furthermore winemaker is not very good at finding the library contain- ing the executable: it must either be in the current directory or in the LD_LIBRARY_PATH. winemaker does not support message files and the message compiler yet. Bugs can be reported on the Wine bug tracker <https://bugs.winehq.org>. AUTHORS Franois Gouget for CodeWeavers Dimitrie O. Paun Andr Hentschel AVAILABILITY winemaker is part of the Wine distribution, which is available through WineHQ, the Wine development headquarters <https://www.winehq.org/>. SEE ALSO wine(1), Wine documentation and support <https://www.winehq.org/help>. Wine 10.1 Jan 2012 WINEMAKER(1)
NAME | SYNOPSIS | DESCRIPTION | OPTIONS | EXAMPLES | TODO / BUGS | AUTHORS | AVAILABILITY | SEE ALSO
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=winemaker&sektion=1&manpath=FreeBSD+Ports+14.3.quarterly>