diff options
| -rw-r--r-- | CMakeLists.txt | 166 | ||||
| -rwxr-xr-x | Config | 332 | ||||
| -rw-r--r-- | data/CMakeLists.txt | 6 | ||||
| -rw-r--r-- | include/CMakeLists.txt | 69 | ||||
| -rw-r--r-- | include/Makefile | 188 | ||||
| -rw-r--r-- | include/sysconf.h.cmake | 78 | ||||
| -rw-r--r-- | include/version.sh | 8 | ||||
| -rw-r--r-- | lang/CMakeLists.txt | 84 | ||||
| -rw-r--r-- | lang/Makefile | 304 | ||||
| -rw-r--r-- | lang/langcomp.c | 21 | ||||
| -rwxr-xr-x | run-cc.pl | 2 | ||||
| -rw-r--r-- | src/CMakeLists.txt | 114 | ||||
| -rw-r--r-- | src/Makefile | 1401 | ||||
| -rw-r--r-- | src/bin/CMakeLists.txt | 8 | ||||
| -rw-r--r-- | src/bin/anoperc.cmake | 141 | ||||
| -rw-r--r-- | src/core/CMakeLists.txt | 64 | ||||
| -rw-r--r-- | src/core/Makefile | 5479 | ||||
| -rw-r--r-- | src/modules/CMakeLists.txt | 59 | ||||
| -rw-r--r-- | src/modules/Makefile | 568 | ||||
| -rw-r--r-- | src/protocol/CMakeLists.txt | 59 | ||||
| -rw-r--r-- | src/protocol/Makefile | 398 | ||||
| -rw-r--r-- | src/tools/CMakeLists.txt | 57 | ||||
| -rw-r--r-- | src/tools/Makefile | 308 | ||||
| -rw-r--r-- | va_list_check.c | 19 |
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) @@ -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 + + + +#==================================================================== |
