Winemaker's man page initial release.
This commit is contained in:
parent
d19ad3962e
commit
8fa0fb7505
|
@ -55,11 +55,13 @@ install::
|
|||
$(INSTALL) -d $(mandir)/man$(conf_manext)
|
||||
sed -e 's|$${prefix}|$(prefix)|g' < wine.man > wine.man.tmp && mv wine.man.tmp wine.man
|
||||
$(INSTALL_DATA) wine.man $(mandir)/man$(prog_manext)/wine.$(prog_manext)
|
||||
sed -e 's|$${prefix}|'$(prefix)'|g' < wine.conf.man > wine.conf.man.tmp && mv wine.conf.man.tmp wine.conf.man
|
||||
$(INSTALL_DATA) $(SRCDIR)/winemaker.man $(mandir)/man$(prog_manext)/winemaker.$(prog_manext)
|
||||
sed -e 's|$${prefix}|$(prefix)|g' < wine.conf.man > wine.conf.man.tmp && mv wine.conf.man.tmp wine.conf.man
|
||||
$(INSTALL_DATA) wine.conf.man $(mandir)/man$(conf_manext)/wine.conf.$(conf_manext)
|
||||
|
||||
uninstall::
|
||||
$(RM) $(mandir)/man$(prog_manext)/wine.$(prog_manext)
|
||||
$(RM) $(mandir)/man$(prog_manext)/winemaker.$(prog_manext)
|
||||
$(RM) $(mandir)/man$(conf_manext)/wine.conf.$(conf_manext)
|
||||
|
||||
clean::
|
||||
|
|
|
@ -0,0 +1,225 @@
|
|||
.\" -*- nroff -*-
|
||||
.TH WINEMAKER 1 "November 1, 2000" "Version 0.5.1" "Windows On Unix"
|
||||
.SH NAME
|
||||
winemaker \- generate a build infrastructure for compiling Windows programs on Unix
|
||||
.SH SYNOPSIS
|
||||
.B "winemaker "
|
||||
[
|
||||
.IR "--nobanner " "] [ " "--backup " "| " "--nobackup "
|
||||
]
|
||||
.br
|
||||
[
|
||||
.IR "--lower-none " "| " "--lower-all " "| " "--lower-uppercase "
|
||||
]
|
||||
.br
|
||||
[
|
||||
.IR "--guiexe " "| " "--windows " "| " "--cuiexe " "| " "--console " "| " "--dll "
|
||||
]
|
||||
.br
|
||||
[
|
||||
.IR "--wrap " "| " "--nowrap " "] [ " "--mfc " "| " "--nomfc "
|
||||
]
|
||||
.br
|
||||
[
|
||||
.IR "-Dmacro[=defn] " "] [ " "-Idir " "] [ " "-Ldir " "] [ " "-llibrary "
|
||||
]
|
||||
.br
|
||||
[
|
||||
.IR "--interactive " "] [ " "--single-target name "
|
||||
]
|
||||
|
||||
.SH DESCRIPTION
|
||||
.PP
|
||||
.B winemaker
|
||||
is a perl script designed to help you bootstrap the
|
||||
process of converting your Windows sources to WineLib programs.
|
||||
.PP
|
||||
In order to do this winemaker can perform the following operations:
|
||||
.PP
|
||||
- rename your source files and directories to lowercase in the event they
|
||||
got all uppercased during the transfer.
|
||||
.PP
|
||||
- perform Dos to Unix (CRLF to LF) conversions.
|
||||
.PP
|
||||
- scan the include statements and resource file references to replace the
|
||||
backslashes with forward slashes.
|
||||
.PP
|
||||
- during the above step winemaker will also perform a case insensitive search
|
||||
of the referenced file in the include path and rewrite the include statement
|
||||
with the right case if necessary.
|
||||
.PP
|
||||
- winemaker will also check other more exotic issues like '#pragma pack'
|
||||
usage, use of "afxres.h" in non MFC projects, and more. Whenever it
|
||||
encounters something out of the ordinary, winemaker will warn you about it.
|
||||
.PP
|
||||
- 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.in files.
|
||||
.PP
|
||||
- finally winemaker will generate a global Makefile.in file calling out to all
|
||||
the others, and a configure script customized for use with WineLib.
|
||||
.PP
|
||||
- winemaker knows about MFC-based project and will generate customized files.
|
||||
.PP
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
.I --nobanner
|
||||
Disables the printing of the banner.
|
||||
.TP
|
||||
.I --backup
|
||||
Directs winemaker to perform a backup of all the source files in which it
|
||||
makes changes. This is the default.
|
||||
.TP
|
||||
.I --nobackup
|
||||
Tells winemaker not to backup modified source files.
|
||||
.TP
|
||||
.I --lower-all
|
||||
Tells winemaker to rename all files and directories to lowercase.
|
||||
.TP
|
||||
.I --lower-uppercase
|
||||
Tells winemaker to only rename files and directories that have an all
|
||||
uppercase name.
|
||||
So "HELLO.C" would be renamed but not "World.c".
|
||||
.TP
|
||||
.I --lower-none
|
||||
Tells winemaker not to rename files and directories to lower case. Note
|
||||
that this does not prevent it from renaming a file if its extension cannot
|
||||
be handled as is, e.g. ".Cxx". This is the default.
|
||||
.TP
|
||||
.IR "--guiexe " "| " "--windows"
|
||||
Specifies that whenever winemaker finds an executable target, or a target of
|
||||
unknown type, it should assume that it is a graphical application.
|
||||
This is the default.
|
||||
.TP
|
||||
.IR "--cuiexe " "| " "--console"
|
||||
Specifies that whenever winemaker finds an executable target, or a target of
|
||||
unknown type, it should assume that it is a console application.
|
||||
.TP
|
||||
.I --dll
|
||||
This option tells winemaker that whenever it finds a target of unknown type,
|
||||
i.e. for which it does not know whether it is an executable or a library,
|
||||
it should assume it is a library.
|
||||
.TP
|
||||
.I --wrap
|
||||
Specifies that executable targets should be built as libraries and a small
|
||||
executable wrapper generated for them. This technique is sometimes required
|
||||
to solve initialization problems occuring on the application startup.
|
||||
.TP
|
||||
.I --nowrap
|
||||
Specifies that no wrapper should be generated for executable targets. This is
|
||||
the default.
|
||||
.TP
|
||||
.I --mfc
|
||||
Specifies that the targets are MFC based. In such a case winemaker generates a
|
||||
configure script with MFC specific options, modifies the include and
|
||||
library paths accordingly, links the target with the MFC library and
|
||||
generates wrappers for these targets that are executables.
|
||||
.TP
|
||||
.I --nomfc
|
||||
Specifies that targets are not MFC-based. This is the default.
|
||||
.TP
|
||||
.I -Dmacro[=defn]
|
||||
Adds the specified macro definition to the global list of macro definitions.
|
||||
.TP
|
||||
.I -Idir
|
||||
Appends the specified directory to the global include path.
|
||||
.TP
|
||||
.I -Ldir
|
||||
Appends the specified directory to the global library path.
|
||||
.TP
|
||||
.I -llibrary
|
||||
Adds the specified library to the global list of libraries to link with.
|
||||
.TP
|
||||
.I --interactive
|
||||
Puts winemaker in interactive mode. In this mode winemaker will ask you to
|
||||
confirm each directory's list of targets, and then to provide directory and
|
||||
target specific options.
|
||||
.TP
|
||||
.I --single-target name
|
||||
Specifies that there is only one target, and that it is called "name".
|
||||
|
||||
.SH EXAMPLES
|
||||
.PP
|
||||
Here is a typical winemaker use:
|
||||
.PP
|
||||
$ winemaker --lower-uppercase -DSTRICT
|
||||
.PP
|
||||
The above tells winemaker to scan the current directory and its
|
||||
subdirectories 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 winemaker will create a global Makefile.in and
|
||||
configure.in, and run autoconf to generate the configure script.
|
||||
.PP
|
||||
The next step would be:
|
||||
.PP
|
||||
$ ./configure --with-winelib-root=/usr/local/opt/wine
|
||||
.PP
|
||||
This generates the makefiles from the Makefile.in files. The generated
|
||||
makefiles will fetch the WineLib headers and libraries from the Wine
|
||||
installation located in /usr/local/opt/wine.
|
||||
.PP
|
||||
And finally:
|
||||
.PP
|
||||
$ make
|
||||
.PP
|
||||
If at this point you get compilation errors (which quite likely for a
|
||||
reasonable sized project) then you should consult the WineLib User Guide to
|
||||
find tips about how to resolve them.
|
||||
.PP
|
||||
For an MFC-based project one would have run the following commands instead:
|
||||
.PP
|
||||
$ winemaker --lower-uppercase --mfc
|
||||
.br
|
||||
$ ./configure --with-winelib-root=/usr/local/opt/wine \\
|
||||
.br
|
||||
--with-mfc-root=/usr/local/opt/mfc
|
||||
.br
|
||||
$ make
|
||||
.PP
|
||||
|
||||
.SH TODO / BUGS
|
||||
.PP
|
||||
Winemaker should support the Visual Studio project files (.dsp for newer
|
||||
versions and .mak for some older versions). This would allow it to be much
|
||||
more accurate, especially for the macro, include path and library path
|
||||
settings.
|
||||
.PP
|
||||
Assuming that we have the windows executable/library available, we could
|
||||
use a pedump-like tool to determine what kind of executable it is (graphical
|
||||
or console), which libraries it is linked with, and which functions it
|
||||
exports (for libraries). We could then restore all these settings for the
|
||||
corresponding WineLib target. The problem is that we should have such a tool
|
||||
available under the Wine license first.
|
||||
.PP
|
||||
The wrapper code should be generic, i.e. you should be able to have just one
|
||||
wrapper and specify which library to load using an option.
|
||||
.PP
|
||||
Furthermore it is not very good at finding the library containing the
|
||||
executable: it must either be in the current directory or in the
|
||||
.IR LD_LIBRARY_PATH .
|
||||
.PP
|
||||
The current way we link with libraries is not very good: with link, in the
|
||||
Unix sense, with all of them, and with none in the WineLib sense. But we
|
||||
lack a good means of detecting which libraries we should link with.
|
||||
Furthermore this area will change significantly when winebuild make sit
|
||||
possible to really link in the WineLib sense (i.e. via the spec file).
|
||||
.PP
|
||||
Work remains to be done on the configure script. Especially in the area of
|
||||
detecting headers and libraries that are already in the include/library path.
|
||||
.PP
|
||||
Winemaker does not support message files and the message compiler yet.
|
||||
.PP
|
||||
|
||||
.SH SEE ALSO
|
||||
.PP
|
||||
The WineLib User Guide:
|
||||
.PP
|
||||
http://wine.codeweavers.com/docs/winelib-user/
|
||||
.PP
|
||||
.BR wine (1)
|
||||
.PP
|
||||
|
||||
.SH AUTHOR
|
||||
Francois Gouget <fgouget@codeweavers.com> for CodeWeavers
|
Loading…
Reference in New Issue