diff options
Diffstat (limited to 'doc/Compiling.html')
-rw-r--r-- | doc/Compiling.html | 170 |
1 files changed, 170 insertions, 0 deletions
diff --git a/doc/Compiling.html b/doc/Compiling.html new file mode 100644 index 0000000..b4fcd7c --- /dev/null +++ b/doc/Compiling.html @@ -0,0 +1,170 @@ +<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en"> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; + charset=ISO-8859-1"> + <meta http-equiv="content-type" content="text/html; + charset=ISO-8859-1"> + <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) + [Netscape]"> + <title>Argyll Compiling</title> + </head> + <body> + <h2> <u>Compiling the Source Code</u></h2> + If you have downloaded the source code package, then you will need + to read the following instructions in order to compile and then run + any of the tools. If you have downloaded one of the platform + specific executable package, then the executables don't need to be + compiled, and the following instructions are not relevant.<br> + <h5 style="text-decoration: underline;">Check your development + environment:</h5> + Check you have one of the supported development environments <a + href="ArgyllDoc.html">listed</a>, and that your shell is + configured to have access to the development tools.<br> + <br> + On Linux, check that the appropriate development packages are + installed:<br> + <br> + jam: Program construction tool, similar to make + [If available]<br> + gcc C compiler<br> + Development files for libX11<br> + Development files for libXdmcp<br> + X.Org X11 libXext development package<br> + X.Org X11 libXxf86vm development package<br> + X.Org X11 libXinerama development package<br> + X.Org X11 libXrandr development package<br> + X.Org X11 libXScrnSaver A.K.A. libxss-dev + development package + <h5><span style="text-decoration: underline;">Setup JAM:</span><br> + </h5> + Argyll makes use of a build system called <a + href="http://www.perforce.com/jam/jam.html">Jam/MR</a>. Jam is + cross platform, highly customizable and flexible. It uses a concise, + scalable and platform neutral configuration files, and is fast.<br> + <p>If you do not already have Jam 2.5 on your system or if it is not + available as an installable package, you will need to install it. + [It may be available as an RPM for Linux systems.] Jam/MR is + available from <a href="ftp://ftp.perforce.com/jam/"><ftp://ftp.perforce.com/jam></a> + You'll want to bootstrap it up using its Makefile - see the <span + style="font-weight: bold;">README</span> file that comes with + Jam for more information. You may want to apply the patch <span + style="font-weight: bold;">jam.patch</span> included in Argyll + to <span style="font-weight: bold;">jam.c</span> so that it uses + the environment variable <span style="font-weight: bold;">JAMBASE</span>, + and then setting this environment variable to point to the Argyll + Jambase. The patch also fixes a non-critical bug that affects + building using MingW. Note that building jam results in an + executable <span style="font-weight: bold;">jam0</span> that you + will want to rename and install in an appropriate place on your + system. A <span style="font-weight: bold;">pre-patched</span> + source archive of Jam is available as a <a + href="http://www.argyllcms.com/ajam-2.5.2-1.3.3.zip">.zip here + for MSWin</a>, or as a <a + href="http://www.argyllcms.com/ajam-2.5.2-1.3.3.tgz">.tgz for OS + X and Linux</a>.<br> + </p> + <p>An alternative to the original Jam may be <a + href="http://freetype.sourceforge.net/jam/index.html">ftjam</a>, + which is appears to be backwards compatible with the original + Jam/MR.</p> + <p>The <span style="font-weight: bold;">Jambase</span> I am using + for Argyll is different to the default Jambase provided with Jam + and compiled into it, and you need to arrange to use this + when you compile Argyll. You can tell Jam to use an alternate + Jambase using the <span style="font-weight: bold;">-f</span> + option, or by setting the environment variable <span + style="font-weight: bold;">JAMBASE</span> to point to the Argyll + Jambase if you applied the Argyll patch to jam. Another method + would be to create a shell alias of jam that invokes jam using the + -f flag, or to create a script that provides the -f option to + point to the Argyll Jambase. Argyll will not build properly if you + use the wrong Jambase. </p> + If you are running on Mac OSX, then even though OSX comes with a + version of Jam/MR in the development system, you will need to + download, build and install a normal version of Jam/MR Version 2.5 + or later from perforce, to be able to build Argyll. This is due to + Apple changing their version of Jam sufficiently to make it + incompatible with normal Jamfiles :-(.<br> + <p>On OSX what I did was to name the "normal" Jam ajam, and then + setup a jam shell script to invoke it something like this: "ajam + -f~/src/argyll/Jambase $*", and to make sure that my script is + ahead of Apples jam in my $PATH. The makeall.ksh script or + Makefile will run Jam with the -f flag.</p> + <p>You may also have to set the appropriate environment variable to + tell the Jambase which compiler you are using.<br> + </p> + <h5><span style="text-decoration: underline;">Then compile Argyll:</span><br> + </h5> + <p>Once you've got a working Jam, you simply have to unzip the + argyll.zip file, and it will create a top level directory <span + style="font-weight: bold;">Argyll_VX.X.X</span>, where X.X.X is + the version number, and you can then cd into this directory and + run <span style="font-weight: bold;">jam</span>. <span + style="color: rgb(102, 0, 204);"></span><span style="color: + rgb(102, 0, 204);"></span>For a faster build on a multiprocessor + system you may like to use the -j option to do a parallel + build, e.g. <span style="font-weight: bold;">jam -j3</span>. To + install the executables in the bin directory and the sample files + into the <span style="font-weight: bold;">ref</span> directory, + run <span style="font-weight: bold;">jam install</span>. To + remove everything that has been built, run <span + style="font-weight: bold;">jam clean</span>. On Linux/OS X you + could also just try running make, and the makefile will invoke + jam.<br> + </p> + <p>Something to watch on the Intel versions of OS X 10.4, is that + your shell environment variable $MACHTYPE may be incorrect. On + Intel 10.4 it should be i386-apple-darwin8.0, but there are bugs + in Apples distribution.<br> + </p> + <p>You may have to check that your shell environment variable $<span + style="font-weight: bold;">HOSTTYPE</span> has been exported, so + that Jam can know if it's 64 bit or not,<br> + and look for libraries in the right place. You can fix this + permanently in your shell .initialization file (ie. ~/.profile, + ~/.bashrc etc.).<br> + </p> + <p>To build a particular sub directory only, cd to the directory and + simply run <span style="font-weight: bold;">jam</span>, although + be aware that the local Jamfile compile time options may be + different to those in the top level Jamfile used when compiling + from the top.<br> + </p> + <p><span style="font-weight: bold;">NOTE</span> that "jam install" + doesn't install the resulting binaries in the "usual places", it + installs them in the <span style="font-weight: bold;">Argyll_VX.X.X/</span><span + style="font-weight: bold;">bin</span> directory, and it's then + up to you whether you want copy them to somewhere like C:\Program + Files\argyll, /usr/bin, /usr/local/bin etc., or simply leave them + there. </p> + <h5><span style="text-decoration: underline;">Compile environment on + MSWindows:</span></h5> + <p>Setting up a compile environment on MSWindows can be challenging. + The simplest approach is probably to install MingW, since it + provides both the compiler and the SDK in one package.<br> + <br> + I've successfully compiled using Microsoft VC++ 6.0, but I think I + remember tweaking some of the header files by borrowing from a + latter SDK to be able to incorporate the necessary function + calls to access display and color profiles on Win2K and latter, so + this may not work "out of the box".</p> + <p>I've also successfully compiled using Microsoft VC++ 8.0 and VC++ + 9.0 Express (the free Microsoft compiler) plus the Microsoft + Platform SDK February 2008. To get this to work though, I had to + create my own batch file to setup the SDK environment variables <span + style="font-weight: bold;">MSSdk</span> etc., because the batch + files provided with the SDK got confused by the presence of VC++6, + and didn't notice that VC++8 or 9 was configured.</p> + <p>Note that for some hard to fathom reason VC++ 9.0 refused to + install on my Win2K development machine, so I had to install it on + a WinXP machine and then copy the installation back to Win2K, and + manually complete the installation. There seems to be no reason + for this limitation, since the VC++9 compiler/linker etc. + seems quite happy to run on Win2K.</p> + <p>I haven't attempted to compile for Win64, and currently the + Jambase isn't setup for cross compilation, nor have I tried to + setup a native build environment yet on Vista64.<br> + </p> + </body> +</html> |