This is the mail archive of the cygwin-xfree@cygwin.com mailing list for the Cygwin XFree86 project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Xfce for cygwin




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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]