This is the mail archive of the
cygwin-xfree@cygwin.com
mailing list for the Cygwin XFree86 project.
Re: Xfce for cygwin
- From: Maarten Boekhold <boekhold at emirates dot net dot ae>
- To: cygwin-xfree at cygwin dot com
- Date: Thu, 02 Dec 2004 11:50:15 +0400
- Subject: Re: Xfce for cygwin
- References: <41AEC411.6050801@sjsoft.com>
- Reply-to: cygwin-xfree at cygwin dot com
David Fraser wrote:
Mark Fisher wrote:
I've just ported xfce4.2 to cygwin, and start it like this:
Fantastic! Are the patches included in the CVS, are their any particular
build instructions?
I'm on the xfce dev list but I didn't see anything about this ...
The patches are in CVS (I was the one who committed them), and there are
specific built instructions.
You need to get libdbh and libstartup-notification yourself, and I'm
using the attached script to build XFCE. Haven't tried this in some time
though due to work load, so I can't guarantee everything still works
out-of-the-box. And oh yeah, you need a very recent version of libtool.
As I just wrote to Mark:
"Anyways, you do know that there is a couple of things that do not work
in XFCE for cygwin, right? For one, panel plugins are not fully
functional (just try to change the icon size in the panel and see what
happens). Also, xffm doesn't work, neither is xfprint (I've never really
tried this though), and xfce4-mixer.
The problem with the panel plugins and xffm is that XFCE is coded such
that the plugins must access variables in the loading program, and
MS-Windows (and therefore cygwin) doesn't allow this. I've had some
discussion with Jasper from the XFCE team about this, and we were
thinking of a complete rewrite of the XFCE plugin system. However, this
will have to wait until the 4.2 release, and I'm completely swamped in
work at the moment..."
Maarten
#!/bin/bash
cvs_dir=/e/Maarten/src/xfce
log_dir=/e/Maarten/src/xfce/complogs
install_dir=/opt/xfce
# SET REQUIRED PKG_CONFIG DIRECTORIES
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
PKG_CONFIG_PATH=${cvs_dir}/xfce4/xfce4-panel/panel:$PKG_CONFIG_PATH
PKG_CONFIG_PATH=${cvs_dir}/xfce4/libxfcegui4/libxfcegui4:$PKG_CONFIG_PATH
PKG_CONFIG_PATH=${cvs_dir}/xfce4/libxfce4util/libxfce4util:$PKG_CONFIG_PATH
PKG_CONFIG_PATH=${cvs_dir}/xfce4/libxfce4mcs/libxfce4mcs:$PKG_CONFIG_PATH
PKG_CONFIG_PATH=${cvs_dir}/xfce4/xfce-mcs-manager/xfce-mcs-manager:$PKG_CONFIG_PATH
PKG_CONFIG_PATH=${cvs_dir}/xfce4/xffm/src:$PKG_CONFIG_PATH
PKG_CONFIG_PATH=${cvs_dir}/xfce4/xfce4-session/xfce4-session:$PKG_CONFIG_PATH
export PKG_CONFIG_PATH
export ACLOCAL_FLAGS="--force"
usage() {
echo "Usage: $0"
echo " --help or -h display this message"
echo " --clean remove the old installation"
echo " --make-clean do a 'make clean'"
echo " --install do a 'make install'"
}
apkg() {
if [ -z "$PKGS" ]
then
PKGS=$1
else
PKGS="${PKGS} $1"
fi
}
apkg xfce4/libxfce4util:--prefix=${install_dir}
apkg xfce4/libxfcegui4:--prefix=${install_dir}
apkg xfce4/libxfce4mcs:--prefix=${install_dir}
apkg xfce4/xfce-mcs-manager:--prefix=${install_dir}
apkg xfce4/xfcalendar:--prefix=${install_dir}
apkg xfce4/xfce4-panel:--prefix=${install_dir}
apkg xfce4/gtk-xfce-engine-2:--prefix=${install_dir}
apkg xfce4/xfce-utils:--prefix=${install_dir}
apkg xfce4/xfwm4:--prefix=${install_dir}
apkg xfce4/xfwm4-themes:--prefix=${install_dir}
apkg xfce4/xfdesktop:--prefix=${install_dir}
apkg xfce4/xfce-mcs-plugins:--prefix=${install_dir}
apkg xfce4/xfce4-appfinder:--prefix=${install_dir}
apkg xfce4/xfce4-session:--prefix=${install_dir}
apkg xfce4/xfce4-icon-theme:--prefix=${install_dir}
apkg xfce4/xfce4-iconbox:--prefix=${install_dir}
apkg xfce4/xfce4-systray:--prefix=${install_dir}
apkg xfce4/xfce4-toys:--prefix=${install_dir}
apkg xfce4/xfce4-trigger-launcher:--prefix=${install_dir}
#apkg xfce4/xffm:--prefix=${install_dir}
#apkg xfce4/xfce4-mixer:--prefix=${install_dir}
#apkg xfce4/xfprint:--prefix=${install_dir}
#apkg xfce4/xfce4-terminal:--prefix=${install_dir}
error=0
clean=0
make_cmd="make"
help=0
while [ $# != 0 ]
do
case "$1" in
'--help')
help=1
shift
;;
'-h')
help=1
shift
;;
'--clean')
clean=1
shift
;;
'--make-clean')
make_cmd="make clean && ${make_cmd}"
shift
;;
'--install')
make_cmd="${make_cmd} && make install"
shift
;;
*)
echo "Unknown option: $1"
error=1
shift
;;
esac
done
if [ $help -eq 1 ]; then
usage
exit 1
fi
if [ $error -eq 1 ]; then
usage
exit 1
fi
if [ $clean -eq 1 ]; then
echo -n "Removing old installation from ${install_dir}... "
rm -rf ${install_dir} > /dev/null 2>&1
echo "Done"
fi
rm -rf ${log_dir}/* > /dev/null 2>&1
if [ ! -d ${log_dir} ]
then
mkdir ${log_dir}
fi
for i in ${PKGS}
do
pkg=`echo $i | cut -d: -f1`
options=`echo $i | cut -s -d: -f2- | sed -e 's/:/ /'`
log=${log_dir}/`basename ${pkg}`.log
echo "Installing \"${pkg}\" with \"${options}\""
cd ${cvs_dir}/$pkg
./autogen.sh ${options} | tee ${log} 2>&1
$SHELL -c "${make_cmd}" | tee -a ${log} 2>&1
# $("${make_cmd}") | tee -a ${log} 2>&1
done