]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - configure
Stupid uname stuff again
[user/henk/code/inspircd.git] / configure
index 430bd859da91d7b5969c715077e3dcce0a1fe0bf..9e437e3786e47c68fc1afa296ccd2b49544e55e3 100755 (executable)
--- a/configure
+++ b/configure
 #
 ########################################
 
-
-$this = resolve_directory(chomp(`pwd`));                                       # PWD, Regardless.
+chomp($topdir = `pwd`);
+$this = resolve_directory($topdir);                                            # PWD, Regardless.
 @modlist = ();                                                                 # Declare for Module List..
 %config = ();                                                                  # Initiate Configuration Hash..
-$config{ME}                 = resolve_directory(chomp(`pwd`));                 # Present Working Directory
+$config{ME}                 = resolve_directory($topdir);                      # Present Working Directory
 $config{CONFIG_DIR}         = resolve_directory($config{ME}."/conf");          # Configuration Directory
 $config{MODULE_DIR}         = resolve_directory($config{ME}."/modules");       # Modules Directory
 $config{BINARY_DIR}         = resolve_directory($config{ME}."/bin");           # Binary Directory
@@ -32,10 +32,15 @@ $config{USE_EPOLL}          = "y";                                          # epoll enabled
 chomp($config{MAX_CLIENT_T} = `sh -c \"ulimit -n\"`);                          # 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}       = `uname -s`);                                     # Operating System Name
+chomp($config{OSNAME}       = `/bin/uname`);                                   # Operating System Name
+
+print "OSN: '" . $config{OSNAME} . "'\n";
 
 if (!$config{OSNAME}) {
-  $config{OSNAME} = "Unknown";                                  # For use when uname fails.
+  chomp($config{OSNAME} = `/usr/bin/uname`);
+  if (!$config{OSNAME}) {
+       $config{OSNAME} = "Unknown";
+  }
 }
 
 if (!$config{MAX_CLIENT_T}) { 
@@ -374,7 +379,7 @@ sub dir_check {
 }
 
 sub getosflags {
-  if ($config{OSNAME} eq "FreeBSD") {
+  if ($config{OSNAME} =~ /BSD$/) {
     $config{LDLIBS} = "-Ldl";
     $config{FLAGS}  = "-fPIC -frtti $OPTIMISATI -Woverloaded-virtual $config{OPTIMISATI}";
     $config{MAKEPROG} = "gmake";
@@ -383,6 +388,14 @@ sub getosflags {
     $config{FLAGS}  = "-fPIC -frtti $OPTIMISATI -Woverloaded-virtual $config{OPTIMISATI}";
     $config{MAKEPROG} = "make";
   }
+  if ($config{OSNAME} =~ /SunOS/) {
+    # solaris/sunos needs these
+    # socket = bsd sockets api
+    # nsl = dns stuff
+    # rt = POSIX realtime extensions
+    # resolv = inet_aton only (why isnt this in nsl?!)
+    $config{LDLIBS} = $config{LDLIBS} . " -lsocket -lnsl -lrt -lresolv";
+  }
 }
 
 sub is_dir {
@@ -433,6 +446,9 @@ sub writefiles {
 #define MAXBUF 514
 EOF
 
+  if ($config{OSNAME} =~ /SunOS/) {
+    print FILEHANDLE "#define IS_SOLARIS\n";
+  }
   if ($config{GCCVER} > 3) {
     print FILEHANDLE "#define GCC3\n";
     print FILEHANDLE "#define GCC34\n";