]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - configure
SQLite3 schema for sqloper.
[user/henk/code/inspircd.git] / configure
index 5be14d8331f066d3546095868ed341fbd1fe4bbb..152159a98eec058d894ec6d627893aa331fad8b0 100755 (executable)
--- a/configure
+++ b/configure
@@ -2,7 +2,7 @@
 
 # InspIRCd Configuration Script
 #
-# Copyright 2002-2006 The ChatSpike Development Team
+# Copyright 2002-2007 The ChatSpike Development Team
 # <brain@chatspike.net>
 # <Craig@chatspike.net>
 #
 
 
 require 5.6.0;
+use Socket;
 use Cwd;
 use Getopt::Long;
 
+# Utility functions for our buildsystem
+use make::utilities;
+use make::configure;
+
 GetOptions (
        'enable-gnutls' => \$opt_use_gnutls,
        'enable-openssl' => \$opt_use_openssl,
@@ -209,6 +214,7 @@ $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
+$config{_SOMAXCONN} = SOMAXCONN;                                               # Max connections in accept queue
 $config{OSNAME}            = $^O;                                              # Operating System Name
 $config{CC}                = "g++";                                            # C++ compiler
 if (defined $opt_cc)
@@ -250,8 +256,6 @@ if (defined $opt_away)
        $config{MAX_AWAY} = $opt_away;
 }
 
-$no_svn = 0;
-
 $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;
 
