がんばって英語で書くブログ
英語勉強中なので、ブログも英語で書こうかと。
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

XFCE4 hack
recently, I have interest to xfce hacking.

I'll write memo.

official document is here

* I'm using Debian sid

1. install libxfce*dev packages
you need these packages.

2. Getting source code from SVN
svn co http://svn.foo-projects.org/svn/xfce/$modulename/trunk $modulename

* you need these modules. you have to build before your hacking.
xfce4-dev-tools
libxfce4util
libxfcegui4
libxfce4mcs
xfce-mcs-manager

3. build
cd module directory.
./autogen.sh
make
make install

if you don't wanna install to /usr/local, you should be doing this.
./autogen.sh
./configure --enable-maintainer-mode --prefix=DIRECTORY
make
make install

* if you install to other directory, you have to add DIRECTORY/bin to $PATH

4. enjoy hacking
have fun :-)

I wrote these.

build.sh
#!/bin/sh

XFCE_INSTALL_DIR=/your directory/tmp/xfce
XFCE_DEV_TOOLS_DIR=$XFCE_INSTALL_DIR/bin

PKG_CONFIG_PATH=/usr/lib/pkgconfig; export PKG_CONFIG_PATH
PATH=$PATH:$XFCE_DEV_TOOLS_DIR

BASE_MODULES=`cat modules.txt`

SVN_UPDATE=""
MAKE_CLEAN=""

do_build() {

if [ "$MAKE_CLEAN" = "yes" ]; then
rm -fr $XFCE_INSTALL_DIR
fi

for mod in $BASE_MODULES
do
./is_comment $mod
if [ "$?" = "1" ]; then
continue
fi

cd $mod

if [ "$SVN_UPDATE" = "yes" ]; then
svn up
fi

if [ -f "Makefile" ] && [ "$MAKE_CLEAN" = "yes" ]; then
make clean
fi

./autogen.sh && ./configure --enable-maintainer-mode --prefix=$XFCE_INSTALL_DIR && make && make install

if [ "$?" != "0" ]; then
echo "build abort($mod)"
exit 1
fi

cd ..
done
}

usage() {
echo "usage $0 [option]"
echo "-s: with svn update"
echo "-c: with make clean(if Makefile is exist)"
echo "-h: print this message"
}

while getopts sch opt $@
do
case "${opt}" in
s) SVN_UPDATE="yes" ;;
c) MAKE_CLEAN="yes" ;;
h) usage $0 ;;
*) usage $0 ;;
esac
done

do_build

echo "Done."

exit 0

-------------------------------------------------------------------------
is_comment.c
gcc is_comment.c -o is_comment

#include <stdio.h>

int main(int argc, char **argv)
{
if (argc != 2)
return 1;

return (argv[1][0] == '#') ? 1 : 0;
}
-------------------------------------------------------------------------
modules.txt

xfce4-dev-tools
libxfce4util
libxfcegui4
libxfce4mcs
xfce-mcs-manager

スポンサーサイト

この記事に対するコメント

この記事に対するコメントの投稿














管理者にだけ表示を許可する


この記事に対するトラックバック
トラックバックURL
→http://foobar.blog23.fc2.com/tb.php/8-cce4a29b
この記事にトラックバックする(FC2ブログユーザー)

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。