]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - configure
Detect openssl on freebsd with the openssl binary, so we can find the base version...
[user/henk/code/inspircd.git] / configure
index ff83fab19a8544d0161e04da12219429c93abf44..ecc8b1640ed997ff800f6a2e35c4c2b919037caa 100755 (executable)
--- a/configure
+++ b/configure
@@ -2,7 +2,7 @@
 ###################################################
 # InspIRCd Configuration Script
 #
-# Copyright 2002-2007 The InspIRCd Development Team
+# Copyright 2002-2008 The InspIRCd Development Team
 #  http://www.inspircd.org/wiki/index.php/Credits
 #
 # Licensed under GPL, please see the COPYING file
@@ -98,7 +98,7 @@ our %extraobjects = ();
 our %extrasources = ();
 
 our ($opt_use_gnutls, $opt_rebuild, $opt_use_openssl, $opt_nointeractive, $opt_nick_length,
-    $opt_chan_length, $opt_maxclients, $opt_ports, $opt_epoll, $opt_kqueue, $opt_noports,
+    $opt_chan_length, $opt_ports, $opt_epoll, $opt_kqueue, $opt_noports,
     $opt_noepoll, $opt_nokqueue, $opt_disablerpath, $opt_ipv6, $opt_ipv6links,
     $opt_noipv6links, $opt_ident, $opt_quit, $opt_topic, $opt_maxbuf, $opt_kick,
     $opt_gecos, $opt_away, $opt_modes, $opt_disable_debug, $opt_maxchans,
@@ -123,7 +123,6 @@ GetOptions (
        'disable-interactive' => \$opt_nointeractive,
        'with-nick-length=i' => \$opt_nick_length,
        'with-channel-length=i' => \$opt_chan_length,
-       'with-max-clients=i' => \$opt_maxclients,
        'enable-ports' => \$opt_ports,
        'enable-epoll' => \$opt_epoll,
        'enable-kqueue' => \$opt_kqueue,
@@ -181,7 +180,6 @@ our $non_interactive = (
        (defined $opt_away) ||
        (defined $opt_gecos) ||
        (defined $opt_kick) ||
-       (defined $opt_maxclients) ||
        (defined $opt_modes) ||
        (defined $opt_topic) ||
        (defined $opt_quit) ||
@@ -241,7 +239,16 @@ if (defined $opt_library_dir)
        $config{LIBRARY_DIR} = $opt_library_dir;
 }
 chomp($config{HAS_GNUTLS}   = `libgnutls-config --version 2>/dev/null | cut -c 1,2,3`); # GNUTLS Version.
-chomp($config{HAS_OPENSSL}  = `pkg-config --modversion openssl 2>/dev/null`);          # Openssl version
+
+if ($^O eq "freebsd")
+{
+       chomp($config{HAS_OPENSSL} = `openssl version | cut -d ' ' -f 2`);                      # OpenSSL version, freebsd specific
+}
+else
+{
+       chomp($config{HAS_OPENSSL}  = `pkg-config --modversion openssl 2>/dev/null`);           # Openssl version, others
+}
+
 chomp(our $gnutls_ver = $config{HAS_GNUTLS});
 chomp(our $openssl_ver = $config{HAS_OPENSSL});
 $config{USE_GNUTLS}        = "n";
@@ -324,8 +331,6 @@ if (defined $opt_noipv6links)
 {
        $config{SUPPORT_IP6LINKS} = "n";
 }
-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
@@ -391,12 +396,6 @@ if ($config{GCCVER} eq "") {
        exit;
 }
 
-our $fd_scan_fail = "";
-if (!$config{MAX_CLIENT_T}) { 
-       $config{MAX_CLIENT_T} = 1024;                            # Set a reasonable 'Default'
-       $fd_scan_fail = "true";                                # Used Later
-}
-
 # Get and Set some important vars..
 getmodules();
 
@@ -493,6 +492,7 @@ sub svnupdate
        my $configurechanged = 0; # Needs ./configure -update
        my $coredirchanged = 0; # Needs ./configure -update
        my $moduledirchanged = 0; # Needs ./configure -modupdate
+       my $rootincchanged = 0;
        my @conflicted = ();
        while (defined(my $line = <$fd>))
        {
@@ -507,7 +507,7 @@ sub svnupdate
                        {
                                $configurechanged = 1;
                        }
-                       if ($file =~ m#^src/modules#)
+                       elsif ($file =~ m#^src/modules#)
                        {
                                $moduledirchanged = 1;
                        }
@@ -515,6 +515,10 @@ sub svnupdate
                        {
                                $coredirchanged = 1;
                        }
+                       elsif ($file =~ m/^\..*\.inc$/)
+                       {
+                               $rootincchanged = 1;
+                       }
                }
                elsif ($action eq "U" || $action eq "G")
                {
@@ -522,6 +526,10 @@ sub svnupdate
                        {
                                $configurechanged = 1;
                        }
+                       elsif ($file =~ m/^\..*\.inc$/)
+                       {
+                               $rootincchanged = 1;
+                       }
                }
                elsif ($action eq "A" || $action eq "D")
                {
@@ -550,13 +558,15 @@ sub svnupdate
        if (scalar(@conflicted) > 0)
        {
                print STDERR "\e[0;33;1mERROR:\e[0m You have local modifications which conflicted with the updates from SVN\n";
-               printf STDERR "Configure is not able to complete the update. Please resolve these conflicts, then run ./configure -%supdate", (($coredirchanged || $configurechanged) ? "" : "mod");
+               printf STDERR "Configure is not able to complete the update. Please resolve these conflicts, then run ./configure -%supdate\n", (($coredirchanged || $configurechanged) ? "" : "mod");
+               print "Conflicted files: " . join ", ", @conflicted . "\n";
+               exit 1;
        }
        if ($configurechanged || $coredirchanged)
        {
                system("perl configure -update");
        }
-       elsif ($moduledirchanged)
+       elsif ($moduledirchanged || $rootincchanged)
        {
                system("perl configure -modupdate");
        }
@@ -576,18 +586,6 @@ print ((!getcache()) ? "not found\n" : "found\n");
 print "Checking operating system version... ";
 print getosflags() . "\n";
 
-if (defined $opt_maxclients)
-{
-       $config{MAX_CLIENT} = $opt_maxclients;
-}
-
-if (!$config{MAX_CLIENT}) { 
-       # If the cache hasn't set the max clients, copy the variable of MAX_CLIENT_T, this
-       # allows us to keep _T for testing purposes. (ie. "Are you sure you want to go
-       # higher than the found value" :))
-       $config{MAX_CLIENT} = $config{MAX_CLIENT_T};
-}
-
 printf "Checking if stdint.h exists... ";
 $config{HAS_STDINT} = "true";
 our $fail = 0;
@@ -791,7 +789,6 @@ a new value. Please note: You will \e[1mHAVE\e[0m to read the docs
 dir, otherwise you won't have a config file!
 
 Your operating system is: \e[1;32m$config{OSNAME}\e[0m ($wholeos)
-Maximum file descriptors: \e[1;32m$config{MAX_CLIENT_T}\e[0m
 Your InspIRCd revision ID is \e[1;32mr$rev\e[0m
 STOP
        if ($rev eq "r0") {
@@ -905,11 +902,6 @@ should NOT be used. You should probably specify a newer compiler.\n\n";
        print "of the 'maximum number of clients' setting which may be different on\n";
        print "different servers on the network.\n\n";
 
-       # File Descriptor Settings..
-       promptnumeric("number of clients at any one time", "MAX_CLIENT_T");
-       $config{MAX_CLIENT} = $config{MAX_CLIENT_T};
-       $config{MAX_DESCRIPTORS} = $config{MAX_CLIENT_T};
-
        promptnumeric("length of nicknames", "NICK_LENGT");
        promptnumeric("length of channel names", "CHAN_LENGT");
        promptnumeric("number of mode changes in one line", "MAXI_MODES");
@@ -1122,8 +1114,8 @@ sub getosflags {
 
        # Beware: Linux sets it's own cflags below for some retarded reason
        $config{LDLIBS} = "-pthread -lstdc++";
-       $config{FLAGS}  = "-fPIC -Woverloaded-virtual -Wshadow -Wall $config{OPTIMISATI}";
-       $config{DEVELOPER} = "-fPIC -Woverloaded-virtual -Wshadow -Wall -g";
+       $config{FLAGS}  = "-fPIC -Woverloaded-virtual -Wshadow -Wformat=2 -Wmissing-format-attribute -Wall $config{OPTIMISATI}";
+       $config{DEVELOPER} = "-fPIC -Woverloaded-virtual -Wshadow -Wall -Wformat=2 -Wmissing-format-attribute -g";
        $SHARED = "-Wl,--rpath -Wl,$config{LIBRARY_DIR} -shared" unless defined $opt_disablerpath;
        $config{MAKEPROG} = "make";
 
@@ -1149,7 +1141,7 @@ sub getosflags {
 
        if ($config{OSNAME} =~ /Linux/i) {
                $config{LDLIBS} = "-ldl -lstdc++ -pthread";
-               $config{FLAGS}  = "-fPIC -Woverloaded-virtual -Wshadow -Wall $config{OPTIMISATI}";
+#              $config{FLAGS}  = "-fPIC -Woverloaded-virtual -Wshadow -Wall $config{OPTIMISATI}";
                $config{FLAGS}  .= " " . $ENV{CXXFLAGS} if exists($ENV{CXXFLAGS});
                $config{LDLIBS} .= " " . $ENV{LDLIBS} if exists($ENV{LDLIBS});
                $config{MAKEPROG} = "make";
@@ -1210,10 +1202,7 @@ sub writefiles {
 #define MOD_PATH "$config{MODULE_DIR}"
 #define VERSION "$version"
 #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
 #define MAXMODES $config{MAXI_MODES}