This includes the begining of a Build doc in wine-devel. It also
contains a list of the soft-dependancies I spotted, and urging the
packagers to consider this list.
--
Shachar Shemesh
Open Source integration consultant
Home page & resume - http://www.shemesh.biz/
Index: documentation/authors.ent
===================================================================
RCS file: /home/sun/sources/cvs/wine/documentation/authors.ent,v
retrieving revision 1.9
diff -u -r1.9 authors.ent
--- documentation/authors.ent 15 Mar 2003 19:55:48 -0000 1.9
+++ documentation/authors.ent 27 May 2003 11:13:00 -0000
@@ -111,6 +111,9 @@
<!entity name-john-sheets "John R. Sheets">
<!entity email-john-sheets "jsheets@codeweavers.com">
+<!entity name-shachar-shemesh "Shachar Shemesh">
+<!entity email-shachar-shemesh "winedocs@shemesh.biz">
+
<!entity name-petr-tomasek "Petr Tomasek">
<!entity email-petr-tomasek "tomasek@etf.cuni.cz">
Index: documentation/wine-devel.sgml
===================================================================
RCS file: /home/sun/sources/cvs/wine/documentation/wine-devel.sgml,v
retrieving revision 1.4
diff -u -r1.4 wine-devel.sgml
--- documentation/wine-devel.sgml 1 Apr 2003 03:26:13 -0000 1.4
+++ documentation/wine-devel.sgml 27 May 2003 11:11:20 -0000
@@ -4,6 +4,7 @@
<!entity % authors SYSTEM "authors.ent">
%authors;
+<!entity building SYSTEM "building.sgml">
<!entity debugger SYSTEM "debugger.sgml">
<!entity documentation SYSTEM "documentation.sgml">
<!entity patches SYSTEM "patches.sgml">
@@ -39,6 +40,7 @@
<part id="part-one">
<title>Developing Wine</title>
+ &building;
&debugger;
&documentation;
&patches;
--- /dev/null 2003-01-06 20:21:43.000000000 +0200
+++ documentation/building.sgml 2003-05-27 16:48:58.000000000 +0300
@@ -0,0 +1,190 @@
+ <chapter id="building">
+ <title>Building Wine</title>
+
+ <sect1 id="build-intro">
+ <title>Introduction</title>
+
+ <para>
+ Written by &name-shachar-shemesh; <email>&email-shachar-shemesh;</email>
+ (Last updated: 5/27/2003)
+ </para>
+ <para>
+ (Extracted from <filename>wine/documentation/building</filename>)
+ </para>
+ <para>
+ This section explains how to build Wine locally. If you are a packager, please also refer to
+ <filename>wine/documentation/PACKAGING</filename> for package specific considerations.
+ </para>
+ <sect1 id="soft-vs-hard-dep">
+ <title>Before you compile - Soft vs. Hard dependancies</title>
+
+ <para>
+ Wine is a compatibility layer. It is not an attempt to create a new OS. As such, it tries to
+ rely on existing functionality wherever possible. This means that some aspects of Wine require
+ libraries to be available during compilation and runtime, or certain functionality will not
+ be available.
+ </para>
+
+ <para>
+ There are two types of dependancies. These are the <quote>soft dependancy</quote> and the
+ <quote>hard dependancy</quote>.
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term>Hard Dependancy</term>
+ <listitem>
+ <para>
+ This is a dependancy of Wine that, if compiled into the code, must be available at runtime
+ or Wine will not function. Due to it's restrictive manner, developers go to a great length
+ to make sure there are as few of those as possible.
+ </para>
+ <note>
+ <title>Fixme</title>
+ <para>
+ How many of those are there?
+ <para>
+ </note>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Soft Dependancy</term>
+ <listitem>
+ <para>
+ These are libraries that, if present during both compilation and runtime, will add to Wine's
+ capabilities. Unlike the hard dependancies above, compiling Wine with these libraries will
+ allow Wine to work even on runtime environments where some or all of the soft dependancies
+ are not available.
+ </para>
+ <note>
+ <title>Packager's note</title>
+ <para>
+ Please do your best to make sure that as many soft dependancies are available during
+ compilation. Failing to have a soft dependancy available means that users cannot benefit
+ from a Wine capability.
+ </para>
+ </note>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <sect2>
+ <title>Soft dependancies list</title>
+ <para>
+ Here is a list of the libraries Wine needs, and their dependancy is soft. We suggest packagers
+ install each and every last of those before building the package. These libraries are not
+ dependancies in the RPM sense. In DEB packages, they should appear as "Suggests" or "Recommends",
+ as the case may be.
+ <para>
+ <variablelist>
+ <varlistentry>
+ <term><ulink url="http://www.freetype.org/">FreeType</ulink></term>
+ <listitem>
+ <para>
+ This library is used for direct rendering of fonts. It provides better support of fonts than
+ using the X11 fonts engine. It is only needed for the X11 back end engine. Used from GDI.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><ulink url="http://sourceforge.net/projects/alsa">Alsa</ulink> - Linux only</term>
+ <listitem>
+ <para>
+ This library gives sound support to the Windows environment.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><ulink url="http://jackit.sourceforge.net/">libjack</ulink></term>
+ <listitem>
+ <para>
+ Something to do with the MultiMedia system. Recording sound?
+ </para>
+ <note><title>Fixme</title>
+ <para>I don't truely know what this lib is.</para>
+ </note>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><ulink url="http://www.cups.org/">CUPS</ulink> - Common Unix Printing System</term>
+ <listitem>
+ <para>
+ This library allows Windows to see CUPS defined printers, and to print to them.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>OpenGL</term>
+ <listitem>
+ <para>
+ This is used for both OpenGL and Direct3D (and some other DirectX functions as well) support
+ in Wine. There are many many libraries for providing this functionality. It is enough for one
+ of them to be available when compiling Wine. Wine can work with any other library during
+ runtime.
+ </para>
+ <para>
+ If no library is available, packagers are encouraged to compile Wine with
+ <ulink url="http://www.mesa3d.org/">Mesa3D</ulink>, which requires no hardware support to
+ install.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect2>
+ </sect1>
+
+ <sect1 id="get-source">
+ <title>Getting the sources</title>
+
+ <sect2>
+ <title>HTTP Download</title>
+ <para>
+ The latest released sources
+ <ulink url="http://www.winehq.org/?page=download_source">http://www.winehq.org/?page=download_source</ulink>.
+ Installation instructions are also available at the same place.
+ </para>
+ </sect2>
+ <sect2>
+ <title>Getting sources from CVS</title>
+ <para>
+ In order to get the sources from CVS, you first need to log into the CVS server. Issue the
+ following command:
+ </para>
+ <screen>
+<prompt>~/sources$ </prompt><command>cvs -d :pserver:cvs@cvs.winehq.org:/home/wine login</command>
+Logging in to :pserver:cvs@cvs.winehq.org:2401/home/wine
+CVS password:</screen>
+ <para>
+ Use "<command>cvs</command>" as password. Next, you need to pull the sources from CVS. Use the
+ following command:
+ </para>
+ <screen>
+<prompt>~/sources$ </prompt><command>cvs -z 0 -d :pserver:cvs@cvs.winehq.org:/home/wine co wine</command>
+cvs checkout: Updating wine
+U wine/.cvsignore
+U wine/ANNOUNCE
+U wine/AUTHORS
+U wine/BUGS
+U wine/COPYING.LIB</screen>
+ <para>
+ The list will go on. When the operation finishes, a new directory called "wine" will be created,
+ and in it all the sources will reside.
+ </para>
+ <note>
+ <title>Warning</title>
+ <para>
+ In the above example, compression was disabled. Versions of CVS up to, and including, 1.11.1
+ hang if compression is enabled. If you have version 1.11.5 or higher, you can enable compression
+ by feeding other values to the <command>-z</command> argument.
+ </para>
+ </note>
+ <para>
+ For more details, consult the HOWTO at <ulink url="http://www.winehq.org/?page=cvs">http://www.winehq.org/?page=cvs</ulink>
+ </para>
+ </sect2>
+ </sect1>
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-parent-document:("wine-devel.sgml" "set" "book" "part" "chapter" "")
+End:
+-->