diff options
author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-02-17 00:43:50 +0000 |
---|---|---|
committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-02-17 00:43:50 +0000 |
commit | ceea23677c61f20759ae986bd77b0d5c4d673edb (patch) | |
tree | 3fcec1702eaf9c14d1dd736e594f5df08dab4001 /build.sh | |
download | kbfx-ceea23677c61f20759ae986bd77b0d5c4d673edb.tar.gz kbfx-ceea23677c61f20759ae986bd77b0d5c4d673edb.zip |
Added old KDE3 version of kbfx
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/kbfx@1091549 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'build.sh')
-rwxr-xr-x | build.sh | 246 |
1 files changed, 246 insertions, 0 deletions
diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..d3f4983 --- /dev/null +++ b/build.sh @@ -0,0 +1,246 @@ +#! /bin/sh + +CMAKE_OPT_PREFIX_KDE3="-DCMAKE_INSTALL_PREFIX:PATH=`kde-config --prefix 2>/dev/null` " +CMAKE_OPT_PREFIX_KDE4="-DCMAKE_INSTALL_PREFIX:PATH=`kde4-config --prefix 2>/dev/null` " +CMAKE_OPT_PREFIX="" +MAKE_VERBOSE="" +USE_STRIGI_SEARCH="" +MENUDRAKE="" +KDE4="" +ACTION="install" +NOCHECK=0 +build_state="touch kbfx_build" +command_line_args=$@ +eval "which kbfxconfigapp > /dev/null 2>&1" && kbfx_installed="1" || kbfx_installed="0" + +color_ok="\\033[1;32m" +color_error="\\033[1;31m" +color_normal="\\033[0;39m" +color_warn="\\033[1;33m" + + +prog_action(){ + echo + echo -e "$color_ok $@ $color_normal" +} + +prog_err(){ + echo + echo -e "$color_error ERROR doing $@ $color_normal\n" +} + +confirm() { + printf "$color_warn %s (Y)es/(N)o? [%s]$color_normal " "$1" "$2" + unset user_input + answer="$2" + read user_input +if [ "$user_input" = "y" -o "$user_input" = "Y" -o "$user_input" = "YES" -o "$user_input" = "Yes" -o "$user_input" = "yes" ]; then + answer="Y" +fi +if [ "$user_input" = "n" -o "$user_input" = "N" -o "" = "NO" -o "$user_input" = "No" -o "$user_input" = "no" ]; then + answer="N" +fi +} + +parse_command_line() { + if [ "$#" -eq 0 ]; then + return 0 + fi + while [ "$1" != "${1##-}" ]; do + case $1 in + --verbose|-v) + MAKE_VERBOSE="VERBOSE=1" + shift 1 + ;; + --prefix|-p) + if [ -n "$2" -a "$2" = "${2##-}" ]; then + t=0 + stop=0 + s="" + for p in $@ + do + t=$[t+1] + if [ $t -gt 1 -a "$p" = "${p##-}" -a $stop -eq 0 ]; then + s="$s$p " + fi + if [ $t -gt 1 -a "$p" != "${p##-}" ]; then + stop=$[t-1] + fi + done + if [ $stop -eq 0 ]; then + stop=$[t-1] + fi + if [ -n "$s" ]; then + s=${s%%[ ]} + CMAKE_OPT_PREFIX="-DCMAKE_INSTALL_PREFIX:PATH='$s' " + fi + shift $stop + else + shift 1 + return 1 + fi + ;; + --strigi|-s) + USE_STRIGI_SEARCH="-DUSE_STRIGI:BOOL=TRUE" + shift 1 + ;; + --menudrake-off|-m) + MENUDRAKE="-DUSE_MENUDRAKE:BOOL=FALSE" + shift 1 + ;; + --kde4|-k) + KDE4="-DUSE_KDE4:BOOL=TRUE" + shift 1 + ;; + --uninstall|-u) + ACTION="uninstall" + shift 1 + ;; + --nocheck|-n) + NOCHECK=1 + shift 1 + ;; + *) + if [ "$#" -ge 1 ]; then + return 1 + fi + return 0 + ;; + esac + done +} + +show_usage(){ + echo + echo -e "$color_warn Usage: \n\t build.sh \t [(-v|--verbose) Be verbose when compiling (default: no)] \n\t\t\t [(-u|--uninstall) Uninstall KBFX (default: no)] \n\t\t\t [(-p|--prefix) Install prefix (default: KDE prefix)] \n\t\t\t [(-s|--strigi) Compile strigi search plugin (default: no)] \n\t\t\t [(-m|-menudrake-off) Don't use menudrake in Mandriva (default: auto)] \n\t\t\t [(-k|--kde4) Compile for KDE4 (default: no)] \n\t\t\t [(-n|--nocheck) Do not check for old KBFX versions (default: check)] $color_normal" + echo +} + +parse_command_line $command_line_args +if [ "$?" -eq 1 ]; then + prog_err "build.sh" + show_usage + exit 1 +fi + +show_usage + +if [ "$ACTION" = "install" ] +then { + if [ $kbfx_installed -eq 1 -a $NOCHECK -eq 0 ] ; then + echo + echo -e "$color_error \n\t You have KBFX installed in your \$PATH!\n\t In order to compile the new version you HAVE TO REMOVE the old KBFX first!\n $color_normal" + exit 1 + fi + + if [ -d build ] ; then + echo + echo -e "$color_warn Directory 'build' exists! Using it...$color_normal" + echo -e "$color_error If 'build.sh' fails, try removing the directory 'build' and run 'build.sh' again! $color_normal" + else + mkdir build + fi + cd build + + if [ "$CMAKE_OPT_PREFIX" = "" ] + then { + if [ "$KDE4" = "" ] + then { + CMAKE_OPT_PREFIX=$CMAKE_OPT_PREFIX_KDE3 + } + else { + CMAKE_OPT_PREFIX=$CMAKE_OPT_PREFIX_KDE4 + } + fi + } + fi + + CMAKE_OPT="$CMAKE_OPT_PREFIX $KDE4 $MENUDRAKE $USE_STRIGI_SEARCH" + + prog_action "Doing CMake configure..." + echo $CMAKE_OPT + eval "cmake ../ $CMAKE_OPT" + if [ $? -ne 0 ]; then + prog_err "CMake configure..." + exit 1 + fi + + prog_action "Doing make..." + make $MAKE_VERBOSE + if [ $? -ne 0 ]; then + prog_err "make..." + exit 1 + fi + + eval $build_state + prog_action "Success building KBFX...\n" + + confirm "Do you want to install KBFX?" "Y" + if [ "$answer" = "Y" ] + then + sucommand="make install" + after_su="touch kbfx_install_user" + if [ `whoami` != 'root' ] + then { + confirm "To install KBFX as 'root', answer 'Yes'. To install as '`whoami`', answer 'No'" "N" + if [ "$answer" = "Y" ] + then { + sucommand="su root -c 'make install'" + after_su="touch kbfx_install_root" + } + fi + } + fi + + prog_action "Doing 'make install'..." + eval $sucommand + if [ $? -ne 0 ]; then + prog_err "make install..." + exit 1 + fi + eval $after_su + echo + echo -e "$color_warn NOTE: If you have used a custom prefix for your install (-p or --prefix option for script), \n you should add '$s' to your \$KDEDIRS environment variable\n and '$s/lib' to your \$LD_LIBRARY_PATH environment variable!\n $color_normal" + fi +} +else { + if [ -d build ] + then + cd build + else + echo + echo -e "$color_error \n\t Directory 'build' DOES NOT exist!\n\t You HAVE NOT used 'build.sh' script for installing KBFX! \n\t Uninstall CAN NOT continue!\n $color_normal" + exit 1 + fi + + if [ -f kbfx_install_user ] + then + sucommand="make uninstall" + after_su="rm -f kbfx_install_user" + elif [ -f kbfx_install_root ] + then + sucommand="su root -c 'make uninstall'" + after_su="rm -f kbfx_install_root" + elif [ -f kbfx_build ] + then + echo + echo -e "$color_error \n\t KBFX IS NOT installed! \n\t Uninstall CAN NOT continue!\n $color_normal" + exit 1 + else + echo + echo -e "$color_error \n\t You HAVE NOT used 'build.sh' script for installing KBFX! \n\t Uninstall CAN NOT continue!\n $color_normal" + exit 1 + fi + + prog_action "Uninstalling..." + eval $sucommand + if [ $? -ne 0 ]; then + prog_err "uninstall..." + exit 1 + fi + eval $after_su + +} +fi + +prog_action "All actions ended successfully...\n" |