Build requirements

Before you can start compiling, you need a couple of packages that are 
required to compile Xfce. Use your distributions package manager to 
install those packages. Additional packages are required too for some 
modules, but we'll get to that later.

A working GNU toolchain
Gtk+ and Glib headers, in some distributions called the -devel packages
Xfce 4.8 requires Gtk+ 2.14 and Glib 2.20
Xfce 4.6 requires Gtk+ 2.10 and Glib 2.12
pkgconfig
Coffee
Xfce's dependency chain


The Xfce packages need to be built in a specific order. If you don't 
follow this, compile options might not be available or the configure 
stage will abort because of missing dependencies.

xfce4-dev-tools (only required if you build from GIT)

libxfce4util

xfconf

libxfce4ui (new in 4.8), libxfcegui4 (deprecated since 4.8), 
libxfce4menu (deprecated since 4.8), garcon (new in 4.8) & exo

xfce4-panel

thunar

xfce4-settings, xfce4-session, xfdesktop, xfwm4, xfce-utils, xfce4-appfinder, ...


Installation location and variables

Now it is finally time to start compiling the Xfce desktop. Last 
remaining thing is to choose an installation location. Possible examples 
are /usr, /usr/local and /opt/xfce4 for a system-wide installation or 
$HOME/local if you want to install in your home directory (whatever you 
choose, never put spaces in the name). We will refer to this location as 
${PREFIX} in the code examples below!

You need to make sure the PKG_CONFIG_PATH variable include the path to 
the *.pc files installed by the Xfce libraries:

  export PKG_CONFIG_PATH="${PREFIX}/lib/pkgconfig:$PKG_CONFIG_PATH"

You can also set some optimization flags for the compiler. This may 
speed up Xfce, but can also make debugging impossible on some systems. 
Even worse, this can also cause gcc to generate broken code, so be 
carefull with this. The line below should be safe for most system.

  export CFLAGS="-O2 -pipe"


Compiling and installing

Next step is compiling the various packages following the dependency 
chain above. If you have downloaded the tarballs, you need to unpack 
them before going on. Inside each package directory you should run the 
following command:

  ./configure --prefix=${PREFIX} && make && make install

To build from GIT you need to install the xfce4-dev-tools package first, 
all other packages should be installed with this command:

  ./autogen.sh --enable-maintainer-mode --prefix=${PREFIX} && make && make install

Specific configure options for each package can be shown with 
./configure --help. Note that most packages benefit if you pass the 
configure option --disable-debug, however if you want to provide 
backtraces or test new code, no CFLAGS, no binary stripping and 
--enable-debug=full are recommended.