summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt166
-rwxr-xr-xConfig332
-rw-r--r--data/CMakeLists.txt6
-rw-r--r--include/CMakeLists.txt69
-rw-r--r--include/Makefile188
-rw-r--r--include/sysconf.h.cmake78
-rw-r--r--include/version.sh8
-rw-r--r--lang/CMakeLists.txt84
-rw-r--r--lang/Makefile304
-rw-r--r--lang/langcomp.c21
-rwxr-xr-xrun-cc.pl2
-rw-r--r--src/CMakeLists.txt114
-rw-r--r--src/Makefile1401
-rw-r--r--src/bin/CMakeLists.txt8
-rw-r--r--src/bin/anoperc.cmake141
-rw-r--r--src/core/CMakeLists.txt64
-rw-r--r--src/core/Makefile5479
-rw-r--r--src/modules/CMakeLists.txt59
-rw-r--r--src/modules/Makefile568
-rw-r--r--src/protocol/CMakeLists.txt59
-rw-r--r--src/protocol/Makefile398
-rw-r--r--src/tools/CMakeLists.txt57
-rw-r--r--src/tools/Makefile308
-rw-r--r--va_list_check.c19
24 files changed, 9399 insertions, 534 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 000000000..e5ea631fd
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,166 @@
+cmake_minimum_required(VERSION 2.6)
+
+#
+# If the user specifies -DCMAKE_BUILD_TYPE on the command line, take their definition
+# and dump it in the cache along with proper documentation, otherwise set CMAKE_BUILD_TYPE
+# to Debug prior to calling PROJECT()
+#
+IF(CMAKE_BUILD_TYPE)
+ SET(CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE} CACHE STRING "Choose the type of build, options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel.")
+ELSE(CMAKE_BUILD_TYPE)
+ SET(CMAKE_BUILD_TYPE DEBUG CACHE STRING "Choose the type of build, options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel.")
+ENDIF(CMAKE_BUILD_TYPE)
+
+project(Anope CXX)
+enable_language(C)
+
+include(CheckFunctionExists)
+include(CheckIncludeFile)
+include(CheckTypeSize)
+include(CheckCXXCompilerFlag)
+include(CheckLibraryExists)
+
+option(USE_RUN_CC_PL "Use run-cc.pl for building" OFF)
+
+set(CXXFLAGS "${CXXFLAGS} ${CMAKE_CXX_CFLAGS} -Wall -ansi -pedantic -Wshadow -fno-leading-underscore -export-dynamic -I${Anope_SOURCE_DIR}/include -I${Anope_BINARY_DIR}/include -I${Anope_BINARY_DIR}/lang")
+#message(STATUS "CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
+if(CMAKE_BUILD_TYPE)
+ set(CXXFLAGS "${CXXFLAGS} ${CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}}")
+endif(CMAKE_BUILD_TYPE)
+
+if(CMAKE_DL_LIBS)
+ set(LDFLAGS "${LDFLAGS} ${CMAKE_DL_LIBS}")
+endif(CMAKE_DL_LIBS)
+
+#set(MY_COMPILER ${CMAKE_CXX_COMPILER})
+#set(MY_COMP_ARG)
+set(CMAKE_CXX_LINK_EXECUTABLE "<CMAKE_CXX_COMPILER> ${CXXFLAGS} <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> ${LDFLAGS}")
+set(CMAKE_CXX_CREATE_SHARED_MODULE "<CMAKE_CXX_COMPILER> ${CXXFLAGS} <CMAKE_SHARED_LIBRARY_CXX_FLAGS> <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS> <CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG><TARGET_SONAME> -o <TARGET> <OBJECTS> ${LDFLAGS}")
+
+check_cxx_compiler_flag(-pipe HAVE_PIPE_FLAG)
+if(HAVE_PIPE_FLAG)
+ set(CXXFLAGS "${CXXFLAGS} -pipe")
+endif(HAVE_PIPE_FLAG)
+
+check_library_exists(nsl inet_ntoa "" HAVE_NSL_LIB)
+if(HAVE_NSL_LIB)
+ set(LDFLAGS "${LDFLAGS} -lnsl")
+endif(HAVE_NSL_LIB)
+check_library_exists(socket socket "" HAVE_SOCKET_LIB)
+if(HAVE_SOCKET_LIB)
+ set(LDFLAGS "${LDFLAGS} -lsocket")
+endif(HAVE_SOCKET_LIB)
+check_library_exists(resolv res_query "" HAVE_RESOLV_LIB)
+if(HAVE_RESOLV_LIB)
+ set(LDFLAGS "${LDFLAGS} -lresolv")
+endif(HAVE_RESOLV_LIB)
+check_library_exists(bsd revoke "" HAVE_BSD_LIB)
+if(HAVE_BSD_LIB)
+ set(LDFLAGS "${LDFLAGS} -lbsd")
+endif(HAVE_BSD_LIB)
+
+try_run(RUN_VA_LIST_AS_ARRAY COMPILE_VA_LIST_AS_ARRAY
+ ${Anope_SOURCE_DIR} ${Anope_SOURCE_DIR}/va_list_check.c
+)
+if(COMPILE_VA_LIST_AS_ARRAY AND NOT RUN_VA_LIST_AS_ARRAY)
+ set(HAVE_VA_LIST_AS_ARRAY 1)
+endif(COMPILE_VA_LIST_AS_ARRAY AND NOT RUN_VA_LIST_AS_ARRAY)
+
+if(NOT DEFUMASK)
+ if(RUNGROUP)
+ set(DEFUMASK "007")
+ else(RUNGROUP)
+ set(DEFUMASK "077")
+ endif(RUNGROUP)
+endif(NOT DEFUMASK)
+check_include_file(sys/types.h HAVE_SYS_TYPES_H)
+check_include_file(execinfo.h HAVE_BACKTRACE)
+check_function_exists(gethostbyname HAVE_GETHOSTBYNAME)
+check_function_exists(gettimeofday HAVE_GETTIMEOFDAY)
+check_function_exists(setgrent HAVE_SETGRENT)
+check_function_exists(strcasecmp HAVE_STRCASECMP)
+check_function_exists(stricmp HAVE_STRICMP)
+check_include_file(strings.h HAVE_STRINGS_H)
+check_function_exists(strlcat HAVE_STRLCAT)
+check_function_exists(strlcpy HAVE_STRLCPY)
+check_include_file(sys/select.h HAVE_SYS_SELECT_H)
+check_function_exists(umask HAVE_UMASK)
+check_type_size(int16_t INT16_T)
+check_type_size(uint16_t UINT16_T)
+check_type_size(u_int16_t U_INT16_T)
+check_type_size(int32_t INT32_T)
+check_type_size(uint32_t UINT32_T)
+check_type_size(u_int32_t U_INT32_T)
+
+if(BINDIR)
+ set(SERVICES_BIN "${BINDIR}/services")
+else(BINDIR)
+ set(SERVICES_BIN "$ENV{HOME}/services/services")
+ set(BINDIR "$ENV{HOME}/services")
+endif(BINDIR)
+
+if(DATADIR)
+ set(SERVICES_DIR "${DATADIR}")
+ #set(MODULE_PATH "${DATADIR}/modules/")
+else(DATADIR)
+ set(SERVICES_DIR "$ENV{HOME}/services")
+ #set(MODULE_PATH "$ENV{HOME}/services/modules/")
+ set(DATADIR "$ENV{HOME}/services")
+endif(DATADIR)
+
+configure_file(${Anope_SOURCE_DIR}/include/sysconf.h.cmake ${Anope_SOURCE_DIR}/include/sysconf.h)
+configure_file(${Anope_SOURCE_DIR}/src/bin/anoperc.cmake ${Anope_SOURCE_DIR}/src/bin/anoperc)
+
+if(CXXFLAGS)
+ string(STRIP ${CXXFLAGS} CXXFLAGS)
+endif(CXXFLAGS)
+if(LDFLAGS)
+ string(STRIP ${LDFLAGS} LDFLAGS)
+endif(LDFLAGS)
+
+find_program(GREP grep)
+find_program(SH sh)
+find_program(CHGRP chgrp)
+find_program(CHMOD chmod)
+#message(STATUS "grep: ${GREP}")
+find_program(PERL perl)
+if(PERL)
+ if(USE_RUN_CC_PL)
+ #set(MY_COMPILER ${Anope_SOURCE_DIR}/run-cc.pl)
+ #set(MY_COMP_ARG ${CMAKE_CXX_COMPILER})
+ set(CMAKE_CXX_COMPILE_OBJECT "${Anope_SOURCE_DIR}/run-cc.pl <CMAKE_CXX_COMPILER> <DEFINES> <FLAGS> -o <OBJECT> -c <SOURCE>")
+ set(CMAKE_CXX_LINK_EXECUTABLE "${Anope_SOURCE_DIR}/run-cc.pl <CMAKE_CXX_COMPILER> ${CXXFLAGS} <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> ${LDFLAGS}")
+ set(CMAKE_CXX_CREATE_SHARED_MODULE "${Anope_SOURCE_DIR}/run-cc.pl <CMAKE_CXX_COMPILER> ${CXXFLAGS} <CMAKE_SHARED_LIBRARY_CXX_FLAGS> <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS> <CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG><TARGET_SONAME> -o <TARGET> <OBJECTS> ${LDFLAGS}")
+ endif(USE_RUN_CC_PL)
+endif(PERL)
+
+#set(CMAKE_BUILD_TYPE DEBUG)
+#message(STATUS "CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}: ${CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}}")
+#message(STATUS "CMAKE_CXX_COMPILE_OBJECT: ${CMAKE_CXX_COMPILE_OBJECT}")
+#set(CMAKE_CXX_COMPILE_OBJECT "${Anope_SOURCE_DIR}/run-cc.pl <CMAKE_CXX_COMPILER> <DEFINES> <FLAGS> -o <OBJECT> -c <SOURCE>")
+#message(STATUS "CMAKE_CXX_COMPILE_OBJECT: ${CMAKE_CXX_COMPILE_OBJECT}")
+# CMAKE_CXX_COMPILE_OBJECT: <CMAKE_CXX_COMPILER> <DEFINES> <FLAGS> -o <OBJECT> -c <SOURCE>
+# CMAKE_CXX_CREATE_SHARED_LIBRARY: <CMAKE_CXX_COMPILER> <CMAKE_SHARED_LIBRARY_CXX_FLAGS> <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS> <CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG><TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>
+# CMAKE_CXX_CREATE_SHARED_MODULE: <CMAKE_CXX_COMPILER> <CMAKE_SHARED_LIBRARY_CXX_FLAGS> <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS> <CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG><TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>
+# CMAKE_CXX_FLAGS_DEBUG: -g
+# CMAKE_CXX_FLAGS_RELEASE: -O3 -DNDEBUG
+# CMAKE_CXX_LINK_EXECUTABLE: <CMAKE_CXX_COMPILER> <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>
+# CMAKE_CXX_OUTPUT_EXTENSION: .o
+# CMAKE_SHARED_LIBRARY_CXX_FLAGS: -fPIC
+# CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS: -shared
+# CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG: -Wl,-soname,
+
+add_subdirectory(data)
+add_subdirectory(lang)
+add_subdirectory(src)
+add_subdirectory(include)
+
+install(CODE "file(MAKE_DIRECTORY \"${DATADIR}/backups\")")
+install(CODE "file(MAKE_DIRECTORY \"${DATADIR}/logs\")")
+install(CODE "file(MAKE_DIRECTORY \"${DATADIR}/modules/runtime\")")
+if(RUNGROUP)
+ install(CODE "execute_process(COMMAND ${CHMOD} 2775 \"${DATADIR}/backups\")")
+ install(CODE "execute_process(COMMAND ${CHMOD} 2775 \"${DATADIR}/logs\")")
+ install(CODE "execute_process(COMMAND ${CHMOD} 2775 \"${DATADIR}/modules/runtime\")")
+ install(CODE "execute_process(COMMAND ${CHGRP} -R ${RUNGROUP} \"${DATADIR}\")")
+endif(RUNGROUP)
diff --git a/Config b/Config
index ecba7de22..74a32a8aa 100755
--- a/Config
+++ b/Config
@@ -14,73 +14,80 @@
###########################################################################
echo2 () {
- $ECHO2 "$*$ECHO2SUF" # these are defined later
+ $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
+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 config.cache -a -r config.cache -a ! "$IGNORE_CACHE" ] ; then
- echo "Using defaults from config.cache. To ignore, ./Config -nocache"
- echo ""
- . config.cache
- CAN_QUICK="yes"
- else
- CAN_QUICK="no"
- fi
+ if [ -f config.cache -a -r config.cache -a ! "$IGNORE_CACHE" ] ; then
+ echo "Using defaults from config.cache. To ignore, ./Config -nocache"
+ echo ""
+ . config.cache
+ CAN_QUICK="yes"
+ else
+ CAN_QUICK="no"
+ fi
}
-Run_Configure () {
-WITH_BIN=""
-WITH_DATA=""
-WITH_ENC=""
-WITH_RUN=""
-WITH_PERM=""
-WITH_MYSQL=""
-
-if [ "$BINDEST" != "" ] ; then
- WITH_BIN=" --with-bindir=$BINDEST"
- WITH_DATA=" --with-datadir=$DATDEST"
-fi
+Run_CMake () {
+ WITH_BIN=""
+ WITH_DATA=""
+ WITH_RUN=""
+ WITH_PERM=""
+ BUILD_TYPE=""
+ RUN_CC_PL=""
+
+ if [ "$BINDEST" != "" ] ; then
+ WITH_BIN="-DBINDIR:STRING=$BINDEST"
+ WITH_DATA="-DDATADIR:STRING=$DATDEST"
+ fi
-if [ "$DATDEST" != "" ] ; then
- WITH_DATA=" --with-datadir=$DATDEST"
-fi
+ if [ "$DATDEST" != "" ] ; then
+ WITH_DATA="-DDATADIR:STRING=$DATDEST"
+ fi
-if [ "$RUNGROUP" != "" ] ; then
- WITH_RUN=" --with-rungroup=$RUNGROUP"
-fi
+ if [ "$RUNGROUP" != "" ] ; then
+ WITH_RUN="-DRUNGROUP:STRING=$RUNGROUP"
+ fi
-if [ "$UMASK" != "" ] ; then
- WITH_PERM=" --with-permissions=$UMASK"
-fi
+ if [ "$UMASK" != "" ] ; then
+ WITH_PERM="-DDEFUMASK:STRING=$UMASK"
+ fi
-if [ "$MYSQL" != "yes" ] ; then
- WITH_MYSQL=" --without-mysql"
-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
-echo "./configure $WITH_BIN $WITH_DATA $WITH_ENC $WITH_RUN $WITH_PERM $WITH_MYSQL --with-debugsym"
+ echo "cmake $WITH_BIN $WITH_DATA $WITH_RUN $WITH_PERM $BUILD_TYPE $RUN_CC_PL ."
-./configure $WITH_BIN $WITH_DATA $WITH_ENC $WITH_RUN $WITH_PERM $WITH_MYSQL
+ cmake $WITH_BIN $WITH_DATA $WITH_RUN $WITH_PERM $BUILD_TYPE $RUN_CC_PL .
}
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'
+ ECHO2='echo' ; ECHO2SUF='\c'
elif [ "`printf 'a' 2>&1 ; printf 'b' 2>&1`" = "ab" ] ; then
- ECHO2='printf "%s"'
+ ECHO2='printf "%s"'
else
- # oh well...
- ECHO2='echo'
+ # oh well...
+ ECHO2='echo'
fi
export ECHO2 ECHO2SUF
@@ -92,46 +99,49 @@ BINDEST=$HOME/services
DATDEST=$HOME/services
RUNGROUP=
UMASK=
-IRCTYPE="no default"
+DEBUG="no"
+RUN_CC_PL="no"
CAN_QUICK="no"
###########################################################################
# 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 configure"
- 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_Configure
- else
- echo ""
- echo "Can't find cache file (config.cache), aborting..."
- fi
- exit 0
- fi
- shift 1
+ 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_CMake
+ else
+ echo ""
+ echo "Can't find cache file (config.cache), aborting..."
+ fi
+ exit 0
+ fi
+ shift 1
done
###########################################################################
+
if [ ! "$NO_INTRO" ] ; then
- clear
+ clear
. ./version.log
- cat .BANNER | sed "s/CURVER/$VERSION_MAJOR.$VERSION_MINOR.$VERSION_PATCH$VERSION_EXTRA/" | more
- echo ""
+ cat .BANNER | sed "s/CURVER/$VERSION_MAJOR.$VERSION_MINOR.$VERSION_PATCH$VERSION_EXTRA/" | more
+ echo ""
else
- echo ""
+ echo ""
fi
echo "Beginning Services configuration."
@@ -140,8 +150,9 @@ echo ""
###########################################################################
# Load the cache
###########################################################################
+
if [ ! "$IGNORE_CACHE" ] ; then
- Load_Cache
+ Load_Cache
fi
# Ask the user anything we need to know ahead of time.
@@ -188,29 +199,29 @@ echo ""
ok=0
echo "Where do you want the data files to be installed?"
while [ $ok -eq 0 ] ; do
- echo2 "[$DATDEST] "
- if read INPUT ; then : ; else echo "" ; exit 1 ; fi
- if [ ! "$INPUT" ] ; then
- INPUT=$DATDEST
- 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
+ echo2 "[$DATDEST] "
+ if read INPUT ; then : ; else echo "" ; exit 1 ; fi
+ if [ ! "$INPUT" ] ; then
+ INPUT=$DATDEST
+ 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
DATDEST=$INPUT
echo ""
@@ -220,91 +231,102 @@ 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.)"
+ 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.)"
+ 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
+ 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
+ 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
+ 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 ""
####
-ok=0
-DEF=yes
-echo "Allow anope to automatically check for mysql libaries?"
-echo "unless you get errors with make, there is no need to"
-echo "change this setting."
-while [ $ok -eq 0 ] ; do
- echo2 "[$DEF] "
- if read INPUT ; then : ; else echo "" ; exit 1 ; fi
- if [ ! "$INPUT" ] ; then
- INPUT=$DEF
- fi
- case $INPUT in
- n*|N*)
- MYSQL=
- ok=1
- ;;
- y*|Y*)
- MYSQL="yes"
- ok=1
- ;;
- *)
- echo "Please enter 'yes' or 'no'."
- ;;
- esac
-done
+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 [ "$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 run,"
+echo "respectively. This relies on Perl being installed, so if you say yes"
+echo "to this without Perl, the option will be ignored."
+echo "Would you like to utilize run-cc.pl?"
+echo2 "[$TEMP_YN] "
+read YN
+if [ "$YN" ] ; then
+ if [ "$YN" = "y" ] ; then
+ RUN_CC_PL="yes"
+ else
+ RUN_CC_PL="no"
+ fi
+fi
+echo ""
+
+####
################################################################################
# Store values
################################################################################
+
echo2 "Saving configuration results in config.cache... "
cat <<EOT >config.cache
@@ -312,9 +334,8 @@ BINDEST="$BINDEST"
DATDEST="$DATDEST"
RUNGROUP="$RUNGROUP"
UMASK=$UMASK
-IRCTYPE="$IRCTYPE"
-IRCTYPE_DEF="$IRCTYPE_DEF"
-MYSQL="$MYSQL"
+DEBUG="$DEBUG"
+RUN_CC_PL="$RUN_CC_PL"
EOT
echo "done."
@@ -322,4 +343,5 @@ echo "done."
################################################################################
# Build the configure string
################################################################################
-Run_Configure
+
+Run_CMake
diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt
new file mode 100644
index 000000000..cecdad423
--- /dev/null
+++ b/data/CMakeLists.txt
@@ -0,0 +1,6 @@
+file(GLOB DATA RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*")
+list(REMOVE_ITEM DATA CMakeLists.txt CMakeFiles Makefile cmake_install.cmake)
+install(FILES ${DATA}
+ DESTINATION "${DATADIR}"
+)
+
diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
new file mode 100644
index 000000000..8deeef120
--- /dev/null
+++ b/include/CMakeLists.txt
@@ -0,0 +1,69 @@
+# NOTE: Need a better dependency system here!
+
+set(HEADERS_REL commands.h extern.h messages.h module.h modules.h pseudo.h services.h)
+
+set(commands.h_HEADERS modules.h)
+set(extern.h_HEADERS slist.h)
+set(messages.h_HEADERS modules.h)
+set(module.h_HEADERS services.h commands.h ${Anope_BINARY_DIR}/lang/language.h modules.h ${CMAKE_CURRENT_BINARY_DIR}/version.h)
+set(modules.h_HEADERS services.h)
+set(pseudo.h_HEADERS commands.h ${Anope_BINARY_DIR}/lang/language.h timeout.h encrypt.h datafiles.h slist.h)
+set(services.h_HEADERS sysconf.h config.h sockets.h defs.h slist.h events.h bots.h account.h regchannel.h users.h extern.h configreader.h)
+
+add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/version.h
+ #COMMAND ${CMAKE_COMMAND} -E copy ${Anope_SOURCE_DIR}/version.log ../
+ COMMAND ${SH} ${CMAKE_CURRENT_SOURCE_DIR}/version.sh ${Anope_SOURCE_DIR}/version.log
+ #COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/version.h ${CMAKE_CURRENT_SOURCE_DIR}/
+ #COMMAND ${CMAKE_COMMAND} -E remove ../version.log
+ MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/version.sh DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/services.h ${CMAKE_CURRENT_SOURCE_DIR}/pseudo.h ${CMAKE_CURRENT_SOURCE_DIR}/messages.h ${SRC_SRCS}
+# MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/version.sh DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/services.h ${CMAKE_CURRENT_SOURCE_DIR}/pseudo.h ${CMAKE_CURRENT_SOURCE_DIR}/messages.h
+)
+
+foreach(HEADER ${HEADERS_REL})
+ add_custom_command(OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/${HEADER}
+ COMMAND ${CMAKE_COMMAND} -E touch_nocreate ${CMAKE_CURRENT_SOURCE_DIR}/${HEADER}
+ )
+ set(HEADERS_FULL ${HEADERS_FULL} ${CMAKE_CURRENT_SOURCE_DIR}/${HEADER})
+ set(HEADERS)
+ if(${HEADER}_HEADERS)
+ foreach(HEADER ${${HEADER}_HEADERS})
+ string(SUBSTRING ${HEADER} 0 1 FIRST_CHAR)
+ if(FIRST_CHAR STREQUAL "/")
+ set(HEADERS ${HEADERS} ${HEADER})
+ else(FIRST_CHAR STREQUAL "/")
+ set(HEADERS ${HEADERS} ${Anope_SOURCE_DIR}/include/${HEADER})
+ endif(FIRST_CHAR STREQUAL "/")
+ endforeach(HEADER)
+ endif(${HEADER}_HEADERS)
+ if(HEADERS)
+ set_source_files_properties(${HEADER} PROPERTIES OBJECT_DEPENDS "${HEADERS}")
+ endif(HEADERS)
+endforeach(HEADER)
+
+set(HEADERS_FULL ${HEADERS_FULL} ${CMAKE_CURRENT_BINARY_DIR}/version.h)
+message(STATUS "HEADERS_FULL: ${HEADERS_FULL}")
+
+#add_custom_command(OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/services.h
+# COMMAND ${CMAKE_COMMAND} -E touch_nocreate ${CMAKE_CURRENT_SOURCE_DIR}/services.h
+# MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/extern.h DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/sysconf.h ${CMAKE_CURRENT_SOURCE_DIR}/config.h
+#)
+#add_custom_command(OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/extern.h
+# COMMAND ${CMAKE_COMMAND} -E touch_nocreate ${CMAKE_CURRENT_SOURCE_DIR}/extern.h
+# MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/slist.h
+#)
+#add_custom_command(OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/pseudo.h
+# COMMAND ${CMAKE_COMMAND} -E touch_nocreate ${CMAKE_CURRENT_SOURCE_DIR}/pseudo.h
+# MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/timeout.h DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/commands.h ${CMAKE_CURRENT_SOURCE_DIR}/encrypt.h ${CMAKE_CURRENT_SOURCE_DIR}/datafiles.h ${CMAKE_CURRENT_SOURCE_DIR}/slist.h
+#)
+#add_dependencies(${CMAKE_CURRENT_SOURCE_DIR}/version.h src_srcs)
+#add_custom_target(include_version_h ALL DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/version.h)
+#add_custom_target(include_version_h DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/version.h)
+#add_dependencies(include_version_h src_srcs)
+
+#add_custom_target(include ALL)
+#add_custom_target(include)
+#add_custom_target(headers DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/version.h ${CMAKE_CURRENT_SOURCE_DIR}/services.h ${CMAKE_CURRENT_SOURCE_DIR}/extern.h ${CMAKE_CURRENT_SOURCE_DIR}/pseudo.h)
+add_custom_target(headers DEPENDS ${HEADERS_FULL})
+#add_dependencies(include include_version_h)
+
+set_directory_properties(PROPERTIES CLEAN_NO_CUSTOM yes ADDITIONAL_MAKE_CLEAN_FILES "${CMAKE_CURRENT_BINARY_DIR}/version.h ${CMAKE_CURRENT_BINARY_DIR}/language.h")
diff --git a/include/Makefile b/include/Makefile
index b5641c71b..0f6f17e9b 100644
--- a/include/Makefile
+++ b/include/Makefile
@@ -1,20 +1,182 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 2.6
-all: services.h extern.h pseudo.h version.h
+# Default target executed when no arguments are given to make.
+default_target: all
+.PHONY : default_target
-version.h: Makefile version.sh services.h pseudo.h messages.h $(SRCS)
- sh version.sh
+#=============================================================================
+# Special targets provided by cmake.
-services.h: sysconf.h config.h extern.h
- touch $@
+# Disable implicit rules so canoncical targets will work.
+.SUFFIXES:
-extern.h: slist.h
- touch $@
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
-pseudo.h: commands.h timeout.h encrypt.h datafiles.h slist.h
- touch $@
+.SUFFIXES: .hpux_make_needs_suffix_list
-clean:
- (rm -f language.h)
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+# A target that is always out of date.
+cmake_force:
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/local/bin/cmake
+
+# The command to remove a file.
+RM = /usr/local/bin/cmake -E remove -f
+
+# The program to use to edit the cache.
+CMAKE_EDIT_COMMAND = /usr/local/bin/ccmake
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /celes/anope
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /celes/anope
+
+#=============================================================================
+# Targets provided globally by CMake.
+
+# Special rule for the target edit_cache
+edit_cache:
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..."
+ cd /celes/anope/include && /usr/local/bin/ccmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : edit_cache
+
+# Special rule for the target edit_cache
+edit_cache/fast: edit_cache
+.PHONY : edit_cache/fast
+
+# Special rule for the target install
+install: preinstall
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+ cd /celes/anope/include && /usr/local/bin/cmake -P cmake_install.cmake
+.PHONY : install
+
+# Special rule for the target install
+install/fast: preinstall/fast
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+ cd /celes/anope/include && /usr/local/bin/cmake -P cmake_install.cmake
+.PHONY : install/fast
+
+# Special rule for the target install/local
+install/local: preinstall
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+ cd /celes/anope/include && /usr/local/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local
+
+# Special rule for the target install/local
+install/local/fast: install/local
+.PHONY : install/local/fast
+
+# Special rule for the target install/strip
+install/strip: preinstall
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+ cd /celes/anope/include && /usr/local/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip
+
+# Special rule for the target install/strip
+install/strip/fast: install/strip
+.PHONY : install/strip/fast
+
+# Special rule for the target list_install_components
+list_install_components:
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\""
+.PHONY : list_install_components
+
+# Special rule for the target list_install_components
+list_install_components/fast: list_install_components
+.PHONY : list_install_components/fast
+
+# Special rule for the target rebuild_cache
+rebuild_cache:
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
+ cd /celes/anope/include && /usr/local/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : rebuild_cache
+
+# Special rule for the target rebuild_cache
+rebuild_cache/fast: rebuild_cache
+.PHONY : rebuild_cache/fast
+
+# The main all target
+all: cmake_check_build_system
+ cd /celes/anope && $(CMAKE_COMMAND) -E cmake_progress_start /celes/anope/CMakeFiles /celes/anope/include/CMakeFiles/progress.make
+ cd /celes/anope && $(MAKE) -f CMakeFiles/Makefile2 include/all
+ $(CMAKE_COMMAND) -E cmake_progress_start /celes/anope/CMakeFiles 0
+.PHONY : all
+
+# The main clean target
+clean:
+ cd /celes/anope && $(MAKE) -f CMakeFiles/Makefile2 include/clean
+.PHONY : clean
+
+# The main clean target
+clean/fast: clean
+.PHONY : clean/fast
+
+# Prepare targets for installation.
+preinstall: all
+ cd /celes/anope && $(MAKE) -f CMakeFiles/Makefile2 include/preinstall
+.PHONY : preinstall
+
+# Prepare targets for installation.
+preinstall/fast:
+ cd /celes/anope && $(MAKE) -f CMakeFiles/Makefile2 include/preinstall
+.PHONY : preinstall/fast
+
+# clear depends
+depend:
+ cd /celes/anope && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
+.PHONY : depend
+
+# Convenience name for target.
+include/CMakeFiles/headers.dir/rule:
+ cd /celes/anope && $(MAKE) -f CMakeFiles/Makefile2 include/CMakeFiles/headers.dir/rule
+.PHONY : include/CMakeFiles/headers.dir/rule
+
+# Convenience name for target.
+headers: include/CMakeFiles/headers.dir/rule
+.PHONY : headers
+
+# fast build rule for target.
+headers/fast:
+ cd /celes/anope && $(MAKE) -f include/CMakeFiles/headers.dir/build.make include/CMakeFiles/headers.dir/build
+.PHONY : headers/fast
+
+# Help Target
+help:
+ @echo "The following are some of the valid targets for this Makefile:"
+ @echo "... all (the default if no target is provided)"
+ @echo "... clean"
+ @echo "... depend"
+ @echo "... edit_cache"
+ @echo "... headers"
+ @echo "... install"
+ @echo "... install/local"
+ @echo "... install/strip"
+ @echo "... list_install_components"
+ @echo "... rebuild_cache"
+.PHONY : help
+
+
+
+#====================================================================