mirror of
https://github.com/anope/anope.git
synced 2026-06-25 18:06:36 +02:00
f118960a25
find include/ src/ lang/ docs/ modules/ *.* Config -exec sed -i 's/-20.. Anope Team/-2014 Anope Team/i' {} \;
Added missing copyright headers to files that didn't have it yet.
Fixed some whitespace and blank lines along the way.
411 lines
9.3 KiB
Bash
Executable File
411 lines
9.3 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# Configuration script for Services.
|
|
#
|
|
# Anope (c) 2003-2016 Anope Team
|
|
# Contact us at team@anope.org
|
|
#
|
|
# This program is free but copyrighted software; see the file COPYING for
|
|
# details.
|
|
#
|
|
# Based on the original code of Epona by PegSoft.
|
|
# Based on the original code of Services by Andy Church.
|
|
#
|
|
###########################################################################
|
|
|
|
echo2 () {
|
|
$ECHO2 "$*$ECHO2SUF" # these are defined later
|
|
}
|
|
|
|
exists () { # because some shells don't have test -e
|
|
if [ -f $1 -o -d $1 -o -p $1 -o -c $1 -o -b $1 ] ; then
|
|
return 0
|
|
else
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
Load_Cache () {
|
|
if [ -f $SOURCE_DIR/config.cache -a -r $SOURCE_DIR/config.cache -a ! "$IGNORE_CACHE" ] ; then
|
|
echo "Using defaults from config.cache. To ignore, $SOURCE_DIR/Config -nocache"
|
|
echo ""
|
|
. $SOURCE_DIR/config.cache
|
|
CAN_QUICK="yes"
|
|
else
|
|
CAN_QUICK="no"
|
|
fi
|
|
}
|
|
|
|
Run_Build_System () {
|
|
WITH_INST=""
|
|
WITH_RUN=""
|
|
WITH_PERM=""
|
|
EXTRA_INCLUDE=""
|
|
EXTRA_LIBS=""
|
|
GEN_TYPE=""
|
|
|
|
if [ "$INSTDIR" != "" ] ; then
|
|
WITH_INST="-DINSTDIR:STRING=$INSTDIR"
|
|
fi
|
|
|
|
if [ "$RUNGROUP" != "" ] ; then
|
|
WITH_RUN="-DRUNGROUP:STRING=$RUNGROUP"
|
|
fi
|
|
|
|
if [ "$UMASK" != "" ] ; then
|
|
WITH_PERM="-DDEFUMASK:STRING=$UMASK"
|
|
fi
|
|
|
|
if [ "$DEBUG" = "yes" ] ; then
|
|
BUILD_TYPE="-DCMAKE_BUILD_TYPE:STRING=DEBUG"
|
|
else
|
|
BUILD_TYPE="-DCMAKE_BUILD_TYPE:STRING=RELEASE"
|
|
fi
|
|
|
|
if [ "$USE_PCH" = "yes" ] ; then
|
|
PCH="-DUSE_PCH:BOOLEAN=ON"
|
|
else
|
|
PCH="-DUSE_PCH:BOOLEAN=OFF"
|
|
fi
|
|
|
|
if [ "$EXTRA_INCLUDE_DIRS" != "" ] ; then
|
|
EXTRA_INCLUDE="-DEXTRA_INCLUDE:STRING=$EXTRA_INCLUDE_DIRS"
|
|
fi
|
|
|
|
if [ "$EXTRA_LIB_DIRS" != "" ] ; then
|
|
EXTRA_LIBS="-DEXTRA_LIBS:STRING=$EXTRA_LIB_DIRS"
|
|
fi
|
|
|
|
case `uname -s` in
|
|
MINGW*)
|
|
GEN_TYPE="-G\"MSYS Makefiles\""
|
|
;;
|
|
esac
|
|
|
|
if [ "$SOURCE_DIR" = "." ] ; then
|
|
pwdsave=`pwd`
|
|
test -d build || mkdir build
|
|
cd "build"
|
|
REAL_SOURCE_DIR=".."
|
|
else
|
|
REAL_SOURCE_DIR="$SOURCE_DIR"
|
|
fi
|
|
|
|
echo "cmake $GEN_TYPE $WITH_INST $WITH_RUN $WITH_PERM $BUILD_TYPE $PCH $EXTRA_INCLUDE $EXTRA_LIBS $EXTRA_CONFIG_ARGS $REAL_SOURCE_DIR"
|
|
|
|
cmake $GEN_TYPE $WITH_INST $WITH_RUN $WITH_PERM $BUILD_TYPE $PCH $EXTRA_INCLUDE $EXTRA_LIBS $EXTRA_CONFIG_ARGS $REAL_SOURCE_DIR
|
|
|
|
echo ""
|
|
if [ "$SOURCE_DIR" = "." ] ; then
|
|
echo "Now cd build, then run make to build Anope."
|
|
cd "$pwdsave"
|
|
else
|
|
echo "Now run make to build Anope."
|
|
fi
|
|
}
|
|
|
|
ECHO2SUF=''
|
|
if [ "`echo -n a ; echo -n b`" = "ab" ] ; then
|
|
ECHO2='echo -n'
|
|
elif [ "`echo 'a\c' ; echo 'b\c'`" = "ab" ] ; then
|
|
ECHO2='echo' ; ECHO2SUF='\c'
|
|
elif [ "`printf 'a' 2>&1 ; printf 'b' 2>&1`" = "ab" ] ; then
|
|
ECHO2='printf "%s"'
|
|
else
|
|
# oh well...
|
|
ECHO2='echo'
|
|
fi
|
|
export ECHO2 ECHO2SUF
|
|
|
|
###########################################################################
|
|
# Init values
|
|
###########################################################################
|
|
|
|
INSTDIR=$HOME/services
|
|
RUNGROUP=
|
|
UMASK=
|
|
DEBUG="no"
|
|
USE_PCH="no"
|
|
EXTRA_INCLUDE_DIRS=
|
|
EXTRA_LIB_DIRS=
|
|
EXTRA_CONFIG_ARGS=
|
|
CAN_QUICK="no"
|
|
SOURCE_DIR=`dirname $0`
|
|
|
|
###########################################################################
|
|
# Check out the options
|
|
###########################################################################
|
|
|
|
while [ $# -ge 1 ] ; do
|
|
if [ $1 = "--help" ] ; then
|
|
echo "Config utility for Anope"
|
|
echo "------------------------"
|
|
echo "Syntax: ./Config [options]"
|
|
echo "-nocache Ignore settings saved in config.cache"
|
|
echo "-nointro Skip intro (disclaimer, etc)"
|
|
echo "-quick Skip questions, go straight to cmake"
|
|
exit 0
|
|
elif [ $1 = "-nocache" ] ; then
|
|
IGNORE_CACHE="1"
|
|
elif [ $1 = "-nointro" ] ; then
|
|
NO_INTRO="1"
|
|
elif [ $1 = "-quick" -o $1 = "-q" ] ; then
|
|
Load_Cache
|
|
if [ "$CAN_QUICK" = "yes" ] ; then
|
|
Run_Build_System
|
|
else
|
|
echo ""
|
|
echo "Can't find cache file (config.cache), aborting..."
|
|
fi
|
|
exit 0
|
|
fi
|
|
shift 1
|
|
done
|
|
|
|
###########################################################################
|
|
# Check for CMake and (optionally) install it
|
|
###########################################################################
|
|
|
|
which cmake > /dev/null
|
|
if [ $? -ne 0 ] ; then
|
|
clear
|
|
echo "Anope requires CMake 2.4 or newer, which can be downloaded at http://cmake.org or through your system's package manager."
|
|
echo "If you have installed CMake already, ensure it is in your PATH environment variable."
|
|
exit 0
|
|
fi
|
|
|
|
###########################################################################
|
|
|
|
if [ ! "$NO_INTRO" ] ; then
|
|
case `uname -s` in
|
|
MINGW*)
|
|
PAGER=less
|
|
;;
|
|
*)
|
|
PAGER=more
|
|
clear
|
|
;;
|
|
esac
|
|
. $SOURCE_DIR/src/version.sh
|
|
cat $SOURCE_DIR/.BANNER | sed "s/CURVER/$VERSION_MAJOR.$VERSION_MINOR.$VERSION_PATCH$VERSION_EXTRA/" | sed "s@SOURCE_DIR@$SOURCE_DIR@" | $PAGER
|
|
echo ""
|
|
else
|
|
echo ""
|
|
fi
|
|
|
|
echo "Beginning Services configuration."
|
|
echo ""
|
|
|
|
###########################################################################
|
|
# Load the cache
|
|
###########################################################################
|
|
|
|
if [ ! "$IGNORE_CACHE" ] ; then
|
|
Load_Cache
|
|
fi
|
|
|
|
# Ask the user anything we need to know ahead of time.
|
|
|
|
export ok INPUT
|
|
|
|
####
|
|
|
|
ok=0
|
|
echo "In what directory should Anope be installed?"
|
|
while [ $ok -eq 0 ] ; do
|
|
echo2 "[$INSTDIR] "
|
|
if read INPUT ; then : ; else echo "" ; exit 1 ; fi
|
|
if [ ! "$INPUT" ] ; then
|
|
INPUT=$INSTDIR
|
|
fi
|
|
if [ ! -d "$INPUT" ] ; then
|
|
if exists "$INPUT" ; then
|
|
echo "$INPUT exists, but is not a directory!"
|
|
else
|
|
echo "$INPUT does not exist. Create it?"
|
|
echo2 "[y] "
|
|
read YN
|
|
if [ "$YN" != "n" ] ; then
|
|
if mkdir -p $INPUT ; then
|
|
ok=1
|
|
fi
|
|
fi
|
|
fi
|
|
elif exists "$INPUT/include/services.h" ; then
|
|
echo "You cannot use the Services source directory as a target directory."
|
|
else
|
|
ok=1
|
|
fi
|
|
done
|
|
INSTDIR=$INPUT
|
|
echo ""
|
|
|
|
####
|
|
|
|
OLD_RUNGROUP="$RUNGROUP"
|
|
if [ "$RUNGROUP" ] ; then
|
|
echo "Which group should all Services data files be owned by? (If Services"
|
|
echo "should not force files to be owned by a particular group, type \"none\""
|
|
echo "(without the quotes) and press Return.)"
|
|
else
|
|
echo "Which group should all Services data files be owned by? (If Services"
|
|
echo "should not force files to be owned by a particular group, just press"
|
|
echo "Return.)"
|
|
fi
|
|
echo2 "[$RUNGROUP] "
|
|
if read INPUT ; then : ; else echo "" ; exit 1 ; fi
|
|
if [ "$INPUT" ] ; then
|
|
if [ "$INPUT" = "none" ] ; then
|
|
RUNGROUP=""
|
|
else
|
|
RUNGROUP="$INPUT"
|
|
fi
|
|
fi
|
|
echo ""
|
|
|
|
####
|
|
|
|
if [ ! "$UMASK" -o "$RUNGROUP" != "$OLD_RUNGROUP" ] ; then
|
|
if [ "$RUNGROUP" ] ; then
|
|
UMASK=007
|
|
else
|
|
UMASK=077
|
|
fi
|
|
fi
|
|
|
|
ok=0
|
|
echo "What should the default umask for data files be (in octal)?"
|
|
echo "(077 = only accessible by owner; 007 = accessible by owner and group)"
|
|
while [ $ok -eq 0 ] ; do
|
|
echo2 "[$UMASK] "
|
|
if read INPUT ; then : ; else echo "" ; exit 1 ; fi
|
|
if [ ! "$INPUT" ] ; then
|
|
INPUT=$UMASK
|
|
fi
|
|
if [ `echo "$INPUT" | grep -c '[^0-7]'` -gt 0 ] ; then
|
|
echo "$UMASK is not a valid octal number!"
|
|
else
|
|
if [ "`echo $INPUT | cut -c1`" != "0" ] ; then
|
|
INPUT=0$INPUT
|
|
fi
|
|
ok=1
|
|
fi
|
|
done
|
|
UMASK=$INPUT
|
|
echo ""
|
|
|
|
####
|
|
|
|
TEMP_YN="n"
|
|
if [ "$DEBUG" = "yes" ] ; then
|
|
TEMP_YN="y"
|
|
fi
|
|
echo "Would you like to build a debug version of Anope?"
|
|
echo2 "[$TEMP_YN] "
|
|
read YN
|
|
if [ "$YN" ] ; then
|
|
if [ "$YN" = "y" ] ; then
|
|
DEBUG="yes"
|
|
else
|
|
DEBUG="no"
|
|
fi
|
|
fi
|
|
echo ""
|
|
|
|
####
|
|
|
|
TEMP_YN="n"
|
|
if [ "$USE_PCH" = "yes" ] ; then
|
|
TEMP_YN="y"
|
|
fi
|
|
echo "Do you want to build using precompiled headers? This can speed up"
|
|
echo "the build, but uses more disk space."
|
|
echo2 "[$TEMP_YN] "
|
|
read YN
|
|
if [ "$YN" ] ; then
|
|
if [ "$YN" = "y" ] ; then
|
|
USE_PCH="yes"
|
|
else
|
|
USE_PCH="no"
|
|
fi
|
|
fi
|
|
echo ""
|
|
|
|
####
|
|
|
|
echo "Are there any extra include directories you wish to use?"
|
|
echo "You may only need to do this if CMake is unable to locate"
|
|
echo "missing dependencies without hints."
|
|
echo "Separate directories with semicolons."
|
|
echo "If you need no extra include directories, enter NONE in all caps."
|
|
echo2 "[$EXTRA_INCLUDE_DIRS] "
|
|
if read INPUT ; then : ; else echo "" ; exit 1 ; fi
|
|
if [ "$INPUT" ] ; then
|
|
if [ "$INPUT" = "NONE" ] ; then
|
|
EXTRA_INCLUDE_DIRS=""
|
|
else
|
|
EXTRA_INCLUDE_DIRS=$INPUT
|
|
fi
|
|
fi
|
|
echo ""
|
|
|
|
####
|
|
|
|
echo "Are there any extra library directories you wish to use?"
|
|
echo "You may only need to do this if CMake is unable to locate"
|
|
echo "missing dependencies without hints."
|
|
echo "Separate directories with semicolons."
|
|
echo "If you need no extra library directories, enter NONE in all caps."
|
|
echo2 "[$EXTRA_LIB_DIRS] "
|
|
if read INPUT ; then : ; else echo "" ; exit 1 ; fi
|
|
if [ "$INPUT" ] ; then
|
|
if [ "$INPUT" = "NONE" ] ; then
|
|
EXTRA_LIB_DIRS=""
|
|
else
|
|
EXTRA_LIB_DIRS=$INPUT
|
|
fi
|
|
fi
|
|
echo ""
|
|
|
|
####
|
|
|
|
echo "Are there any extra arguments you wish to pass to CMake?"
|
|
echo "If you need no extra arguments to CMake, enter NONE in all caps."
|
|
echo2 "[$EXTRA_CONFIG_ARGS] "
|
|
if read INPUT ; then : ; else echo "" ; exit 1 ; fi
|
|
if [ "$INPUT" ] ; then
|
|
if [ "$INPUT" = "NONE" ] ; then
|
|
EXTRA_CONFIG_ARGS=""
|
|
else
|
|
EXTRA_CONFIG_ARGS=$INPUT
|
|
fi
|
|
fi
|
|
echo ""
|
|
|
|
####
|
|
|
|
################################################################################
|
|
# Store values
|
|
################################################################################
|
|
|
|
echo2 "Saving configuration results in config.cache... "
|
|
|
|
cat <<EOT >$SOURCE_DIR/config.cache
|
|
INSTDIR="$INSTDIR"
|
|
RUNGROUP="$RUNGROUP"
|
|
UMASK=$UMASK
|
|
DEBUG="$DEBUG"
|
|
USE_PCH="$USE_PCH"
|
|
EXTRA_INCLUDE_DIRS="$EXTRA_INCLUDE_DIRS"
|
|
EXTRA_LIB_DIRS="$EXTRA_LIB_DIRS"
|
|
EXTRA_CONFIG_ARGS="$EXTRA_CONFIG_ARGS"
|
|
EOT
|
|
echo "done."
|
|
|
|
|
|
################################################################################
|
|
# Build the build system string
|
|
################################################################################
|
|
|
|
Run_Build_System
|