X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=configure;h=64059152d0bcb4ac776b9f61b590f0469e9673cf;hb=d544f077bad47d6a499a07706604e84b417ab24d;hp=48621b5856c188e9f81a71136146aa64eaea9022;hpb=eb38bafc62e836336bbcdeb0ad1fb0102bea792a;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/configure b/configure index 48621b585..64059152d 100755 --- a/configure +++ b/configure @@ -12,7 +12,9 @@ # ######################################## -chomp($topdir = `pwd`); +use Cwd; + +chomp($topdir = getcwd()); $this = resolve_directory($topdir); # PWD, Regardless. @modlist = (); # Declare for Module List.. %config = (); # Initiate Configuration Hash.. @@ -35,16 +37,15 @@ $config{MAX_OPERCH} = "60"; # Default Max. Channels per oper $config{MAXI_MODES} = "20"; # Default Max. Number of Modes set at once. $config{HAS_STRLCPY} = "false"; # strlcpy Check. $config{HAS_STDINT} = "false"; # stdint.h check -$config{HAS_EXECINFO} = "0"; # execinfo.h Check. $config{USE_KQUEUE} = "y"; # kqueue enabled $config{USE_EPOLL} = "y"; # epoll enabled -$config{THREADED_DNS} = "n"; # threaded dns (experimental) $config{IPV6} = "n"; # IPv6 support (experimental) +$config{SUPPORT_IP6LINKS} = "y"; # IPv4 supporting IPv6 links (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} = `g++ -dumpversion | cut -c 1`); # Major GCC Version -chomp($config{OSNAME} = `/bin/uname`); # Operating System Name +chomp($config{OSNAME} = `uname`); # Operating System Name $config{CC} = "g++"; # C++ compiler $config{MAKEORDER} = "ircd mods"; # build order $config{STATICLIBS} = ""; # library archive path @@ -57,27 +58,34 @@ $config{MAX_AWAY} = "200"; # max AWAY size $no_svn = 0; -$config{HAS_OPENSSL} =~ /OpenSSL (\S+) \d+ \S+ \d{4}/; +$config{HAS_OPENSSL} =~ /OpenSSL ([-[:digit:].]+)([a-z])? (\w{3}|[0-9]+) (\w{3}|[0-9]+) [0-9]{4}/; $config{HAS_OPENSSL} = $1; if ($config{GCCVER} eq "") { print "g++ was not found! You require g++ (the GNU C++ compiler, part of GCC) to build InspIRCd!\n"; - return 0; + exit; } # Minihack! Convert Cygwin to 'Cyg-Static' so i can # Keep my dynamic module experiments here for later # concideration! -if ($config{OSNAME} =~ /CYGWIN/) { +if ($config{OSNAME} =~ /CYGWIN/) +{ $config{OSNAME} = "CYG-STATIC"; } - -if ((!$config{OSNAME}) || ($config{OSNAME} eq "")) { +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 "")){ + + if((!$config{OSNAME}) || ($config{OSNAME} eq "")) + { $config{OSNAME} = "Unknown"; - } + } } if (!$config{MAX_CLIENT_T}) { @@ -187,27 +195,6 @@ if (!$fail) { print "yes\n" if $config{HAS_STRLCPY} eq "true"; print "no\n" if $config{HAS_STRLCPY} eq "false"; -printf "Checking if execinfo.h exists... "; -$config{HAS_EXECINFO} = "0"; -my $fail = 0; -open(EXECINFO, "); if (($tmp eq "") || ($tmp =~ /^y/i)) { # Attempt to Create the Dir.. + + system("mkdir -p \"$var\" >> /dev/null 2>&1"); $chk = system("mkdir -p \"$var\" >> /dev/null 2>&1") / 256; if ($chk != 0) { print "Unable to create directory. ($var)\n\n"; @@ -859,8 +856,8 @@ sub dir_check { sub getosflags { if ($config{OSNAME} =~ /BSD$/) { - $config{LDLIBS} = "-Ldl -lstdc++"; - $config{FLAGS} = "-fPIC -frtti -Wall -Woverloaded-virtual $config{OPTIMISATI}"; + $config{LDLIBS} = "-lstdc++"; + $config{FLAGS} = "-fPIC -Wall -Woverloaded-virtual $config{OPTIMISATI}"; $config{MAKEPROG} = "gmake"; if ($config{OSNAME} eq "OpenBSD") { chomp($foo = `eg++ -dumpversion | cut -c 1`); @@ -874,15 +871,15 @@ sub getosflags { } } else { $config{LDLIBS} = "-ldl -lstdc++"; - $config{FLAGS} = "-fPIC -frtti -Wall -Woverloaded-virtual $config{OPTIMISATI}"; + $config{FLAGS} = "-fPIC -Wall -Woverloaded-virtual $config{OPTIMISATI}"; $config{MAKEPROG} = "make"; if ($config{OSNAME} =~ /CYGWIN/) { - $config{FLAGS} = "-frtti -Wall -Woverloaded-virtual $config{OPTIMISATI}"; + $config{FLAGS} = "-Wall -Woverloaded-virtual $config{OPTIMISATI}"; $config{LDLIBS} = ""; $config{MAKEPROG} = "/usr/bin/make"; $config{MAKEORDER} = "ircd mods"; } elsif ($config{OSNAME} eq "CYG-STATIC") { - $config{FLAGS} = "-frtti -Wall -Woverloaded-virtual $config{OPTIMISATI}"; + $config{FLAGS} = "-Wall -Woverloaded-virtual $config{OPTIMISATI}"; $config{LDLIBS} = ""; $config{MAKEPROG} = "/usr/bin/make"; $config{MAKEORDER} = "mods ircd"; @@ -890,7 +887,9 @@ sub getosflags { $config{STATIC_LINK} = "yes"; } } - if ($config{OSNAME} =~ /SunOS/) { + + if ($config{OSNAME} =~ /SunOS/) + { # solaris/sunos needs these # socket = bsd sockets api # nsl = dns stuff @@ -898,6 +897,12 @@ sub getosflags { # resolv = inet_aton only (why isnt this in nsl?!) $config{LDLIBS} = $config{LDLIBS} . " -lsocket -lnsl -lrt -lresolv"; } + + if($config{OSNAME} eq "MINGW32") + { + # All code is position-independent on windows + $config{FLAGS} =~ s/-fPIC //; + } } sub is_dir { @@ -935,6 +940,7 @@ sub getrevision { return "0"; } my $data = `svn info`; + if ($data eq "") { $no_svn = 1; $rev = "0"; @@ -985,6 +991,7 @@ sub writefiles { #define MAXGECOS $config{MAX_GECOS} #define MAXAWAY $config{MAX_AWAY} #define OPTIMISATION $config{OPTIMITEMP} +#define LIBRARYDIR "$config{LIBRARY_DIR}" #define SYSTEM "$incos" #define MAXBUF 514 EOF @@ -995,12 +1002,12 @@ EOF print FILEHANDLE "#define IS_CYGWIN\n"; print FILEHANDLE "#ifndef FD_SETSIZE\n#define FD_SETSIZE 1024\n#endif\n"; } + if ($config{OSNAME} eq "MINGW32") { + print FILEHANDLE "#define IS_MINGW\n"; + } if ($config{OSNAME} eq "CYG-STATIC") { print FILEHANDLE "#ifndef FD_SETSIZE\n#define FD_SETSIZE 1024\n#endif\n"; } - if ($config{HAS_EXECINFO} eq "1") { - print FILEHANDLE "#define HAS_EXECINFO\n"; - } if ($config{STATIC_LINK} eq "yes") { print FILEHANDLE "#define STATIC_LINK\n"; } @@ -1013,12 +1020,12 @@ EOF if ($config{HAS_STDINT} eq "true") { print FILEHANDLE "#define HAS_STDINT\n"; } - if ($config{THREADED_DNS} =~ /y/i) { - print FILEHANDLE "#define THREADED_DNS\n"; - } - if ($config{IPV6} =~/y/i) { + if ($config{IPV6} =~ /y/i) { print FILEHANDLE "#define IPV6\n"; } + if ($config{SUPPORT_IP6LINKS} =~ /y/i) { + print FILEHANDLE "#define SUPPORT_IP6LINKS\n"; + } my $use_hiperf = 0; if (($has_kqueue) && ($config{USE_KQUEUE} eq "y")) { print FILEHANDLE "#define USE_KQUEUE\n"; @@ -1040,8 +1047,10 @@ EOF close(FILEHANDLE); } -open(FILEHANDLE, ">include/inspircd_se_config.h"); - print FILEHANDLE <include/inspircd_se_config.h"); + print FILEHANDLE <include/inspircd_se_config.h"); #endif EOF -close(FILEHANDLE); + close(FILEHANDLE); + } # Create a Modules List.. @@ -1077,9 +1087,7 @@ close(FILEHANDLE); } opendir(DIRHANDLE, $this); - if ($config{THREADED_DNS} =~ /y/i) { - $config{LDLIBS} = $config{LDLIBS} . " -pthread"; - } + foreach $name (sort readdir(DIRHANDLE)) { if ($name =~ /^\.(.+)\.inc$/) { $file = $1; @@ -1254,7 +1262,7 @@ HEADER print FILEHANDLE <src/Makefile") or die("Could not write src/Makefile"); print FH <