Changelog: Shachar Shemesh <winecode@shemesh.biz>
The begining of a "building wine" documentation. More detailed explanation of the "soft" vs. "hard" dependancies.
-- 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.10 diff -u -r1.10 authors.ent --- documentation/authors.ent 4 Jun 2003 20:26:34 -0000 1.10 +++ documentation/authors.ent 7 Jun 2003 16:12:07 -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: +-->