  <chapter id="build">
    <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>
    <sect1 id="soft-vs-hard-dep">
      <title>Before you compile - Soft vs. Hard dependencies</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 dependencies. These are the <quote>soft dependency</quote> and the
        <quote>hard dependency</quote>. 
      </para>
      <variablelist>
        <varlistentry>
          <term>Hard Dependency</term>
          <listitem>
            <para>
              This is a dependency 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 Dependency</term>
          <listitem>
            <para>
              These are libraries that, if present during both compilation and runtime, will add to Wine's
              capabilities. Unlike the hard dependencies above, compiling Wine with these libraries will
              allow Wine to work even on runtime environments where some or all of the soft dependencies
              are not available.
            </para>
            <note>
              <title>Packager's note</title>
              <para>
                Please do your best to make sure that as many soft dependencies are available during
                compilation. Failing to have a soft dependency available means that users cannot benefit
                from a Wine capability.
              </para>
            </note>
          </listitem>
        </varlistentry>
      </variablelist>

      <sect2>
        <title>Soft dependencies list</title>
        <para>
          Here is a list of the libraries Wine needs, and their dependency is soft. We suggest packagers
          install each and every last of those before building the package. These libraries are not
          dependencies 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>
  </chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-parent-document:("wine-devel.sgml" "set" "book" "part" "chapter" "")
End:
-->
