X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=configure;h=eed6353c2239bf6e8885450b022a662c8eb3826a;hb=deb290af0f0200d530ba10e4c6c3f6a45b4971c5;hp=a2312464f218bc3e669a69da2e4398ce66e202ad;hpb=3f1bff4b2d95443156a26237e0a870bacba3fc09;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/configure b/configure index a2312464f..eed6353c2 100755 --- a/configure +++ b/configure @@ -44,7 +44,6 @@ $config{STATIC_LINK} = "no"; # are doing static modules? chomp($config{MAX_CLIENT_T} = `sh -c \"ulimit -n\"`); # FD Limit chomp($config{MAX_DESCRIPTORS} = `sh -c \"ulimit -n\"`); # Hard FD Limit chomp($config{GCCVER} = `g++ -dumpversion | cut -c 1`); # Major GCC Version -chomp($config{GCC34} = `g++ -dumpversion | cut -c 3`); # Minor GCC Version chomp($config{OSNAME} = `/bin/uname`); # Operating System Name $config{CC} = "g++"; # C++ compiler $config{MAKEORDER} = "ircd mods"; # build order @@ -63,7 +62,7 @@ $config{HAS_OPENSSL} = $1; if ($config{GCCVER} eq "") { print "g++ was not found! You require g++ (the GNU C++ compiler, part of GCC) to build InspIRCd!\n"; - return 0; + exit; } # Minihack! Convert Cygwin to 'Cyg-Static' so i can @@ -106,12 +105,32 @@ if ($arg eq "-update") { getosflags(); $has_epoll = $config{HAS_EPOLL}; $has_kqueue = $config{HAS_KQUEUE}; - writefiles(); + writefiles(1); print "Complete.\n"; exit; } } +if ($arg eq "-modupdate") { + # Does the cache file exist? + if (!getcache()) { + # No, No it doesn't.. *BASH* + print "You have not run ./configure before. Please do this before trying to run the update script.\n"; + exit 0; + } else { + # We've Loaded the cache file and all our variables.. + print "Updating Files..\n"; + getosflags(); + $has_epoll = $config{HAS_EPOLL}; + $has_kqueue = $config{HAS_KQUEUE}; + writefiles(0); + print "Complete.\n"; + exit; + } +} + + + if ($arg eq "-svnupdate") { my $fail = 0; open(FH,"<.svn/entries") or $fail = 1; @@ -127,28 +146,6 @@ if ($arg eq "-svnupdate") { exit; } -if ($arg eq "-modupdate") { - # Does the cache file exist? - if (!getcache()) { - # No, No it doesn't.. *BASH* - print "You have not run ./configure before. Please do this before trying to run the update script.\n"; - exit 0; - } else { - # We've Loaded the cache file and all our variables.. - print "Updating Files..\n"; - getosflags(); - $has_epoll = $config{HAS_EPOLL}; - $has_kqueue = $config{HAS_KQUEUE}; - if ($config{STATIC_LINK} eq "yes") { - write_static_modules_makefile(); - } else { - write_dynamic_modules_makefile(); - } - print "Complete.\n"; - exit; - } -} - print "Checking for cache from previous configure...\n"; getcache(); print "Checking operating system version...\n"; @@ -305,7 +302,7 @@ if ($rev eq "r0") { print ".\n\n"; $config{CHANGE_COMPILER} = "n"; -print "I have detected the following compiler: \033[1;32m$config{CC}\033[0m (version \033[1;32m$config{GCCVER}.$config{GCC34}\033[0m)\n"; +print "I have detected the following compiler: \033[1;32m$config{CC}\033[0m (version \033[1;32m$config{GCCVER}.x\033[0m)\n"; while (($config{GCCVER} < 3) || ($config{GCCVER} eq "")) { print "\033[1;32mIMPORTANT!\033[0m A GCC 2.x compiler has been detected, and @@ -320,9 +317,8 @@ should NOT be used. You should probably specify a newer compiler.\n\n"; } chomp($foo = `$config{CC} -dumpversion | cut -c 1`); if ($foo ne "") { - chomp($config{GCCVER} = `$config{CC} -dumpversion | cut -c 1`); # we must redo these if we change - chomp($config{GCC34} = `$config{CC} -dumpversion | cut -c 3`); # the compiler path - print "Queried compiler: \033[1;32m$config{CC}\033[0m (version \033[1;32m$config{GCCVER}.$config{GCC34}\033[0m)\n"; + chomp($config{GCCVER} = `$config{CC} -dumpversion | cut -c 1`); # we must redo these if we change compilers + print "Queried compiler: \033[1;32m$config{CC}\033[0m (version \033[1;32m$config{GCCVER}.x\033[0m)\n"; if ($config{GCCVER} < 3) { print "\033[1;32mGCC 2.x WILL NOT WORK!\033[0m. Let's try that again, shall we?\n"; } @@ -364,10 +360,10 @@ if (!$chose_hiperf) { print "not to enable one. Defaulting to select() engine.\n\n"; } -yesno(THREADED_DNS,"Would you like to enable the experimental multi-threaded DNS lookup?"); +yesno(THREADED_DNS,"InspIRCd supports multi-threaded DNS lookups,\nwhich can improve the efficiency on a multiple-processor machine.\n\nDo you want to enable this feature?"); print "\n"; -yesno(IPV6,"Would you like to enable IPv6 support?"); +yesno(IPV6,"Would you like to enable experimental IPv6 support?"); print "\n"; if (($config{HAS_GNUTLS} eq "y") && ($config{HAS_OPENSSL} eq "y")) { @@ -658,23 +654,23 @@ if ($var eq "1") { } print "\n\033[1;32mPre-build configuration is complete!\033[0m\n\n"; -print "\033[0mBase install path:\033[1;32m\t\t$config{BASE_DIR}\n"; -print "\033[0mConfig path:\033[1;32m\t\t\t$config{CONFIG_DIR}\n"; -print "\033[0mModule path:\033[1;32m\t\t\t$config{MODULE_DIR}\n"; -print "\033[0mLibrary path:\033[1;32m\t\t\t$config{LIBRARY_DIR}\n"; -print "\033[0mMax connections:\033[1;32m\t\t$config{MAX_CLIENT}\n"; -print "\033[0mMax User Channels:\033[1;32m\t\t$config{MAX_CHANNE}\n"; -print "\033[0mMax Oper Channels:\033[1;32m\t\t$config{MAX_OPERCH}\n"; -print "\033[0mMax nickname length:\033[1;32m\t\t$config{NICK_LENGT}\n"; -print "\033[0mMax channel length:\033[1;32m\t\t$config{CHAN_LENGT}\n"; -print "\033[0mMax mode length:\033[1;32m\t\t$config{MAXI_MODES}\n"; -print "\033[0mMax ident length:\033[1;32m\t\t$config{MAX_IDENT}\n"; -print "\033[0mMax quit length:\033[1;32m\t\t$config{MAX_QUIT}\n"; -print "\033[0mMax topic length:\033[1;32m\t\t$config{MAX_TOPIC}\n"; -print "\033[0mMax kick length:\033[1;32m\t\t$config{MAX_KICK}\n"; -print "\033[0mMax name length:\033[1;32m\t\t$config{MAX_GECOS}\n"; -print "\033[0mMax away length:\033[1;32m\t\t$config{MAX_AWAY}\n"; -print "\033[0mGCC Version Found:\033[1;32m\t\t$config{GCCVER}.$config{GCC34}\n"; +print "\033[0mBase install path:\033[1;32m\t\t$config{BASE_DIR}\033[0m\n"; +print "\033[0mConfig path:\033[1;32m\t\t\t$config{CONFIG_DIR}\033[0m\n"; +print "\033[0mModule path:\033[1;32m\t\t\t$config{MODULE_DIR}\033[0m\n"; +print "\033[0mLibrary path:\033[1;32m\t\t\t$config{LIBRARY_DIR}\033[0m\n"; +print "\033[0mMax connections:\033[1;32m\t\t$config{MAX_CLIENT}\033[0m\n"; +print "\033[0mMax User Channels:\033[1;32m\t\t$config{MAX_CHANNE}\033[0m\n"; +print "\033[0mMax Oper Channels:\033[1;32m\t\t$config{MAX_OPERCH}\033[0m\n"; +print "\033[0mMax nickname length:\033[1;32m\t\t$config{NICK_LENGT}\033[0m\n"; +print "\033[0mMax channel length:\033[1;32m\t\t$config{CHAN_LENGT}\033[0m\n"; +print "\033[0mMax mode length:\033[1;32m\t\t$config{MAXI_MODES}\033[0m\n"; +print "\033[0mMax ident length:\033[1;32m\t\t$config{MAX_IDENT}\033[0m\n"; +print "\033[0mMax quit length:\033[1;32m\t\t$config{MAX_QUIT}\033[0m\n"; +print "\033[0mMax topic length:\033[1;32m\t\t$config{MAX_TOPIC}\033[0m\n"; +print "\033[0mMax kick length:\033[1;32m\t\t$config{MAX_KICK}\033[0m\n"; +print "\033[0mMax name length:\033[1;32m\t\t$config{MAX_GECOS}\033[0m\n"; +print "\033[0mMax away length:\033[1;32m\t\t$config{MAX_AWAY}\033[0m\n"; +print "\033[0mGCC Version Found:\033[1;32m\t\t$config{GCCVER}.x\033[0m\n"; print "\033[0mOptimization Flag:\033[1;32m\t\t$config{OPTIMISATI}\033[0m\n"; print "\033[0mCompiler program:\033[1;32m\t\t$config{CC}\033[0m\n"; print "\033[0mStatic modules:\033[1;32m\t\t\t$config{STATIC_LINK}\033[0m\n"; @@ -756,7 +752,7 @@ if (($config{USE_GNUTLS} eq "n") && ($config{USE_OPENSSL} eq "n")) { getosflags(); makecache(); -writefiles(); +writefiles(1); print "\n\n"; print "To build your server with these settings, please type '\033[1;32m$config{MAKEPROG}\033[0m' now.\n"; @@ -873,8 +869,7 @@ sub getosflags { # compile as this standard version is 2.95.3! if ($foo ne "") { $config{CC} = "eg++"; - chomp($config{GCCVER} = `eg++ -dumpversion | cut -c 1`); # we must redo these if we change - chomp($config{GCC34} = `eg++ -dumpversion | cut -c 3`); # the compiler path + chomp($config{GCCVER} = `eg++ -dumpversion | cut -c 1`); # we must redo these if we change the compiler path } } } else { @@ -919,6 +914,7 @@ sub is_dir { sub getmodules { my $i = 0; + print "Detecting modules "; opendir(DIRHANDLE, "src/modules"); foreach $name (sort readdir(DIRHANDLE)) { if ($name =~ /^m_(.+)\.cpp$/) @@ -926,10 +922,12 @@ sub getmodules { $mod = $1; if ($mod !~ /_static$/) { $modlist[$i++] = $mod; + print "."; } } } closedir(DIRHANDLE); + print "\nOk, $i modules.\n"; } sub getrevision { @@ -951,17 +949,20 @@ sub getrevision { } sub writefiles { - print "Writing \033[1;32minspircd_config.h\033[0m\n"; + my($writeheader) = @_; # First File.. inspircd_config.h chomp(my $incos = `uname -n -s -r`); chomp(my $version = `sh ./src/version.sh`); chomp(my $revision = getrevision()); $version = "$version(r$revision)"; chomp(my $revision2 = getrevision()); - open(FILEHANDLE, ">include/inspircd_config.h"); - my $NL = $config{NICK_LENGT}+1; - my $CL = $config{CHAN_LENGT}+1; - print FILEHANDLE <include/inspircd_config.h"); + my $NL = $config{NICK_LENGT}+1; + my $CL = $config{CHAN_LENGT}+1; + print FILEHANDLE < 3) { - print FILEHANDLE "#define GCC3\n"; - print FILEHANDLE "#define GCC34\n"; - } - else - { - if ($config{GCCVER} == 3) { + if ($config{OSNAME} =~ /SunOS/) { + print FILEHANDLE "#define IS_SOLARIS\n"; + } + if ($config{OSNAME} =~ /CYGWIN/) { + print FILEHANDLE "#define IS_CYGWIN\n"; + print FILEHANDLE "#ifndef FD_SETSIZE\n#define FD_SETSIZE 1024\n#endif\n"; + } + if ($config{OSNAME} eq "CYG-STATIC") { + print FILEHANDLE "#ifndef FD_SETSIZE\n#define FD_SETSIZE 1024\n#endif\n"; + } + if ($config{HAS_EXECINFO} eq "1") { + print FILEHANDLE "#define HAS_EXECINFO\n"; + } + if ($config{STATIC_LINK} eq "yes") { + print FILEHANDLE "#define STATIC_LINK\n"; + } + if ($config{GCCVER} >= 3) { print FILEHANDLE "#define GCC3\n"; - if ($config{GCC34} > 3) { - print FILEHANDLE "#define GCC34\n"; - } } + if ($config{HAS_STRLCPY} eq "true") { + print FILEHANDLE "#define HAS_STRLCPY\n"; + } + if ($config{HAS_STDINT} eq "true") { + print FILEHANDLE "#define HAS_STDINT\n"; + } + if ($config{THREADED_DNS} =~ /y/i) { + print FILEHANDLE "#define THREADED_DNS\n"; + } + if ($config{IPV6} =~/y/i) { + print FILEHANDLE "#define IPV6\n"; + } + my $use_hiperf = 0; + if (($has_kqueue) && ($config{USE_KQUEUE} eq "y")) { + print FILEHANDLE "#define USE_KQUEUE\n"; + $se = "socketengine_kqueue"; + $use_hiperf = 1; + } + if (($has_epoll) && ($config{USE_EPOLL} eq "y")) { + print FILEHANDLE "#define USE_EPOLL\n"; + $se = "socketengine_epoll"; + $use_hiperf = 1; + } + # user didn't choose either epoll or select for their OS. + # default them to USE_SELECT (ewwy puke puke) + if (!$use_hiperf) { + print FILEHANDLE "#define USE_SELECT\n"; + $se = "socketengine_select"; + } + print FILEHANDLE "\n#endif\n"; + close(FILEHANDLE); } - if ($config{HAS_STRLCPY} eq "true") { - print FILEHANDLE "#define HAS_STRLCPY\n"; - } - if ($config{HAS_STDINT} eq "true") { - print FILEHANDLE "#define HAS_STDINT\n"; - } - if ($config{THREADED_DNS} =~ /y/i) { - print FILEHANDLE "#define THREADED_DNS\n"; - } - if ($config{IPV6} =~/y/i) { - print FILEHANDLE "#define IPV6\n"; - } - my $use_hiperf = 0; - if (($has_kqueue) && ($config{USE_KQUEUE} eq "y")) { - print FILEHANDLE "#define USE_KQUEUE\n"; - $use_hiperf = 1; - } - if (($has_epoll) && ($config{USE_EPOLL} eq "y")) { - print FILEHANDLE "#define USE_EPOLL\n"; - $use_hiperf = 1; - } - # user didn't choose either epoll or select for their OS. - # default them to USE_SELECT (ewwy puke puke) - if (!$use_hiperf) { - print FILEHANDLE "#define USE_SELECT\n"; + + if ($writeheader) + { + open(FILEHANDLE, ">include/inspircd_se_config.h"); + print FILEHANDLE <src/Makefile") or die("Could not write src/Makefile"); print FH <