mirror of
https://github.com/anope/anope.git
synced 2026-06-12 18:54:47 +02:00
fb9f41b3e5
Added a search path option to the Config script for cmake to use when finding libraries for modules or for gettext. Fixed m_mysql and m_ssl to work under Windows, made the Windows Config program remember the last used options, and fixed Windows release builds.
358 lines
8.1 KiB
Bash
Executable File
358 lines
8.1 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# Configuration script for Services.
|
|
#
|
|
# Anope (c) 2003-2010 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=""
|
|
RUN_CC_PL=""
|
|
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_RUN_CC_PL" = "yes" ] ; then
|
|
RUN_CC_PL="-DUSE_RUN_CC_PL:BOOLEAN=ON"
|
|
else
|
|
RUN_CC_PL="-DUSE_RUN_CC_PL:BOOLEAN=OFF"
|
|
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 $RUN_CC_PL $EXTRA_CONFIG_ARGS $REAL_SOURCE_DIR"
|
|
|
|
cmake $GEN_TYPE $WITH_INST $WITH_RUN $WITH_PERM $BUILD_TYPE $RUN_CC_PL $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="yes"
|
|
USE_RUN_CC_PL="no"
|
|
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
|
|
|
|
###########################################################################
|
|
|
|
if [ ! "$NO_INTRO" ] ; then
|
|
case `uname -s` in
|
|
MINGW*)
|
|
PAGER=less
|
|
;;
|
|
*)
|
|
PAGER=more
|
|
clear
|
|
;;
|
|
esac
|
|
. $SOURCE_DIR/src/version.sh
|
|
if [ -d .git ] ; then
|
|
VERSION=`git describe --tags`
|
|
echo "#define VERSION_BUILD `echo "$VERSION" | cut -d'-' -f2`" > include/version.h
|
|
echo "#define VERSION_EXTRA \"-`echo "$VERSION" | cut -d'-' -f3`$VERSION_EXTRA\"" >> include/version.h
|
|
fi
|
|
cat $SOURCE_DIR/.BANNER | sed "s/CURVER/$VERSION/" | 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 do you want the binaries to 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_RUN_CC_PL" = "yes" ] ; then
|
|
TEMP_YN="y"
|
|
fi
|
|
echo "You can optionally have the build run through run-cc.pl, which will"
|
|
echo "cause warnings and errors (if any) to be colored yellow and red,"
|
|
echo "respectively. This relies on Perl being installed, so if you say yes"
|
|
echo "to this without Perl, the option will be ignored."
|
|
echo "NOTE: If you are using MinGW, it is NOT recommended to say yes to"
|
|
echo "this, it may fail."
|
|
echo "Would you like to utilize run-cc.pl?"
|
|
echo2 "[$TEMP_YN] "
|
|
read YN
|
|
if [ "$YN" ] ; then
|
|
if [ "$YN" = "y" ] ; then
|
|
USE_RUN_CC_PL="yes"
|
|
else
|
|
USE_RUN_CC_PL="no"
|
|
fi
|
|
fi
|
|
echo ""
|
|
|
|
####
|
|
|
|
echo "Are there any extra arguments you wish to pass to cmake?"
|
|
echo "You may only need to do this if cmake is unable to locate"
|
|
echo "missing dependencies without hints."
|
|
echo "You can do this by: -DEXTRA_INCLUDE:STRING=/path/to/files;/path/to/more/files"
|
|
echo2 "[$EXTRA_CONFIG_ARGS] "
|
|
if read INPUT ; then : ; else echo "" ; exit 1 ; fi
|
|
if [ "$INPUT" ] ; then
|
|
EXTRA_CONFIG_ARGS=$INPUT
|
|
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_RUN_CC_PL="$USE_RUN_CC_PL"
|
|
EXTRA_CONFIG_ARGS="$EXTRA_CONFIG_ARGS"
|
|
EOT
|
|
echo "done."
|
|
|
|
|
|
################################################################################
|
|
# Build the build system string
|
|
################################################################################
|
|
|
|
Run_Build_System
|