X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=configure;h=ef0142738009665a4fa86750efd731d77080165e;hb=2802a62272f4295ecc3bd73a44950749e8b96877;hp=53d95f94203cf86a7f9906916028700bcc46dbfb;hpb=73890bca3ed5c40e382f6a284477740a5002ea35;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/configure b/configure index 53d95f942..ef0142738 100755 --- a/configure +++ b/configure @@ -2,7 +2,7 @@ # InspIRCd Configuration Script # -# Copyright 2003 The ChatSpike Development Team +# Copyright 2002-2007 The ChatSpike Development Team # # # @@ -12,7 +12,9 @@ # ######################################## + require 5.6.0; +use Socket; use Cwd; use Getopt::Long; @@ -24,8 +26,7 @@ GetOptions ( 'with-channel-length=i' => \$opt_chan_length, 'with-max-channels=i' => \$opt_maxchans, 'with-max-oper-channels=i' => \$opt_opermaxchans, - 'with-max-clients' => \$opt_maxclients, - 'enable-optimization' => \$opt_optimise, + 'with-max-clients=i' => \$opt_maxclients, 'enable-epoll' => \$opt_epoll, 'enable-kqueue' => \$opt_kqueue, 'disable-epoll' => \$opt_noepoll, @@ -46,9 +47,10 @@ GetOptions ( 'module-dir=s' => \$opt_module_dir, 'binary-dir=s' => \$opt_binary_dir, 'library-dir=s' => \$opt_library_dir, + 'disable-debuginfo' => sub { $opt_disable_debug = 1 }, 'help' => sub { showhelp(); }, - 'modupdate' => sub { update(); }, - 'update' => sub { modupdate(); }, + 'modupdate' => sub { modupdate(); }, + 'update' => sub { update(); }, 'svnupdate' => sub { svnupdate(); }, 'clean' => sub { clean(); }, ); @@ -79,7 +81,6 @@ my $non_interactive = ( (defined $opt_opermaxchans) || (defined $opt_chan_length) || (defined $opt_nick_length) || - (defined $opt_optimise) || (defined $opt_use_openssl) || (defined $opt_nokqueue) || (defined $opt_noepoll) || @@ -134,13 +135,18 @@ if (defined $opt_use_openssl) { $config{USE_OPENSSL} = "y"; } + +# no, let's not change these. $config{OPTIMITEMP} = "0"; # Default Optimisation Value -$config{OPTIMISATI} = "-g"; # Optimisation Flag -if (defined $opt_optimise) +if (!defined $opt_disable_debug) +{ + $config{OPTIMISATI} = "-g"; # Optimisation Flag +} +else { - $config{OPTIMISATI} = "-O" . $opt_optimise; - $config{OPTIMITEMP} = $opt_optimise; + $config{OPTIMISATI} = ""; # DEBUGGING OFF! } + $config{NICK_LENGT} = "31"; # Default Nick Length if (defined $opt_nick_length) { @@ -204,7 +210,8 @@ $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{OSNAME} = `uname`); # Operating System Name +$config{_SOMAXCONN} = SOMAXCONN; # Max connections in accept queue +$config{OSNAME} = $^O; # Operating System Name $config{CC} = "g++"; # C++ compiler if (defined $opt_cc) { @@ -247,7 +254,7 @@ if (defined $opt_away) $no_svn = 0; -$config{HAS_OPENSSL} =~ /OpenSSL ([-[:digit:].]+)([a-z])? (\w{3}|[0-9]+) (\w{3}|[0-9]+) [0-9]{4}/; +$config{HAS_OPENSSL} =~ /OpenSSL ([-[:digit:].]+)([a-z])?(\-[a-z][0-9])? (\w{3}|[0-9]+) (\w{3}|[0-9]+) [0-9]{4}/; $config{HAS_OPENSSL} = $1; if ($config{GCCVER} eq "") { @@ -259,23 +266,10 @@ if ($config{GCCVER} eq "") { # Keep my dynamic module experiments here for later # concideration! -if ($config{OSNAME} =~ /CYGWIN/) +if ($config{OSNAME} =~ /CYGWIN/i) { $config{OSNAME} = "CYG-STATIC"; } -elsif($config{OSNAME} =~ /^MINGW32/) -{ - $config{OSNAME} = "MINGW32"; -} -elsif ((!$config{OSNAME}) || ($config{OSNAME} eq "")) -{ - chomp($config{OSNAME} = `/usr/bin/uname`); - - if((!$config{OSNAME}) || ($config{OSNAME} eq "")) - { - $config{OSNAME} = "Unknown"; - } -} if (!$config{MAX_CLIENT_T}) { $config{MAX_CLIENT_T} = 1024; # Set a reasonable 'Default' @@ -287,13 +281,14 @@ getmodules(); sub clean { - if ($arg eq "-clean") { - system("rm -rf .config.cache"); - } + system("rm -rf .config.cache"); } sub update { + chomp($topdir = getcwd()); + $this = resolve_directory($topdir); # PWD, Regardless. + getmodules(); # Does the cache file exist? if (!getcache()) { # No, No it doesn't.. *BASH* @@ -303,6 +298,12 @@ sub update # We've Loaded the cache file and all our variables.. print "Updating Files..\n"; getosflags(); + if ($opt_disable_debug == 1) + { + print "Disabling debug information (-g).\n"; + $config{OPTIMISATI} = ""; + getosflags(); + } $has_epoll = $config{HAS_EPOLL}; $has_kqueue = $config{HAS_KQUEUE}; writefiles(1); @@ -313,6 +314,9 @@ sub update sub modupdate { + chomp($topdir = getcwd()); + $this = resolve_directory($topdir); # PWD, Regardless. + getmodules(); # Does the cache file exist? if (!getcache()) { # No, No it doesn't.. *BASH* @@ -349,11 +353,10 @@ sub svnupdate } print "Running non-interactive configure...\n" unless $interactive; - -print "Checking for cache from previous configure...\n"; -getcache(); -print "Checking operating system version...\n"; -getosflags(); +print "Checking for cache from previous configure... "; +print ((getcache() eq "true") ? "found\n" : "not found\n"); +print "Checking operating system version... "; +print getosflags() . "\n"; if (defined $opt_maxclients) { @@ -465,7 +468,7 @@ if (($config{HAS_OPENSSL}) && (($config{HAS_OPENSSL} >= 0.8) || ($config{HAS_OPE if ($interactive) { system("clear"); - chomp($wholeos = `uname -sr`); + $wholeos = $^O; my $rev = getrevision(); # Display Introduction Message.. @@ -596,7 +599,7 @@ should NOT be used. You should probably specify a newer compiler.\n\n"; $var = $config{MAX_CLIENT}; } if ($var =~ /^\d+$/) { - if (($var > $config{MAX_CLIENT_T}) && ($fd_scan_failed ne true)) { + if (($var > $config{MAX_CLIENT_T}) && ($fd_scan_fail ne "true")) { # Client has entered a larger number than the 'discovered' value # Confirm. print "WARNING: Our scans have indicated that you are attempting @@ -615,6 +618,7 @@ you wish to do this? It may cause the IRCd to malfunction [y/n] } # If we get here, we should be good to go. $config{MAX_CLIENT} = $var; + $config{MAX_DESCRIPTORS} = $var; $continue = 1; print "\n"; } @@ -814,37 +818,6 @@ you wish to do this? It may cause the IRCd to malfunction [y/n] print "You must enter a number in this field. Please try again.\n\n"; } } - - # Code Optimisation - print "Enter the Level Of Binary optimisation. This is a number between 0 and 3. -The InspIRCd Team will NOT support any bug reports above 0. Also note, -the IRCd behaviour will be different depending on this value. Please -read the documentation for more information. - -The higher the number, the more optimised your binary will be. This -value will default to 0 if you either don't enter a number, or enter -a value outside the range. - -As always, if you are unsure, just press enter and accept the default.\n\n"; - print "[\033[1;32m$config{OPTIMITEMP}\033[0m] -> "; - chomp($var = ); - if ($var eq "") { - $var = $config{OPTIMITEMP}; - } - - if ($var eq "1") { - $config{OPTIMITEMP} = 1; - $config{OPTIMISATI} = "-O"; - } elsif ($var eq "2") { - $config{OPTIMITEMP} = 2; - $config{OPTIMISATI} = "-O2"; - } elsif ($var eq "3") { - $config{OPTIMITEMP} = 3; - $config{OPTIMISATI} = "-O3"; - } else { - $config{OPTIMITEMP} = 0; - $config{OPTIMISATI} = "-g"; - } } print "\n\033[1;32mPre-build configuration is complete!\033[0m\n\n"; @@ -865,7 +838,8 @@ 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"; +# and not echo it out so we don't get some ricer fuck complaining +#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[0mIPv6 Support:\033[1;32m\t\t\t$config{IPV6}\033[0m\n"; @@ -873,6 +847,17 @@ print "\033[0mIPv6 to IPv4 Links:\033[1;32m\t\t$config{SUPPORT_IP6LINKS}\033[0m\ 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"; +if (($config{USE_GNUTLS} eq "y") && ($config{HAS_GNUTLS} ne "y")) +{ + print "Sorry, but i couldn't detect gnutls. Make sure gnutls-config is in your path.\n"; + exit(0); +} +if (($config{USE_OPENSSL} eq "y") && ($config{HAS_OPENSSL} ne "y")) +{ + print "Sorry, but i couldn't detect openssl. Make sure openssl is in your path.\n"; + exit(0); +} + if ($config{USE_GNUTLS} eq "y") { $failed = 0; open(TMP, "$file"); @@ -1343,7 +1356,7 @@ EOF print "Writing static-build \033[1;32msrc/Makefile\033[0m\n"; write_static_makefile(); write_static_modules_makefile(); - } elsif ($config{OSNAME} =~ /CYGWIN/) { + } elsif ($config{OSNAME} =~ /CYGWIN/i) { print "Writing cygwin-build \033[1;32msrc/Makefile\033[0m\n"; write_static_makefile(); write_dynamic_modules_makefile(); @@ -1380,6 +1393,19 @@ sub getlinkerflags { return undef; } +sub getdependencies { + my ($file) = @_; + open(FLAGS, $file); + while () { + if ($_ =~ /^\/\* \$ModDep: (.+) \*\/$/) { + close(FLAGS); + return $1; + } + } + close(FLAGS); + return undef; +} + sub resolve_directory { use File::Spec; return File::Spec->rel2abs($_[0]); @@ -1460,12 +1486,13 @@ HEADER if ($i !~ /_static$/) { $cmflags = getcompilerflags("src/modules/m_".$i.".cpp"); $liflags = getlinkerflags("src/modules/m_".$i.".cpp"); + $deps = getdependencies("src/modules/m_".$i.".cpp"); ### # Write Entry to the Makefile ### print FILEHANDLE <src/modules/Makefile"); my $extra = ""; - if ($config{OSNAME} =~ /CYGWIN/) { + if ($config{OSNAME} =~ /CYGWIN/i) { $extra = "../inspircd.dll.a"; } @@ -1533,10 +1560,11 @@ EOF ### $cmflags = getcompilerflags("src/modules/m_".$i.".cpp"); $liflags = getlinkerflags("src/modules/m_".$i.".cpp"); + $deps = getdependencies("src/modules/m_".$i.".cpp"); print FILEHANDLE <