summaryrefslogtreecommitdiffstats
path: root/src/kscope_config
diff options
context:
space:
mode:
Diffstat (limited to 'src/kscope_config')
-rw-r--r--src/kscope_config165
1 files changed, 165 insertions, 0 deletions
diff --git a/src/kscope_config b/src/kscope_config
new file mode 100644
index 0000000..25fad0f
--- /dev/null
+++ b/src/kscope_config
@@ -0,0 +1,165 @@
+# 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