@@ -262,7 +266,7 @@ if ($config{GCCVER} eq "") {
 
 # Minihack! Convert Cygwin to 'Cyg-Static' so i can
 # Keep my dynamic module experiments here for later
-# concideration!
+# consideration!
 
 if ($config{OSNAME} =~ /CYGWIN/i)
 {
@@ -588,262 +592,25 @@ should NOT be used. You should probably specify a newer compiler.\n\n";
        print "different servers on the network.\n\n";
 
        # File Descriptor Settings..
-       my $continue = 0;
-       while (!$continue) {
-               print "Maximum number of clients at any one time ($config{MAX_CLIENT_T})\n";
-               print "[\033[1;32m$config{MAX_CLIENT}\033[0m] -> ";
-               chomp($var = <STDIN>);
-               if ($var eq "") {
-                       $var = $config{MAX_CLIENT};
-               }
-               if ($var =~ /^\d+$/) {
-                       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
-to use more sockets than there are avaliable. Are you sure
-you wish to do this? It may cause the IRCd to malfunction [y/n]
-[\033[1;32mn\033[0m] -> $c";
-                               chomp($tmp = <STDIN>);
-                               if ($tmp ne "y") {
-                                       print "Please enter the correct value.\n\n";
-                                       next;
-                               }
-                       }
-               } else {
-                       print "You must enter a number in this field. Please try again.\n\n";
-                       next;
-               }
-               # If we get here, we should be good to go.
-               $config{MAX_CLIENT} = $var;
-               $config{MAX_DESCRIPTORS} = $var;
-               $continue = 1;
-               print "\n";
-       }
-
-       my $continue = 0;
-       while (!$continue) {
-               print "What is the maximum length of nicknames?\n";
-               print "[\033[1;32m$config{NICK_LENGT}\033[0m] -> ";
-               chomp($var = <STDIN>);
-               if ($var eq "") {
-                       $var = $config{NICK_LENGT};
-               }
-               if ($var =~ /^\d+$/) {
-                       # We don't care what the number is, set it and be on our way.
-                       $config{NICK_LENGT} = $var;
-                       $continue = 1;
-                       print "\n";
-               } else {
-                       print "You must enter a number in this field. Please try again.\n\n";
-               }
-       }
-
-       $continue = 0;
-       while (!$continue) {
-               print "What is the maximum length of channel names?\n";
-               print "[\033[1;32m$config{CHAN_LENGT}\033[0m] -> ";
-               chomp($var = <STDIN>);
-               if ($var eq "") {
-                       $var = $config{CHAN_LENGT};
-               }
-               if ($var =~ /^\d+$/) {
-                       # We don't care what the number is, set it and be on our way.
-                       $config{CHAN_LENGT} = $var;
-                       $continue = 1;
-                       print "\n";
-               } else {
-                       print "You must enter a number in this field. Please try again.\n\n";
-               }
-       }
-
-       $continue = 0;
-       while (!$continue) {
-               print "What is the maximum number of channels a normal user may join at any one time?\n";
-               print "[\033[1;32m$config{MAX_CHANNE}\033[0m] -> ";
-               chomp($var = <STDIN>);
-               if ($var eq "") {
-                       $var = $config{MAX_CHANNE};
-               }
-               if ($var =~ /^\d+$/) {
-                       # We don't care what the number is, set it and be on our way.
-                       $config{MAX_CHANNE} = $var;
-                       $continue = 1;
-                       print "\n";
-               } else {
-                       print "You must enter a number in this field. Please try again.\n\n";
-               }
-       }
+       promptnumeric("number of clients at any one time", "MAX_CLIENT_T");
 
-       $continue = 0;
-       while (!$continue) {
-               print "What is the maximum number of channels an oper may join at any one time?\n";
-               print "[\033[1;32m$config{MAX_OPERCH}\033[0m] -> ";
-               chomp($var = <STDIN>);
-               if ($var eq "") {
-                       $var = $config{MAX_OPERCH};
-               }
-               if ($var =~ /^\d+$/) {
-                       # We don't care what the number is, set it and be on our way.
-                       $config{MAX_OPERCH} = $var;
-                       $continue = 1;
-                       print "\n";
-               }
-       }
-
-       $continue = 0;
-       while (!$continue) {
-               print "What is the maximum number of mode changes in one line?\n";
-               print "[\033[1;32m$config{MAXI_MODES}\033[0m] -> ";
-                       chomp($var = <STDIN>);
-               if ($var eq "") {
-                       $var = $config{MAXI_MODES};
-               }
-               if ($var =~ /^\d+$/) {
-                       # We don't care what the number is, set it and be on our way.
-                       $config{MAXI_MODES} = $var;
-                       $continue = 1;
-                       print "\n";
-               } else {
-                       print "You must enter a number in this field. Please try again.\n\n";
-               }
-       }
-
-       $continue = 0;
-       while (!$continue) {
-               print "What is the maximum length of an ident (username)?\n";
-               print "[\033[1;32m$config{MAX_IDENT}\033[0m] -> ";
-               chomp($var = <STDIN>);
-               if ($var eq "") {
-                       $var = $config{MAX_IDENT};
-               }
-               if ($var =~ /^\d+$/) {
-                       # We don't care what the number is, set it and be on our way.
-                       $config{MAX_IDENT} = $var;
-                       $continue = 1;
-                       print "\n";
-               } else {
-                       print "You must enter a number in this field. Please try again.\n\n";
-               }
-       }
-
-       $continue = 0;
-       while (!$continue) {
-               print "What is the maximum length of a quit message?\n";
-               print "[\033[1;32m$config{MAX_QUIT}\033[0m] -> ";
-               chomp($var = <STDIN>);
-               if ($var eq "") {
-                       $var = $config{MAX_QUIT};
-               }
-               if ($var =~ /^\d+$/) {
-                       # We don't care what the number is, set it and be on our way.
-                       $config{MAX_QUIT} = $var;
-                       $continue = 1;
-                       print "\n";
-               } else {
-                       print "You must enter a number in this field. Please try again.\n\n";
-               }
-       }
-
-       $continue = 0;
-       while (!$continue) {
-               print "What is the maximum length of a channel topic?\n";
-               print "[\033[1;32m$config{MAX_TOPIC}\033[0m] -> ";
-               chomp($var = <STDIN>);
-               if ($var eq "") {
-                       $var = $config{MAX_TOPIC};
-               }
-               if ($var =~ /^\d+$/) {
-                       # We don't care what the number is, set it and be on our way.
-                       $config{MAX_TOPIC} = $var;
-                       $continue = 1;
-                       print "\n";
-               } else {
-                       print "You must enter a number in this field. Please try again.\n\n";
-               }
-       }
+       $config{MAX_CLIENT} = $var;
+       $config{MAX_DESCRIPTORS} = $var;
 
-       $continue = 0;
-       while (!$continue) {
-               print "What is the maximum length of a kick message?\n";
-               print "[\033[1;32m$config{MAX_KICK}\033[0m] -> ";
-               chomp($var = <STDIN>);
-               if ($var eq "") {
-                       $var = $config{MAX_KICK};
-               }
-               if ($var =~ /^\d+$/) {
-                       # We don't care what the number is, set it and be on our way.
-                       $config{MAX_KICK} = $var;
-                       $continue = 1;
-                       print "\n";
-               } else {
-                       print "You must enter a number in this field. Please try again.\n\n";
-               }
-       }
-
-       $continue = 0;
-       while (!$continue) {
-               print "What is the maximum length of a GECOS (real name) field?\n";
-               print "[\033[1;32m$config{MAX_GECOS}\033[0m] -> ";
-               chomp($var = <STDIN>);
-               if ($var eq "") {
-                       $var = $config{MAX_GECOS};
-               }
-               if ($var =~ /^\d+$/) {
-                       # We don't care what the number is, set it and be on our way.
-                       $config{MAX_GECOS} = $var;
-                       $continue = 1;
-                       print "\n";
-               } else {
-                       print "You must enter a number in this field. Please try again.\n\n";
-               }
-       }
-
-       $continue = 0;
-       while (!$continue) {
-               print "What is the maximum length of an away message?\n";
-               print "[\033[1;32m$config{MAX_AWAY}\033[0m] -> ";
-               chomp($var = <STDIN>);
-               if ($var eq "") {
-                       $var = $config{MAX_AWAY};
-               }
-               if ($var =~ /^\d+$/) {
-                       # We don't care what the number is, set it and be on our way.
-                       $config{MAX_AWAY} = $var;
-                       $continue = 1;
-                       print "\n";
-               } else {
-                       print "You must enter a number in this field. Please try again.\n\n";
-               }
-       }
+       promptnumeric("length of nicknames", "NICK_LENGT");
+       promptnumeric("length of channel names", "CHAN_LENGT");
+       promptnumeric("number of channels a normal user may join at any one time", "MAX_CHANNE");
+       promptnumeric("number of channels an oper may join at any one time", "MAX_OPERCH");
+       promptnumeric("number of mode changes in one line", "MAXI_MODES");
+       promptnumeric("length of an ident (username)", "MAX_IDENT");
+       promptnumeric("length of a quit message", "MAX_QUIT");
+       promptnumeric("length of a channel topic", "MAX_TOPIC");
+       promptnumeric("length of a kick message", "MAX_KICK");
+       promptnumeric("length of a GECOS (real name)", "MAX_GECOS");
+       promptnumeric("length of an away message", "MAX_AWAY");
 }
 
-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}\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";
-# 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";
-print "\033[0mIPv6 to IPv4 Links:\033[1;32m\t\t$config{SUPPORT_IP6LINKS}\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";
+dumphash();
 
 if (($config{USE_GNUTLS} eq "y") && ($config{HAS_GNUTLS} ne "y"))
 {
@@ -1117,55 +884,6 @@ sub getosflags {
        return $config{OSNAME};
 }
 
-sub is_dir {
-       my ($path) = @_;
-       if (chdir($path)) {
-               chdir($this);
-               return 1;
-       } else {
-               # Just in case..
-               chdir($this);
-               return 0;
-       }
-}
-
-sub getmodules {
-       my $i = 0;
-       print "Detecting modules ";
-       opendir(DIRHANDLE, "src/modules");
-       foreach $name (sort readdir(DIRHANDLE)) {
-               if ($name =~ /^m_(.+)\.cpp$/)
-               {
-                       $mod = $1;
-                       if ($mod !~ /_static$/) {
-                               $modlist[$i++] = $mod;
-                               print ".";
-                       }
-               }
-       }
-       closedir(DIRHANDLE);
-       print "\nOk, $i modules.\n";
-}
-
-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 {
        my($writeheader) = @_;
        # First File.. inspircd_config.h
@@ -1191,6 +909,7 @@ sub writefiles {
 #define REVISION "$revision2"
 #define MAXCLIENTS $config{MAX_CLIENT}
 #define MAXCLIENTS_S "$config{MAX_CLIENT}"
+#define SOMAXCONN_S "$config{_SOMAXCONN}"
 #define MAX_DESCRIPTORS $config{MAX_DESCRIPTORS}
 #define NICKMAX $NL
 #define CHANMAX $CL
@@ -1364,64 +1083,6 @@ EOF
        }
 }
 
-sub getcompilerflags {
-       my ($file) = @_;
-       open(FLAGS, $file);
-       while (<FLAGS>) {
-       if ($_ =~ /^\/\* \$CompileFlags: (.+) \*\/$/) {
-               close(FLAGS);
-                       return $1;
-               }
-       }
-       close(FLAGS);
-       return undef;
-}
-
-sub getlinkerflags {
-       my ($file) = @_;
-       open(FLAGS, $file);
-       while (<FLAGS>) {
-               if ($_ =~ /^\/\* \$LinkerFlags: (.+) \*\/$/) {
-                       close(FLAGS);
-                       return $1;
-               }
-       }
-       close(FLAGS);
-       return undef;
-}
-
-sub getdependencies {
-       my ($file) = @_;
-       open(FLAGS, $file);
-       while (<FLAGS>) {
-               if ($_ =~ /^\/\* \$ModDep: (.+) \*\/$/) {
-                       close(FLAGS);
-                       return $1;
-               }
-       }
-       close(FLAGS);
-       return undef;
-}
-
-sub resolve_directory {
-       use File::Spec;
-       return File::Spec->rel2abs($_[0]);
-}
-
-sub yesno {
-       my ($flag,$prompt) = @_;
-       print "$prompt [\033[1;32m$config{$flag}\033[0m] -> ";
-       chomp($tmp = <STDIN>);
-       if ($tmp eq "") { $tmp = $config{$flag} }
-
-       if (($tmp eq "") || ($tmp =~ /^y/i)) {
-               $config{$flag} = "y";
-       } else {
-               $config{$flag} = "n";
-        }
-       return;
-}
-
 sub write_static_modules_makefile {
        # Modules Makefile..
        print "Writing \033[1;32msrc/modules/Makefile\033[0m\n";
@@ -1485,6 +1146,8 @@ HEADER
                        $liflags = getlinkerflags("src/modules/m_".$i.".cpp");
                        $deps = getdependencies("src/modules/m_".$i.".cpp");
 
+                       #print "file: $i: cmflags=$cmflags; liflags=$liflags; deps=$deps\n";
+
                        ###
                        # Write Entry to the Makefile
                        ###
@@ -1558,13 +1221,16 @@ EOF
        $cmflags = getcompilerflags("src/modules/m_".$i.".cpp");
        $liflags = getlinkerflags("src/modules/m_".$i.".cpp");
        $deps = getdependencies("src/modules/m_".$i.".cpp");
+
+       #print "file: $i: cmflags=$cmflags; liflags=$liflags; deps=$deps\n";
+
        print FILEHANDLE <<EOCHEESE;
 m_$i.so: m_$i.cpp ../../include/modules.h ../../include/users.h ../../include/channels.h ../../include/base.h ../../include/inspircd_config.h ../../include/inspircd.h ../../include/configreader.h $deps
        \$(CC) -pipe -I../../include \$(FLAGS) $cmflags -export-dynamic -c m_$i.cpp
        \$(CC) -pipe \$(FLAGS) -shared $liflags -o m_$i.so m_$i.o $extra
 
 EOCHEESE
-       $crud = $crud . "       install -m 0700 m_$i.so \$(MODPATH)\n";
+       $crud = $crud . "       install -m \$(INSTMODE) m_$i.so \$(MODPATH)\n";
 ###
        # End Write Entry to the MakeFile
        ###
@@ -1678,7 +1344,7 @@ xline.o: xline.cpp ../include/base.h ../include/xline.h ../include/inspircd.h ..
 inspstring.o: inspstring.cpp ../include/base.h ../include/inspstring.h ../include/inspircd.h ../include/channels.h ../include/users.h ../include/globals.h ../include/inspircd_config.h
        \$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c inspstring.cpp
 
-dns.o: dns.cpp ../include/base.h ../include/dns.h ../include/inspircd.h ../include/channels.h ../include/users.h ../include/globals.h ../include/inspircd_config.h
+dns.o: dns.cpp ../include/base.h ../include/dns.h ../include/inspircd.h ../include/channels.h ../include/users.h ../include/globals.h ../include/inspircd_config.h ../include/timer.h
        \$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c dns.cpp
 
 base.o: base.cpp ../include/base.h ../include/globals.h ../include/inspircd_config.h
@@ -1687,16 +1353,16 @@ base.o: base.cpp ../include/base.h ../include/globals.h ../include/inspircd_conf
 configreader.o: configreader.cpp ../include/base.h ../include/configreader.h ../include/inspircd.h ../include/channels.h ../include/users.h ../include/globals.h ../include/inspircd_config.h
        \$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c configreader.cpp
 
-commands.o: commands.cpp ../include/base.h ../include/inspircd.h ../include/channels.h ../include/users.h ../include/globals.h ../include/inspircd_config.h $srcobjs
+commands.o: commands.cpp ../include/base.h ../include/inspircd.h ../include/channels.h ../include/users.h ../include/globals.h ../include/inspircd_config.h ../include/timer.h $srcobjs
        \$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c commands.cpp $cmdobjs
 
 dynamic.o: dynamic.cpp ../include/base.h ../include/dynamic.h ../include/inspircd.h ../include/channels.h ../include/users.h ../include/globals.h ../include/inspircd_config.h
        \$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c dynamic.cpp
 
-users.o: users.cpp ../include/base.h ../include/users.h ../include/inspircd.h ../include/channels.h ../include/users.h ../include/globals.h ../include/inspircd_config.h
+users.o: users.cpp ../include/base.h ../include/users.h ../include/inspircd.h ../include/channels.h ../include/users.h ../include/globals.h ../include/inspircd_config.h ../include/timer.h
        \$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c users.cpp
 
-modules.o: modules.cpp ../include/base.h ../include/modules.h ../include/inspircd.h ../include/channels.h ../include/users.h ../include/globals.h ../include/inspircd_config.h
+modules.o: modules.cpp ../include/base.h ../include/modules.h ../include/inspircd.h ../include/channels.h ../include/users.h ../include/globals.h ../include/inspircd_config.h ../include/timer.h
        \$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c modules.cpp
 
 wildcard.o: wildcard.cpp ../include/base.h ../include/wildcard.h ../include/inspircd.h ../include/channels.h ../include/users.h ../include/globals.h ../include/inspircd_config.h
@@ -1705,10 +1371,10 @@ wildcard.o: wildcard.cpp ../include/base.h ../include/wildcard.h ../include/insp
 socket.o: socket.cpp ../include/base.h ../include/inspircd.h ../include/globals.h ../include/inspircd_config.h
        \$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c socket.cpp
        
-inspsocket.o: inspsocket.cpp ../include/base.h ../include/inspircd.h ../include/globals.h ../include/inspircd_config.h
+inspsocket.o: inspsocket.cpp ../include/base.h ../include/inspircd.h ../include/globals.h ../include/inspircd_config.h ../include/timer.h
        \$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c inspsocket.cpp
 
-timer.o: timer.cpp ../include/base.h ../include/inspircd.h ../include/globals.h ../include/inspircd_config.h
+timer.o: timer.cpp ../include/base.h ../include/inspircd.h ../include/globals.h ../include/inspircd_config.h ../include/timer.h
        \$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c timer.cpp
 
 EOM
@@ -1805,7 +1471,7 @@ libIRCDmode.so: mode.cpp ../include/base.h ../include/mode.h ../include/inspircd
        \${MAKE} -C "modes" DIRNAME="src/modes" CC="\$(CC)" \$(MAKEARGS) CPPFILES="\$(CPPFILES)"
        \$(CC) -pipe -Wl,--rpath -Wl,$config{LIBRARY_DIR} -shared -o libIRCDmode.so mode.o modes/modeclasses.a
 
-libIRCDxline.so: xline.cpp ../include/base.h ../include/xline.h ../include/inspircd.h ../include/channels.h ../include/users.h ../include/globals.h ../include/inspircd_config.h
+libIRCDxline.so: xline.cpp ../include/base.h ../include/xline.h ../include/inspircd.h ../include/channels.h ../include/users.h ../include/globals.h ../include/inspircd_config.h ../include/timer.h
        \$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c xline.cpp
        \$(CC) -pipe -Wl,--rpath -Wl,$config{LIBRARY_DIR} -shared -o libIRCDxline.so xline.o
 
@@ -1813,7 +1479,7 @@ libIRCDstring.so: inspstring.cpp ../include/base.h ../include/inspstring.h ../in
        \$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c inspstring.cpp
        \$(CC) -pipe -Wl,--rpath -Wl,$config{LIBRARY_DIR} -shared -o libIRCDstring.so inspstring.o
 
-libIRCDasyncdns.so: dns.cpp ../include/base.h ../include/dns.h ../include/inspircd.h ../include/channels.h ../include/users.h ../include/globals.h ../include/inspircd_config.h
+libIRCDasyncdns.so: dns.cpp ../include/base.h ../include/dns.h ../include/inspircd.h ../include/channels.h ../include/users.h ../include/globals.h ../include/inspircd_config.h ../include/timer.h
        \$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c dns.cpp
        \$(CC) -pipe -Wl,--rpath -Wl,$config{LIBRARY_DIR} -shared -o libIRCDasyncdns.so dns.o
 
@@ -1825,7 +1491,7 @@ libIRCDconfigreader.so: configreader.cpp ../include/base.h ../include/configread
        \$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c configreader.cpp
        \$(CC) -pipe -Wl,--rpath -Wl,$config{LIBRARY_DIR} -shared -o libIRCDconfigreader.so configreader.o
 
-libIRCDcommands.so: commands.cpp ../include/base.h ../include/inspircd.h ../include/channels.h ../include/users.h ../include/globals.h ../include/inspircd_config.h
+libIRCDcommands.so: commands.cpp ../include/base.h ../include/inspircd.h ../include/channels.h ../include/users.h ../include/globals.h ../include/inspircd_config.h ../include/timer.h
        \$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c commands.cpp
        \$(CC) -pipe -Wl,--rpath -Wl,$config{LIBRARY_DIR} -shared -o libIRCDcommands.so commands.o
 
@@ -1833,11 +1499,11 @@ libIRCDdynamic.so: dynamic.cpp ../include/base.h ../include/dynamic.h ../include
        \$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c dynamic.cpp
        \$(CC) -pipe -Wl,--rpath -Wl,$config{LIBRARY_DIR} -shared -o libIRCDdynamic.so dynamic.o
 
-libIRCDusers.so: users.cpp ../include/base.h ../include/users.h ../include/inspircd.h ../include/channels.h ../include/users.h ../include/globals.h ../include/inspircd_config.h
+libIRCDusers.so: users.cpp ../include/base.h ../include/users.h ../include/inspircd.h ../include/channels.h ../include/users.h ../include/globals.h ../include/inspircd_config.h ../include/timer.h
        \$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c users.cpp
        \$(CC) -pipe -Wl,--rpath -Wl,$config{LIBRARY_DIR} -shared -o libIRCDusers.so users.o
 
-libIRCDmodules.so: modules.cpp ../include/base.h ../include/modules.h ../include/inspircd.h ../include/channels.h ../include/users.h ../include/globals.h ../include/inspircd_config.h
+libIRCDmodules.so: modules.cpp ../include/base.h ../include/modules.h ../include/inspircd.h ../include/channels.h ../include/users.h ../include/globals.h ../include/inspircd_config.h ../include/timer.h
        \$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c modules.cpp
        \$(CC) -pipe -Wl,--rpath -Wl,$config{LIBRARY_DIR} -shared -o libIRCDmodules.so modules.o
 
@@ -1849,11 +1515,11 @@ libIRCDsocket.so: socket.cpp ../include/base.h ../include/inspircd.h ../include/
        \$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c socket.cpp
        \$(CC) -pipe -Wl,--rpath -Wl,$config{LIBRARY_DIR} -shared -o libIRCDsocket.so socket.o
 
-libIRCDinspsocket.so: inspsocket.cpp ../include/base.h ../include/inspircd.h ../include/globals.h ../include/inspircd_config.h
+libIRCDinspsocket.so: inspsocket.cpp ../include/base.h ../include/inspircd.h ../include/globals.h ../include/inspircd_config.h ../include/timer.h
        \$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c inspsocket.cpp
        \$(CC) -pipe -Wl,--rpath -Wl,$config{LIBRARY_DIR} -shared -o libIRCDinspsocket.so inspsocket.o
 
-libIRCDtimer.so: timer.cpp ../include/base.h ../include/inspircd.h ../include/globals.h ../include/inspircd_config.h
+libIRCDtimer.so: timer.cpp ../include/base.h ../include/inspircd.h ../include/globals.h ../include/inspircd_config.h ../include/timer.h
        \$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c timer.cpp
        \$(CC) -pipe -Wl,--rpath -Wl,$config{LIBRARY_DIR} -shared -o libIRCDtimer.so timer.o
 
@@ -1869,78 +1535,3 @@ ITEM
        close(FH);
 }
 
-sub showhelp
-{
-       chomp($PWD = `pwd`);
-       print "Usage: configure [options]
-
-*** NOTE: NON-INTERACTIVE CONFIGURE IS *NOT* SUPPORTED BY THE ***
-*** INSPIRCD DEVELOPMENT TEAM. DO NOT ASK FOR HELP REGARDING  ***
-***     NON-INTERACTIVE CONFIGURE ON THE FORUMS OR ON IRC!    ***
-
-Options: [defaults in brackets after descriptions]
-
-When no options are specified, interactive
-configuration is started and you must specify
-any required values manually. If one or more
-options are specified, non-interactive configuration
-is started, and any omitted values are defaulted.
-
-Arguments with a single \"-\" symbol, as in
-InspIRCd 1.0.x, are also allowed.
-
-  --disable-interactive        Sets no options intself, but
-                               will disable any interactive prompting.
-  --update                     Update makefiles and dependencies
-  --modupdate                  Detect new modules and write makefiles
-  --svnupdate {rebuild}        Update working copy via subversion
-                               {and optionally rebuild it}
-  --clean                      Remove .config.cache file and go interactive
-  --enable-gnutls              Enable GnuTLS module [no]
-  --enable-openssl             Enable OpenSSL module [no]
-  --with-nick-length=[n]       Specify max. nick length [32]
-  --with-channel-length=[n]    Specify max. channel length [64]
-  --with-max-channels=[n]      Specify max. number of channels
-                               a normal user may join [20]
-  --with-max-oper-channels=[n] Specify max. number of channels
-                               an irc operator may join [60]
-  --with-max-clients=[n]       Specify maximum number of users
-                               which may connect locally
-  --enable-optimization=[n]    Optimize using -O[n] gcc flag
-  --enable-epoll               Enable epoll() where supported [set]
-  --enable-kqueue              Enable kqueue() where supported [set]
-  --disable-epoll              Do not enable epoll(), fall back
-                               to select() [not set]
-  --disable-kqueue             Do not enable kqueue(), fall back
-                               to select() [not set]
-  --enable-ipv6                Build ipv6 native InspIRCd [no]
-  --enable-remote-ipv6         Build with ipv6 support for remote
-                               servers on the network [yes]
-  --disable-remote-ipv6        Do not allow remote ipv6 servers [not set]
-  --with-cc=[filename]         Use an alternative g++ binary to
-                               build InspIRCd [g++]
-  --with-ident-length=[n]      Specify max length of ident [12]
-  --with-quit-length=[n]       Specify max length of quit [200]
-  --with-topic-length=[n]      Specify max length of topic [350]
-  --with-kick-length=[n]       Specify max length of kick [200]
-  --with-gecos-length=[n]      Specify max length of gecos [150]
-  --with-away-length=[n]       Specify max length of away [150]
-  --with-max-modes=[n]         Specify max modes per line which
-                               have parameters [20]
-  --prefix=[directory]         Base directory to install into (if defined,
-                               can automatically define config, module, bin
-                              and library dirs as subdirectories of prefix)
-                               [$PWD]
-  --config-dir=[directory]     Config file directory for config and SSL certs
-                               [$PWD/conf]
-  --module-dir=[directory]     Modules directory for loadable modules
-                               [$PWD/modules]
-  --binary-dir=[directory]     Binaries directory for core binary
-                               [$PWD/bin]
-  --library-dir=[directory]    Library directory for core libraries
-                               [$PWD/lib]
-  --help                       Show this help text and exit
-
-";
-       exit(0);
-}