= INSTALL for Fluxbox == TL;DR Instructions $ ./configure $ make and then as root $ make install == Compilation and Installation The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory in the Fluxbox source tree. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, a file `config.cache' that saves the results of its tests to speed up reconfiguring, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). If you need to do unusual things to compile Fluxbox, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to fluxbox-developers list (see www.fluxbox.org) so they can be considered for the next release. If at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.in' is used to create `configure' by a program called `autoconf'. You only need `configure.in' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. If you're using `csh' on an old version of System V, you might need to type `sh ./configure' instead to prevent `csh' from trying to execute `configure' itself. Running `configure' takes awhile. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Type `make install' to install the programs and any data files and documentation. 4. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. == Compilers and Options Some systems require unusual options for compilation or linking that the `configure' script does not know about. You can give `configure' initial values for variables by setting them in the environment. Using a Bourne-compatible shell, you can do that on the command line like this: CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure Or on systems that have the `env' program, you can do it like this: env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure === Cross-Compiler for Microsoft Windows: You'll want mingw-cross-env installed, with libX11 and mingw-catgets built. A configure line that works is: $ ./configure \ --prefix=/ \ --host=i686-pc-mingw32 \ --disable-imlib2 \ --disable-xmb \ --disable-slit \ --disable-remember \ --disable-toolbar \ --disable-fribidi \ --disable-nls \ --disable-xft \ LIBS="-lxcb -lXdmcp -lXau -lpthread -lws2_32" Then, build and install with $ make install DESTDIR=$(pwd)/stage You can then copy the whole "stage" directory to a Windows machine and run it on your choice of X server. == Optional Features Fluxbox supports the XShape extension of X11R6. This support is enabled by default, but may be overridden by specifying `--disable-shape' on the configure script's command line. Fluxbox supports Window Maker dockapps (warning: restarts from wmaker to fluxbox don't always handle dockapps correctly) with a gadget called the Slit. The Slit is compiled into Fluxbox by default, but may be overridden by specifying `--disable-slit' on the configure script's command line. Fluxbox supports a rendering effect called "faked interlacing" which darkens every other line in rendered images. This support works only for gradient images. It is compiled in by default, but may be overridden by specifying `--disable-interlace' on the configure script's command line. Fluxbox uses a timer which allows it to periodically flush its pixmap cache. It is enabled by default, but may be overridden by specifying '--disable-timed-cache' on the configure script's command line. Also, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations.