You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
247 lines
5.7 KiB
247 lines
5.7 KiB
15 years ago
|
#! /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"
|