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.
166 lines
3.0 KiB
166 lines
3.0 KiB
11 years ago
|
# Configures KScope parameters
|
||
|
|
||
|
# Checks that the given executable is indeed a Cscope-compatible application
|
||
|
# and determines which options it supports.
|
||
|
verifyCscope()
|
||
|
{
|
||
|
CSCOPE_EXE=`basename $CSCOPE_PATH`
|
||
|
|
||
|
if [ $DEBUG ]
|
||
|
then
|
||
|
echo -n Checking $CSCOPE_EXE version...
|
||
|
fi
|
||
|
|
||
|
# Get the executable's version
|
||
|
CSCOPE_VER_MAJOR=`$CSCOPE_PATH -V 2>&1 | grep -i $CSCOPE_EXE | sed -e "s/.*version \([1-9][0-9]*\)\.\([0-9]\).*/\1/"`
|
||
|
CSCOPE_VER_MINOR=`$CSCOPE_PATH -V 2>&1 | grep -i $CSCOPE_EXE | sed -e "s/.*version \([1-9][0-9]*\)\.\([0-9]\).*/\2/"`
|
||
|
|
||
|
if [ -n "$CSCOPE_VER_MAJOR" -a "$CSCOPE_VER_MINOR" ]
|
||
|
then
|
||
|
echo $CSCOPE_VER_MAJOR.$CSCOPE_VER_MINOR
|
||
|
|
||
|
if [ $DEBUG ]
|
||
|
then
|
||
|
echo -n Cscope support for line mode verbose output...
|
||
|
fi
|
||
|
|
||
|
# Check for verbose output
|
||
|
if [ "`$CSCOPE_PATH -h 2>&1 | grep "\-v"`" ]
|
||
|
then
|
||
|
CSCOPE_VERBOSE=Yes
|
||
|
else
|
||
|
CSCOPE_VERBOSE=No
|
||
|
fi
|
||
|
echo $CSCOPE_VERBOSE
|
||
|
|
||
|
if [ $DEBUG ]
|
||
|
then
|
||
|
echo -n Cscope support slow path definitions...
|
||
|
fi
|
||
|
|
||
|
# Check for slow-path definitions
|
||
|
if [ "`$CSCOPE_PATH -h 2>&1 | grep "\-D"`" ]
|
||
|
then
|
||
|
CSCOPE_SLOWPATH=Yes
|
||
|
else
|
||
|
CSCOPE_SLOWPATH=No
|
||
|
fi
|
||
|
echo $CSCOPE_SLOWPATH
|
||
|
else
|
||
|
echo ERROR
|
||
|
if [ $DEBUG ]
|
||
|
then
|
||
|
echo -e "\n *** ERROR *** The \"cscope\" executable does not appear to be a Cscope compatible programme"
|
||
|
fi
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
DEBUG=0
|
||
|
CSCOPE_OPTIONS_ONLY=
|
||
|
|
||
|
# Parse command-line parameters
|
||
|
# Supported options:
|
||
|
# -d: Debug mode
|
||
|
# -co: Check Cscope options only
|
||
|
for opt in $@
|
||
|
do
|
||
|
case "$opt" in
|
||
|
"-d") DEBUG=1
|
||
|
;;
|
||
|
"-co") CSCOPE_OPTIONS_ONLY=1
|
||
|
;;
|
||
|
esac
|
||
|
done
|
||
|
|
||
|
if [ $DEBUG ]
|
||
|
then
|
||
|
echo -n Looking for cscope...
|
||
|
fi
|
||
|
|
||
|
if [ -z "$CSCOPE_PATH" ]
|
||
|
then
|
||
|
CSCOPE_PATH=`which cscope`
|
||
|
fi
|
||
|
|
||
|
if [ -n "$CSCOPE_PATH" -a -x "$CSCOPE_PATH" ]
|
||
|
then
|
||
|
echo $CSCOPE_PATH
|
||
|
verifyCscope
|
||
|
else
|
||
|
echo ERROR
|
||
|
if [ $DEBUG ]
|
||
|
then
|
||
|
echo -e "\n *** ERROR *** No Cscope executable found"
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
if [ -n "$CSCOPE_OPTIONS_ONLY" ]
|
||
|
then
|
||
|
exit
|
||
|
fi
|
||
|
|
||
|
if [ $DEBUG ]
|
||
|
then
|
||
|
echo -n Looking for Ctags...
|
||
|
fi
|
||
|
|
||
|
if [ -z "$CTAGS_PATH" ]
|
||
|
then
|
||
|
for CTAGS_NAME in exctags ctags-exuberant exuberant-ctags ctags
|
||
|
do
|
||
|
CTAGS_PATH=`which $CTAGS_NAME`
|
||
|
if [ -n "$CTAGS_PATH" -a -x "$CTAGS_PATH" ]
|
||
|
then
|
||
|
break
|
||
|
fi
|
||
|
done
|
||
|
fi
|
||
|
|
||
|
if [ -n "$CTAGS_PATH" ]
|
||
|
then
|
||
|
echo $CTAGS_PATH
|
||
|
|
||
|
# echo -n Checking for Exuberant-Ctags compatibility...
|
||
|
|
||
|
CTAGS_EXUB=`$CTAGS_PATH --help | grep -c "\-\-excmd=number"`
|
||
|
if [ $CTAGS_EXUB -gt 0 ]
|
||
|
then
|
||
|
CTAGS_EXUB_PATH=$CTAGS_PATH
|
||
|
echo Yes
|
||
|
else
|
||
|
echo ERROR
|
||
|
# echo -e "\n *** ERROR *** The \"ctags\" executable does not appear to be compatible with Exuberant Ctags"
|
||
|
fi
|
||
|
|
||
|
else
|
||
|
echo ERROR
|
||
|
# echo -e "\n *** ERROR *** No Ctags executable found"
|
||
|
fi
|
||
|
|
||
|
# echo -n Looking for Dot...
|
||
|
|
||
|
if [ -z "$DOT_PATH" ]
|
||
|
then
|
||
|
DOT_PATH=`which dot`
|
||
|
fi
|
||
|
|
||
|
if [ -n "$DOT_PATH" -a -x "$DOT_PATH" ]
|
||
|
then
|
||
|
echo $DOT_PATH
|
||
|
|
||
|
# echo -n Checking if dot handles the -Tplain option...
|
||
|
|
||
|
echo "digraph G {Hello->World}" | $DOT_PATH -Tplain 2>&1 /dev/null
|
||
|
if [ $? -eq 0 ]
|
||
|
then
|
||
|
echo Yes
|
||
|
else
|
||
|
echo ERROR
|
||
|
# echo -e "\n *** ERROR *** The \"dot\" executable does not support -Tplain"
|
||
|
fi
|
||
|
|
||
|
else
|
||
|
echo ERROR
|
||
|
# echo -e "\n *** ERROR *** No Dot executable found"
|
||
|
fi
|