X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=configure;h=9c9424a5f5ae8a9c1ad6c600d48bacc81da0c112;hb=2b2677dec55fafa85a19e7d84b539c239a50187c;hp=ef17e9bb350024db87fde6295a916e427c671daf;hpb=c03f650283bacec6f68390d98c97e12fe7d83742;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/configure b/configure index ef17e9bb3..9c9424a5f 100755 --- a/configure +++ b/configure @@ -1,4 +1,5 @@ #!/usr/bin/perl + # InspIRCd Configuration Script # # Copyright 2003 The ChatSpike Development Team @@ -33,14 +34,16 @@ $config{MAX_CHANNE} = "20"; # Default Max. $config{MAX_OPERCH} = "60"; # Default Max. Channels per oper $config{MAXI_MODES} = "20"; # Default Max. Number of Modes set at once. $config{HAS_STRLCPY} = "false"; # strlcpy Check. +$config{HAS_EXECINFO} = "0"; # execinfo.h Check. $config{USE_KQUEUE} = "y"; # kqueue enabled $config{USE_EPOLL} = "y"; # epoll enabled $config{THREADED_DNS} = "n"; # threaded dns (experimental) +$config{IPV6} = "n"; # IPv6 support (experimental) $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} = `gcc -dumpversion | cut -c 1`); # Major GCC Version -chomp($config{GCC34} = `gcc -dumpversion | cut -c 3`); # Minor GCC Version +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 @@ -52,9 +55,16 @@ $config{MAX_KICK} = "255"; # max kick message size $config{MAX_GECOS} = "128"; # max GECOS size $config{MAX_AWAY} = "200"; # max AWAY size +$no_svn = 0; + $config{HAS_OPENSSL} =~ /OpenSSL (\S+) \d+ \S+ \d{4}/; $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; +} + # Minihack! Convert Cygwin to 'Cyg-Static' so i can # Keep my dynamic module experiments here for later # concideration! @@ -101,6 +111,21 @@ if ($arg eq "-update") { } } +if ($arg eq "-svnupdate") { + my $fail = 0; + open(FH,"<.svn/entries") or $fail = 1; + if ($fail) { + print "This is not an SVN copy of InspIRCd.\n"; + exit; + } + system("svn update"); + system("perl configure -update"); + if ($ARGV[1] eq "rebuild") { + system("make install"); + } + exit; +} + if ($arg eq "-modupdate") { # Does the cache file exist? if (!getcache()) { @@ -153,6 +178,28 @@ if (!$fail) { print "yes\n" if $config{HAS_STRLCPY} eq "true"; print "no\n" if $config{HAS_STRLCPY} eq "false"; +printf "Checking if execinfo.h exists... "; +$config{HAS_EXECINFO} = "0"; +my $fail = 0; +open(EXECINFO, "\033[0m to accept the default for any option, or enter a new value. Please note: You will \033[1mHAVE\033[0m to read the docs dir, otherwise you won't have a config file! -Your operating system is: \033[1;32m$config{OSNAME}\033[0m ($wholeos), fdmax: $config{MAX_CLIENT_T}\n\n"; +Your operating system is: \033[1;32m$config{OSNAME}\033[0m ($wholeos), fdmax: $config{MAX_CLIENT_T} +Your InspIRCd revision ID is \033[1;32mr$rev\033[0m"; +if ($rev eq "r0") { + print " (Non-SVN build)"; +} +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"; @@ -302,6 +355,9 @@ if (!$chose_hiperf) { yesno(THREADED_DNS,"Would you like to enable the experimental multi-threaded DNS lookup?"); print "\n"; +yesno(IPV6,"Would you like to enable IPv6 support?"); +print "\n"; + if (($config{HAS_GNUTLS} eq "y") && ($config{HAS_OPENSSL} eq "y")) { print "I have detected both GnuTLS and OpenSSL on your system.\n"; print "I will default to GnuTLS. If you wish to use OpenSSL\n"; @@ -611,6 +667,7 @@ 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"; print "\033[0mMultithread DNS:\033[1;32m\t\t$config{THREADED_DNS}\033[0m\n"; +print "\033[0mIPv6 Support:\033[1;32m\t\t\t$config{IPV6}\033[0m\n"; print "\033[0mGnuTLS Support:\033[1;32m\t\t\t$config{USE_GNUTLS}\033[0m\n"; print "\033[0mOpenSSL Support:\033[1;32m\t\t$config{USE_OPENSSL}\033[0m\n\n"; @@ -863,14 +920,32 @@ sub getmodules { closedir(DIRHANDLE); } +sub getrevision { + if ($no_svn) { + return "0"; + } + my $data = `svn info`; + if ($data eq "") { + $no_svn = 1; + $rev = "0"; + return $rev; + } + $data =~ /Revision: (\d+)/; + my $rev = $1; + if (!defined($rev)) { + $rev = "0"; + } + return $rev; +} + sub writefiles { print "Writing \033[1;32minspircd_config.h\033[0m\n"; # First File.. inspircd_config.h chomp(my $incos = `uname -n -s -r`); chomp(my $version = `sh ./src/version.sh`); - chomp(my $revision = `./src/svn-rev.sh`); + chomp(my $revision = getrevision()); $version = "$version(r$revision)"; - chomp(my $revision2 = `./src/svn-rev.sh`); + chomp(my $revision2 = getrevision()); open(FILEHANDLE, ">include/inspircd_config.h"); my $NL = $config{NICK_LENGT}+1; my $CL = $config{CHAN_LENGT}+1; @@ -910,7 +985,9 @@ EOF 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"; } @@ -933,6 +1010,9 @@ EOF 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"; @@ -1149,8 +1229,8 @@ HEADER # Write Entry to the Makefile ### print FILEHANDLE <src/modules/m_".$i."_static.cpp") or die("Could not create m_".$i."_static.cpp"); + open(MUNGED,">src/modules/.m_".$i."_static.cpp") or die("Could not create .m_".$i."_static.cpp"); while (chomp($a = )) { $a =~ s/init_module/$i\_init/g; print MUNGED "$a\n"; @@ -1218,12 +1298,12 @@ EOF $cmflags = getcompilerflags("src/modules/m_".$i.".cpp"); $liflags = getlinkerflags("src/modules/m_".$i.".cpp"); print FILEHANDLE <src/Makefile") or die("Could not write src/Makefile"); print FH <