******************************************** * * Clearsilver INSTALL * * http://www.clearsilver.net * * Brandon Long, David Jeske * ******************************************** 1) Compile ------------------------------------------------ Simplest case: # ./configure # make Options to configure: --disable-compression Disables HTML Compression support --enable-remote-debugger Enables remote X CGI debugging --disable-apache Disables building of apache 1.3.x module --with-apache=path Set location of Apache installation --disable-python Disables building of python module --with-python=path Set location of Python Includes --disable-perl Disables building of perl module --with-perl=path Set location of Perl binary --disable-ruby Disables building of ruby module --with-ruby=path Set location of Ruby binary --disable-java Disables building of java module --with-java=path Set location of J2SDK --disable-csharp Disables building of csharp module --with-csharp=path Set location of csharp --enable-gettext Enable gettext message translation --disable-compression: Currently, the CGI output code in the cgi kit automatically attempts to detect whether the remote browser can handle compressed data, and if it does, compresses the output for text/html. This is run-time configurable via Config.CompressionEnabled. Disabling it at compile time eliminates the dependency on libz. --enable-remote-debugger: The CGI kit contains code for remotely debuggin CGI programs by launching an X based debugger (such as xxgdb or ddd) at the X display you specify in the HTTP request. There are controls such as a configurable list of allowed displays, but remote debugging is disabled by default. --enable-gettext: Enables gettext message translation. Once enabled you have a new builtin function "_(<message>)". This function calls the function gettext (man 3 gettext). The rest of the --disable/--with either disable a specific module, or point ClearSilver at the right program to enable it. The configure script will simple not build any module it can't find the right versions of programs to build against. Alternatively, if you are making ClearSilver part of your build environment, you can simple delete whichever module directory you don't want, and the build will ignore it. For information about compiling on Windows under MingW and MSYS, see python/README.txt The csharp wrapper was built with Mono (www.go-mono.com) and should work with v0.24 and later (give or take). In theory, it should be fairly simple to get this working on MS.Net as well. 2) Install ------------------------------------------------ # make install The make install is relatively new, and just installs the libraries/header files (and probably the perl and python modules, but that's a guess) 3) Example 1, Apache static.cgi ---------------------------------- "static.cgi" is a simple binary which will allow you to write static HDF files, static ClearSilver templates, and render them. This is a good way to get started and learn the clearsilver model and syntax. Follow the steps below to install static.cgi into your Apache configuration and then read the documentation while playing with static files. http://www.clearsilver.net/docs/man_hdf.hdf Add the following to your Apache configuration and copy the Clearsilver static.cgi binary from cgi/static.cgi into your Apache cgi-bin directory. AddHandler cgi-script .cgi Action cs-handler /cgi-bin/static.cgi AddHandler cs-handler .cs Since any html file is a valid CS file, I also run with: AddHandler cs-handler .html * About static.cgi: static.cgi works by assuming that whatever file it was pointed at is a CS template. It first tries to load common.hdf in the same directory, then it tries to load some other hdf files, and then it parses and displays the template file. Ie, if its pointed at foo.cs, it will load common.hdf, try to load foo.cs.hdf, if that fails, it tries foo.hdf. If the hdf defines CGI.StaticContent, it will assume that's the real template file (which is how we use it on www.clearsilver.net, we just point at he .hdf files, which define StaticContent as a wrapper.cs, which includes another file defined in the .hdf file). 4) Example 2, imd image server ------------------------------------ "imd" is a simple image server written with C and clearsilver. The imd directory has a README on how to set up imd with Apache. 5) Example 3, using with Python ----------------------------------- The clearsilver python wrapper comes with CSPage.py. This file contains the CSPage superclass, and this file gives some pointers on how to use the cs handler via python. A much more thorough example is Scott Hassan's image_server, available from http://www.dotfunk.com/projects/image_server