141 lines
2.9 KiB
Text
141 lines
2.9 KiB
Text
|
#!/bin/sh
|
||
|
|
||
|
|
||
|
###########################################################################
|
||
|
|
||
|
# Files associated to each mode
|
||
|
DEBUG_FILE=$HOME/.mode_debug
|
||
|
#RELEASE_FILE=$HOME/.mode_release
|
||
|
STATIC_FILE=$HOME/.mode_static
|
||
|
DYNAMIC_FILE=$HOME/.mode_dynamic
|
||
|
SILENT_FILE=$HOME/.mode_silent
|
||
|
|
||
|
|
||
|
###########################################################################
|
||
|
# Print status
|
||
|
printMode()
|
||
|
{
|
||
|
echo ""
|
||
|
echo "Compilation modes :"
|
||
|
echo ""
|
||
|
echo " Debug mode : $DEBUG_MODE"
|
||
|
# echo " Release mode : $RELEASE_MODE"
|
||
|
echo ""
|
||
|
echo " Static linking : $STATIC_MODE"
|
||
|
echo " Dynamic linking : $DYNAMIC_MODE"
|
||
|
echo ""
|
||
|
echo " Silent compilation : $SILENT_MODE"
|
||
|
echo ""
|
||
|
}
|
||
|
|
||
|
|
||
|
###########################################################################
|
||
|
# Get the specific mode value and set the corresponding variable
|
||
|
getMode()
|
||
|
{
|
||
|
local VAR=$1
|
||
|
local FILE=$2
|
||
|
|
||
|
if test -f $FILE
|
||
|
then
|
||
|
eval $VAR=ON
|
||
|
else
|
||
|
eval $VAR=OFF
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
|
||
|
###########################################################################
|
||
|
# Set a specific mode to ON if it's OFF, and to OFF if its ON
|
||
|
setMode()
|
||
|
{
|
||
|
local VAR=$1
|
||
|
local FILE=$2
|
||
|
|
||
|
# Get the current mode value
|
||
|
OLD_VALUE=$(eval echo \$$VAR)
|
||
|
|
||
|
if test X"$OLD_VALUE" = "XOFF"
|
||
|
then
|
||
|
# Set the MODE to ON in case it's OFF
|
||
|
NEW_VALUE=ON
|
||
|
touch -f $FILE || (echo "Error : cannot create mode files" && exit 1)
|
||
|
else
|
||
|
# Set the MODE to OFF in case it's ON
|
||
|
NEW_VALUE=OFF
|
||
|
rm -f $FILE || (echo "Error : cannot delete mode files" && exit 1)
|
||
|
fi
|
||
|
|
||
|
eval $VAR=$NEW_VALUE
|
||
|
}
|
||
|
|
||
|
|
||
|
###########################################################################
|
||
|
# Print command usage
|
||
|
printUsage()
|
||
|
{
|
||
|
echo ""
|
||
|
echo "Usage: `basename $0` [debug] [static] [dynamic] [silent]"
|
||
|
echo " debug -> turn ON/OFF debug compilation"
|
||
|
echo " static -> turn ON/OFF static linking"
|
||
|
echo " dynamic -> turn ON/OFF dynamic linking"
|
||
|
echo " slient -> turn ON/OFF silent compilation"
|
||
|
echo ""
|
||
|
}
|
||
|
|
||
|
|
||
|
###########################################################################
|
||
|
|
||
|
# Get the mode settings
|
||
|
getMode DEBUG_MODE $DEBUG_FILE
|
||
|
#getMode RELEASE_MODE $RELEASE_FILE
|
||
|
getMode STATIC_MODE $STATIC_FILE
|
||
|
getMode DYNAMIC_MODE $DYNAMIC_FILE
|
||
|
getMode SILENT_MODE $SILENT_FILE
|
||
|
|
||
|
# Print the mode values and exit if there is no argument
|
||
|
if test $# -eq 0
|
||
|
then
|
||
|
printMode
|
||
|
exit 0
|
||
|
fi
|
||
|
|
||
|
while test $# -gt 0
|
||
|
do
|
||
|
case $1 in
|
||
|
|
||
|
debug)
|
||
|
setMode DEBUG_MODE $DEBUG_FILE
|
||
|
;;
|
||
|
|
||
|
# release)
|
||
|
# setMode RELEASE_MODE $RELEASE_FILE
|
||
|
# ;;
|
||
|
|
||
|
static)
|
||
|
setMode STATIC_MODE $STATIC_FILE
|
||
|
;;
|
||
|
|
||
|
dynamic)
|
||
|
setMode DYNAMIC_MODE $DYNAMIC_FILE
|
||
|
;;
|
||
|
|
||
|
silent)
|
||
|
setMode SILENT_MODE $SILENT_FILE
|
||
|
;;
|
||
|
|
||
|
*) echo "Error : $1 : Unknown argument"
|
||
|
printUsage
|
||
|
exit 1
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
shift
|
||
|
|
||
|
done
|
||
|
|
||
|
printMode
|
||
|
|
||
|
exit 0
|
||
|
|