Module: docs
Branch: master
Commit: d1552ae60c0698559133a0abe3a7ed4140506345
URL: http://source.winehq.org/git/docs.git/?a=commit;h=d1552ae60c0698559133a0abe…
Author: André Hentschel <nerv(a)dawncrow.de>
Date: Fri May 14 18:43:37 2010 +0200
winelib: Fix a typo.
---
en/winelib-toolkit.sgml | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/en/winelib-toolkit.sgml b/en/winelib-toolkit.sgml
index ec241b7..2a21e21 100644
--- a/en/winelib-toolkit.sgml
+++ b/en/winelib-toolkit.sgml
@@ -173,7 +173,7 @@
being linked with the right set of libraries. You can avoid
this by using winemaker's <option>-P</>, <option>-i</>,
<option>-L</option> and <option>-l</> options or adding these
- DLLs and libraries to the <filename>Makefile</> file.
+ DLLs and libraries to the <filename>Makefile</>.
</para>
</listitem>
<listitem>
Module: docs
Branch: master
Commit: b9f453110b8526c6ee7de7d83116d0e0ccf0bde4
URL: http://source.winehq.org/git/docs.git/?a=commit;h=b9f453110b8526c6ee7de7d83…
Author: André Hentschel <nerv(a)dawncrow.de>
Date: Fri May 14 18:43:21 2010 +0200
winelib: Remove relations with autoconf.
---
en/winelib-intro.sgml | 2 +-
en/winelib-toolkit.sgml | 3 +--
2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/en/winelib-intro.sgml b/en/winelib-intro.sgml
index 9d92fcf..cfe8d8f 100644
--- a/en/winelib-intro.sgml
+++ b/en/winelib-intro.sgml
@@ -384,7 +384,7 @@
they will compile more readily with Winelib. As it does so it
may print warnings when it has to make a guess or identifies a
construct that it cannot correct. Finally it will generate the
- autoconf-based makefiles. Once all this is done you can review
+ makefiles. Once all this is done you can review
the changes that winemaker did to your files by using
<command>diff -uw</command>. For instance:
<command>diff -uw hello.c.bak hello.c</command>
diff --git a/en/winelib-toolkit.sgml b/en/winelib-toolkit.sgml
index 461d98b..ec241b7 100644
--- a/en/winelib-toolkit.sgml
+++ b/en/winelib-toolkit.sgml
@@ -380,8 +380,7 @@ WRCFLAGS = -r -L
-I/usr/lib/gcc-lib/i386-linux/2.95.2/include</literal> to cater
to both C and C++ headers. But this supposes that you know where
these header files reside which decreases the portability of your
- makefiles to other platforms (unless you automatically detect all
- the necessary directories in the autoconf script).
+ makefiles to other platforms.
</para>
<para>
Or you could use the C/C++ compiler to perform the preprocessing.
Module: docs
Branch: master
Commit: f0ab37a28c1cdc617f021c96e8fa7eeb631ced3a
URL: http://source.winehq.org/git/docs.git/?a=commit;h=f0ab37a28c1cdc617f021c96e…
Author: André Hentschel <nerv(a)dawncrow.de>
Date: Fri May 14 18:43:16 2010 +0200
winelib: Update the Makefile analysis.
---
en/winelib-toolkit.sgml | 92 ++++++++--------------------------------------
1 files changed, 16 insertions(+), 76 deletions(-)
diff --git a/en/winelib-toolkit.sgml b/en/winelib-toolkit.sgml
index ebd5c07..461d98b 100644
--- a/en/winelib-toolkit.sgml
+++ b/en/winelib-toolkit.sgml
@@ -214,21 +214,7 @@
Here's a detailed description of its content:
</para>
<programlisting>
-### Generic autoconf variables
-
-TOPSRCDIR = @top_srcdir@
-TOPOBJDIR = .
-SRCDIR = @srcdir@
-VPATH = @srcdir@
- </programlisting>
- <para>
- The above is part of the standard autoconf boiler-plate. These
- variables make it possible to have per-architecture directories for
- compiled files and other similar goodies (But note that this kind
- of functionality has not been tested with winemaker generated
- <filename>Makefile</filename> files yet).
- </para>
- <programlisting>
+SRCDIR = .
SUBDIRS =
DLLS =
EXES = hello.exe
@@ -241,7 +227,7 @@ EXES = hello.exe
extension. Note that these names must be in all lowercase.
</para>
<programlisting>
-### Global settings
+### Common settings
DEFINES = -DSTRICT
INCLUDE_PATH =
@@ -262,13 +248,12 @@ LIBRARIES =
</para>
<para>
The other variable
- names should be self-explanatory. You can also use three additional
- variables that are usually not present in the file:
+ names should be self-explanatory. There are also
<varname>CEXTRA</varname>, <varname>CXXEXTRA</varname> and
- <varname>WRCEXTRA</varname> which allow you to specify additional
- flags for, respectively, the C compiler, the C++ compiler and the
- resource compiler. Finally note that all these variable contain
- the option's name.
+ <varname>RCEXTRA</varname>(usually not present in the file) which
+ allow you to specify additional flags for, respectively,
+ the C compiler, the C++ compiler and the resource compiler.
+ Finally note that all these variable contain the option's name.
</para>
<para>
Then come one section per target, each describing the various
@@ -280,28 +265,20 @@ LIBRARIES =
hello_exe_C_SRCS = hello.c
hello_exe_CXX_SRCS =
hello_exe_RC_SRCS =
-hello_exe_SPEC_SRCS =
</programlisting>
<para>
- Each section will start with a comment indicating the name of the
- target. Then come a series of variables prefixed with the name of
+ The above variables list the sources that are used togenerate the
+ target. Each section will start with a comment indicating the name of
+ the target. Then come a series of variables prefixed with the name of
that target. Note that the name of the prefix may be slightly
different from that of the target because of restrictions on the
variable names.
</para>
- <para>
- The above variables list the sources that are used togenerate the
- target. Note that there should only be one resource file in
- <varname>RC_SRCS</varname>, and that <varname>SPEC_SRCS</varname>
- will usually be empty for executables, and will contain a single
- spec file for libraries.
- </para>
<programlisting>
hello_exe_DLL_PATH =
hello_exe_DLLS =
hello_exe_LIBRARY_PATH =
hello_exe_LIBRARIES =
-hello_exe_DEPENDS =
</programlisting>
<para>
The above variables specify how to link the target. Note that they
@@ -310,18 +287,11 @@ hello_exe_DEPENDS =
<para>
The <varname>DLLS</> field is where you would enumerate the list of
DLLs that executable imports. It should contain the full DLL name
- including the '.dll' extension, but not the '-l' option.
- </para>
- <para>
- <varname>DEPENDS</>, when present, specifies a list of other
- targets that this target depends on. Winemaker will automatically
- fill this field when an executable and a library are built in the
- same directory.
+ , but not the '-l' option.
</para>
<programlisting>
hello_exe_OBJS = $(hello_exe_C_SRCS:.c=.o) \
- $(hello_exe_CXX_SRCS:.cpp=.o) \
- $(EXTRA_OBJS)
+ $(hello_exe_CXX_SRCS:.cpp=.o)
</programlisting>
<para>
The above just builds a list of all the object files that
@@ -334,51 +304,21 @@ hello_exe_OBJS = $(hello_exe_C_SRCS:.c=.o) \
C_SRCS = $(hello_exe_C_SRCS)
CXX_SRCS = $(hello_exe_CXX_SRCS)
RC_SRCS = $(hello_exe_RC_SRCS)
-SPEC_SRCS = $(hello_exe_SPEC_SRCS)
</programlisting>
<para>
- This section builds 'summary' lists of source files. These lists are
- used by the <filename>Make.rules</filename> file.
+ This section builds 'summary' lists of source files.
</para>
- <note><para>
- FIXME:The following is not up-to-date.
- </para></note>
<programlisting>
-### Generic autoconf targets
-
-all: $(DLLS:%=%.so) $(EXES:%=%.so)
-
-@MAKE_RULES@
+### Generic targets
-install::
- for i in $(EXES); do $(INSTALL_PROGRAM) $$i $(bindir); done
- for i in $(EXES:%=%.so) $(DLLS); do $(INSTALL_LIBRARY) $$i $(libdir); done
-
-uninstall::
- for i in $(EXES); do $(RM) $(bindir)/$$i;done
- for i in $(EXES:%=%.so) $(DLLS); do $(RM) $(libdir)/$$i;done
+all: $(SUBDIRS) $(DLLS:%=%.so) $(EXES:%=%.so)
</programlisting>
<para>
The above first defines the default target for this makefile. Here
- it consists in trying to build all the targets. Then it includes
- the <filename>Make.rules</filename> file which contains the build
- logic, and provides a few more standard targets to install /
- uninstall the targets.
+ it consists in trying to build all the targets.
</para>
<programlisting>
### Target specific build rules
-
-$(hello_SPEC_SRCS:.spec=.tmp.o): $(hello_OBJS)
- $(LDCOMBINE) $(hello_OBJS) -o $@
- -$(STRIP) $(STRIPFLAGS) $@
-
-$(hello_SPEC_SRCS:.spec=.spec.c): $(hello_SPEC_SRCS:.spec) $(hello_SPEC_SRCS:.spec=.tmp.o) $(hello_RC_SRCS:.rc=.res)
- $(WINEBUILD) -fPIC $(hello_LIBRARY_PATH) $(WINE_LIBRARY_PATH) -sym $(hello_SPEC_SRCS:.spec=.tmp.o) -o $@ -spec $(hello_SPEC_SRCS)
-
-hello.so: $(hello_SPEC_SRCS:.spec=.spec.o) $(hello_OBJS) $(hello_DEP
-ENDS)
- $(LDSHARED) $(LDDLLFLAGS) -o $@ $(hello_OBJS) $(hello_SPEC_SRCS:.spec=.spec.o) $(hello_LIBRARY_PATH) $(hello_LIBRARIES:%=-l%) $(DLL_LINK) $(LIBS)
- test -f hello || $(LN_S) $(WINE) hello
</programlisting>
<para>
Then come additional directives to link the executables and
Module: docs
Branch: master
Commit: 5dbeca9a89389a0a61a6f7733c4b84203e32c454
URL: http://source.winehq.org/git/docs.git/?a=commit;h=5dbeca9a89389a0a61a6f7733…
Author: André Hentschel <nerv(a)dawncrow.de>
Date: Fri May 14 18:42:55 2010 +0200
winelib: Update Test Drive.
---
en/winelib-intro.sgml | 38 +++++++++++++++-----------------------
1 files changed, 15 insertions(+), 23 deletions(-)
diff --git a/en/winelib-intro.sgml b/en/winelib-intro.sgml
index 6af563f..9d92fcf 100644
--- a/en/winelib-intro.sgml
+++ b/en/winelib-intro.sgml
@@ -163,31 +163,23 @@
</programlisting>
<para>
- Notice how the build fails in a resource file
- (<filename>Da.rc</filename> at the time this was written).
- This is because for the time being, the Wine resource compiler
- (<command>windres</command>) can't cope with more than one
- resource file ending up in a given executable. To get around
- that limitation, the Wine developers have chosen to only have
- one master resource file per application, and include the
- other ones via <literal>#include</literal> statements in the
- master one. The included files do not
- <literal>#include</literal> the necessary files to be
- compilable on their own. You will need to do the same thing
- for now in your own Winelib port projects.
+ Notice how it fails linking, because of undefined reference to
+ wnsprintfW. This is because we didn't specify the libraries we need
+ to link to. Normally you know which libraries you need or you can find
+ a list in your old Makefile or project file.
</para>
<para>
- To fix that problem, you will need to edit the list of
- resource files winemaker thought notepad used, and only keep
- the master resource file. To do so, open
- <filename>notepad2/Makefile</filename> in a text editor and
- search for an assignment to a variable with
- <literal>RC_SRCS</literal> as part of its name. It will likely
- be named <literal>notepad2_exe_RC_SRCS</literal>. There will
- be a list of resource files starting on the same line. Remove
- them all except <filename>rsrc.rc</filename> (this is the
- master one for notepad). Save your work.
+ To fix that problem, open <filename>notepad2/Makefile.in</filename>
+ in a text editor and search for an assignment to a variable with
+ <literal>IMPORTS</literal> as part of its name. There will
+ be a list of import libraries. Now run winemaker again, but with
+ these libraries prefixed by <literal>-i</literal>:
</para>
+ <programlisting>
+ $ winemaker --lower-uppercase -icomdlg32 -ishell32 -ishlwapi -iuser32 -igdi32 -iadvapi32 -ikernel32 .
+ $ make
+ </programlisting>
+
<para>
Now you're ready to continue at the same point the first
<command>make</command> failed. Return to the notepad2
@@ -199,7 +191,7 @@
<para>
You are done! Now you can start the application as
- <command>./notepad2</command>.
+ <command>wine notepad2.exe.so</command>.
</para>
<para>
If you come across problems preparing and building this application
Module: docs
Branch: master
Commit: 42d714a53378989466b7d785c1f3533ad7194aa5
URL: http://source.winehq.org/git/docs.git/?a=commit;h=42d714a53378989466b7d785c…
Author: André Hentschel <nerv(a)dawncrow.de>
Date: Fri May 14 18:42:36 2010 +0200
winelib: Update Getting the source.
---
en/winelib-intro.sgml | 14 +++++++-------
1 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/en/winelib-intro.sgml b/en/winelib-intro.sgml
index ca71a20..6af563f 100644
--- a/en/winelib-intro.sgml
+++ b/en/winelib-intro.sgml
@@ -219,13 +219,13 @@
<term><option>Getting the source</option></term>
<listitem>
<para>
- First if you can try to get the sources together with the
- executables/libraries that they build. In the current state of
- winemaker having these around can help it guess what it is that
- your project is trying to build. Later, when it is able to
- understand Visual C++ projects, and if you use them, this will
- no longer be necessary. Usually the executables and libraries
- are in a <filename class="Directory">Release</filename> or
+ First you should try to get the sources together with the
+ executables/libraries that they build. If you have no
+ Visual C++ project files available winemaker having these around
+ can help it guess what it is that your project is
+ trying to build. Otherwise, it is able to understand
+ Visual C++ projects. Usually the executables and libraries are
+ in a <filename class="Directory">Release</filename> or
<filename class="Directory">Debug</filename> subdirectory of the
directory where the sources are. So it's best if you can
transfer the source files and either of these directories to
Module: docs
Branch: master
Commit: c15cfe275af5bb904da272cb0c11d345d6a1663b
URL: http://source.winehq.org/git/docs.git/?a=commit;h=c15cfe275af5bb904da272cb0…
Author: André Hentschel <nerv(a)dawncrow.de>
Date: Fri May 14 18:42:32 2010 +0200
winelib: Tell about projectfile support.
---
en/winelib-toolkit.sgml | 49 ++++++++++++++++++----------------------------
1 files changed, 19 insertions(+), 30 deletions(-)
diff --git a/en/winelib-toolkit.sgml b/en/winelib-toolkit.sgml
index bede8bc..ebd5c07 100644
--- a/en/winelib-toolkit.sgml
+++ b/en/winelib-toolkit.sgml
@@ -7,39 +7,28 @@
<sect2 id="vc-projects">
<title id="vc-projects.title">Support for Visual C++ projects</title>
<para>
- Unfortunately Winemaker does not support the Visual C++ project
- files, ...yet. Supporting Visual C++ project files (the
- <filename>.dsp</filename> and some <filename>.mak</filename> files
- for older versions of Visual C++) is definitely on
- the list of important Winemaker improvements as it will allow it to
- properly detect the defines to be used, any custom include path, the
- list of libraries to link with, and exactly which source files to use
- to build a specific target. All things that the current version of
- Winemaker has to guess or that you have to tell it as will become
- clear in the next section.
+ Winemaker supports the Visual C++ project
+ files! Supported filetypes are <filename>.dsp</filename>,
+ <filename>.dsw</filename>, <filename>.vcproj</filename>
+ and <filename>.sln</filename>. It detects the defines to be used,
+ any custom include path, the list of libraries to link with,
+ and exactly which source files to use to build a specific target.
</para>
<para>
- When the time comes Winemaker, and its associated build system, will
- need some extensions to support:
+ It is recommended to use Winemaker with a
+ project file if available. If you have to choose between a
+ <filename>.dsp</filename> file and a <filename>.vcproj</filename>,
+ then you should use the <filename>.dsp</filename>,
+ because it offers more information.
</para>
- <itemizedlist>
- <listitem>
- <para>
- per file defines and include paths. Visual C++ projects allow
- the user to specify compiler options for each individual file
- being compiled. But this is probably not very frequent so it
- might not be that important.
- </para>
- </listitem>
- <listitem>
- <para>
- multiple configurations. Visual C++ projects usually have at
- least a 'Debug' and a 'Release' configuration which are compiled
- with different compiler options. How exactly we deal with these
- configurations remains to be determined.
- </para>
- </listitem>
- </itemizedlist>
+ <para>
+ The usage is very easy, just replace the path to the sourcefolder
+ with the path to the projectfile.
+ </para>
+ <programlisting>
+ $ winemaker --lower-uppercase myproject.vcproj
+ $ make
+ </programlisting>
</sect2>
<sect2 id="source-analysis">
Module: docs
Branch: master
Commit: 6f5cc3716060d9a771c043b2c0ba558ad6311dca
URL: http://source.winehq.org/git/docs.git/?a=commit;h=6f5cc3716060d9a771c043b2c…
Author: André Hentschel <nerv(a)dawncrow.de>
Date: Fri May 14 18:42:23 2010 +0200
winelib: Prefer installing VS in Wine.
---
en/winelib-mfc.sgml | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/en/winelib-mfc.sgml b/en/winelib-mfc.sgml
index b0fc099..08ddccd 100644
--- a/en/winelib-mfc.sgml
+++ b/en/winelib-mfc.sgml
@@ -82,8 +82,8 @@
source code comes as a part of Visual Studio. The license for
Visual Studio implies it is a single product that cannot
be broken up into its components. So the cleanest way to get MFC on
- your system is to buy Visual Studio and install it on a dual boot
- Linux box.
+ your system is to buy Visual Studio and install it via Wine or on
+ a dual boot Linux box.
</para>
<para>
Then you must check that you are allowed to recompile MFC on a
Module: docs
Branch: master
Commit: d5acb9578745fa5fff245f148a77d2ae7f1c386a
URL: http://source.winehq.org/git/docs.git/?a=commit;h=d5acb9578745fa5fff245f148…
Author: André Hentschel <nerv(a)dawncrow.de>
Date: Fri May 14 18:42:06 2010 +0200
winelib: Fix a typo.
---
en/winelib-toolkit.sgml | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/en/winelib-toolkit.sgml b/en/winelib-toolkit.sgml
index fc2bbb4..bede8bc 100644
--- a/en/winelib-toolkit.sgml
+++ b/en/winelib-toolkit.sgml
@@ -61,7 +61,7 @@
<para>
First are executables and DLLs. Each time it finds one of these in
a directory, winemaker puts it in the list of things to build and
- will later generate a <filename>Makefile</filename> file in this
+ will later generate a <filename>Makefile</filename> in this
directory. Note that Winemaker also knows about the commonly used
<filename>Release</filename> and <filename>Debug</filename>
directories, so it will attribute the executables and libraries
Module: docs
Branch: master
Commit: 2670993b8aa0016af11b01ff2d186c15e6656fc0
URL: http://source.winehq.org/git/docs.git/?a=commit;h=2670993b8aa0016af11b01ff2…
Author: André Hentschel <nerv(a)dawncrow.de>
Date: Fri May 14 18:41:53 2010 +0200
winelib: make install is not supported anymore.
---
en/winelib-bindlls.sgml | 6 ++----
1 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/en/winelib-bindlls.sgml b/en/winelib-bindlls.sgml
index 73a0e99..54fb63a 100644
--- a/en/winelib-bindlls.sgml
+++ b/en/winelib-bindlls.sgml
@@ -248,10 +248,8 @@ signed short WINAPI MyProxyWinFunc (unsigned short a, void *b, void *c,
</para>
<para>
Put the proxy shared object (MyWin.dll.so) in the same place as the
- rest of the built-in DLLs. (If you used winemaker to set up your build
- environment then running "make install" as root should do that for you)
- Alternatively ensure that WINEDLLPATH includes the directory containing
- the proxy shared object.
+ rest of the built-in DLLs. Alternatively ensure that WINEDLLPATH
+ includes the directory containing the proxy shared object.
</para>
<para>
If you have both a Windows DLL and a Linux DLL/proxy pair then you will
Module: docs
Branch: master
Commit: e9aabbfd8aa9889fa600753695053e3d99c78039
URL: http://source.winehq.org/git/docs.git/?a=commit;h=e9aabbfd8aa9889fa60075369…
Author: André Hentschel <nerv(a)dawncrow.de>
Date: Fri May 14 18:41:20 2010 +0200
winelib: Update parameter usage.
---
en/winelib-bindlls.sgml | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/en/winelib-bindlls.sgml b/en/winelib-bindlls.sgml
index fda7777..73a0e99 100644
--- a/en/winelib-bindlls.sgml
+++ b/en/winelib-bindlls.sgml
@@ -203,7 +203,7 @@ signed short WINAPI MyProxyWinFunc (unsigned short a, void *b, void *c,
<itemizedlist>
<listitem>
<para>
- --nosource-fix and --nogenerate-specs (requires winemaker version
+ --nosource-fix (requires winemaker version
0.5.8 or later) to ensure that the two files are not modified.
(If using an older version of winemaker then make the two files
readonly and ignore the complaints about being unable to modify