]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - configure
Untested priority system for modules to move themselves to the start or end of the...
[user/henk/code/inspircd.git] / configure
index 21d8fb5c4b53bf62771657afd64b95e54c43dca7..44fa939c311091a851bdc86ab1243bba43bfb6b9 100755 (executable)
--- a/configure
+++ b/configure
@@ -34,6 +34,7 @@ $config{USE_EPOLL}          = "y";                                            # epoll enabled
 $config{THREADED_DNS}       = "n";                                             # threaded dns (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{OSNAME}       = `/bin/uname`);                                   # Operating System Name
@@ -719,6 +720,7 @@ sub writefiles {
 #define MOD_PATH "$config{MODULE_DIR}"
 #define VERSION "$version"
 #define MAXCLIENTS $config{MAX_CLIENT}
+#define MAX_DESCRIPTORS $config{MAX_DESCRIPTORS}
 #define NICKMAX $NL
 #define CHANMAX $CL
 #define MAXCHANS $config{MAX_CHANNE}
@@ -872,7 +874,8 @@ EOF
 
   # Create a Modules List..
   my $modules = "";
-  my $flags = "";
+  my $cmflags = "";
+  my $liflags = "";
   if ($config{OSNAME} =~ /CYGWIN/) {
      open(MODLIST,">include/modlist.h");
      print MODLIST <<HEADER;
@@ -892,7 +895,8 @@ HEADER
   foreach $i (@modlist)
   {
     if ($i !~ /_static$/) {
-     $flags = getcompilerflags("src/modules/m_".$i.".cpp");
+     $cmflags = getcompilerflags("src/modules/m_".$i.".cpp");
+     $liflags = getlinkerflags("src/modules/m_".$i.".cpp");
      if ($config{OSNAME} =~ /CYGWIN/) {
         print FILEHANDLE <<EOCHEESE;
 m_$i.o: m_$i\_static.cpp ../../include/modules.h ../../include/users.h ../../include/channels.h ../../include/base.h
@@ -918,8 +922,8 @@ EOENT
      else {
          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/inspircd_io.h
-       \$(CC) -pipe -I../../include \$(FLAGS) $flags -export-dynamic -c m_$i.cpp
-       \$(CC) \$(FLAGS) -shared $flags -o m_$i.so m_$i.o
+       \$(CC) -pipe -I../../include \$(FLAGS) $cmflags -export-dynamic -c m_$i.cpp
+       \$(CC) \$(FLAGS) -shared $liflags -o m_$i.so m_$i.o
        \@-rm -f \$(MODPATH)/m_$i.so
        cp m_$i.so \$(MODPATH)/
        chmod 0700 \$(MODPATH)/m_$i.so
@@ -947,6 +951,19 @@ sub getcompilerflags {
   return undef;
 }
 
+sub getlinkerflags {
+  my ($file) = @_;
+  open(FLAGS, $file);
+  while (<FLAGS>) {
+    if ($_ =~ /^\/\* \$LinkerFlags: (.+) \*\/$/) {
+      close(FLAGS);
+      return $1;
+    }
+  }
+  close(FLAGS);
+  return undef;
+}
+
 sub show_splash {
   print "'\033[1;33m####\033[0m:'\033[1;33m##\033[0m::: \033[1;33m##\033[0m::'\033[1;33m######\033[0m::'\033[1;33m########\033[0m::'\033[1;33m####\033[0m:'\033[1;33m########\033[0m:::'\033[1;33m######\033[0m::'\033[1;33m########\033[0m::\n";
   print ". \033[1;33m##\033[0m:: \033[1;33m###\033[0m:: \033[1;33m##\033[0m:'\033[1;33m##\033[0m... \033[1;33m##\033[0m: \033[1;33m##\033[0m.... \033[1;33m##\033[0m:. \033[1;33m##\033[0m:: \033[1;33m##\033[0m.... \033[1;33m##\033[0m:'\033[1;33m##\033[0m... \033[1;33m##\033[0m: \033[1;33m##\033[0m.... \033[1;33m##\033[0m:\n";
@@ -1010,7 +1027,7 @@ CXXFLAGS = -I../include \${FLAGS}
 all: aes.o command_parse.o cull_list.o userprocess.o socketengine.o socket.o hashcomp.o channels.o mode.o xline.o inspstring.o dns.o base.o inspircd_io.o message.o $cmdobjs commands.o dnsqueue.o dynamic.o users.o modules.o wildcard.o helperfuncs.o \$(MODULES) inspircd.exe
 
 inspircd.exe: inspircd.cpp ../include/base.h ../include/channels.h ../include/inspircd.h ../include/channels.h ../include/globals.h ../include/inspircd_config.h ../include/base.h
-       \$(CC) -I../include \$(FLAGS) inspircd.cpp -o inspircd.exe \$(LDLIBS) channels.o mode.o xline.o inspstring.o dns.o base.o inspircd_io.o message.o commands.o dnsqueue.o dynamic.o users.o modules.o wildcard.o helperfuncs.o hashcomp.o socket.o socketengine.o userprocess.o cull_list.o command_parse.o aes.o \$(MODULES)
+       \$(CC) -I../include \$(FLAGS) inspircd.cpp -o inspircd.exe \$(LDLIBS) channels.o mode.o xline.o inspstring.o dns.o base.o inspircd_io.o message.o $cmdobjs commands.o dnsqueue.o dynamic.o users.o modules.o wildcard.o helperfuncs.o hashcomp.o socket.o socketengine.o userprocess.o cull_list.o command_parse.o aes.o \$(MODULES)
 
 cull_list.o: cull_list.cpp ../include/base.h ../include/hashcomp.h ../include/globals.h ../include/inspircd_config.h ../include/users.h ../include/channels.h
        \$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c cull_list.cpp