X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=configure;h=ceac058476349881f291d5eb3ca62a17168e4f50;hb=85daa08f862c0e58db54af04c55317cddd4b8036;hp=6e49a157f82a0efdfb33f25914b049e103357c7f;hpb=d54fbc71e2a2e0f70002e2d36c669c4aa3d59e17;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/configure b/configure index 6e49a157f..ceac05847 100755 --- a/configure +++ b/configure @@ -34,15 +34,17 @@ $config{MAX_CHANNE} = "20"; # Default Max. $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{THREADED_DNS} = "n"; # threaded dns $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{GCC34} = `g++ -dumpversion | cut -c 3`); # Minor GCC Version chomp($config{OSNAME} = `/bin/uname`); # Operating System Name $config{CC} = "g++"; # C++ compiler $config{MAKEORDER} = "ircd mods"; # build order @@ -59,6 +61,11 @@ $no_svn = 0; $config{HAS_OPENSSL} =~ /OpenSSL (\S+) \d+ \S+ \d{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"; + exit; +} + # Minihack! Convert Cygwin to 'Cyg-Static' so i can # Keep my dynamic module experiments here for later # concideration! @@ -99,12 +106,32 @@ if ($arg eq "-update") { getosflags(); $has_epoll = $config{HAS_EPOLL}; $has_kqueue = $config{HAS_KQUEUE}; - writefiles(); + writefiles(1); print "Complete.\n"; exit; } } +if ($arg eq "-modupdate") { + # Does the cache file exist? + if (!getcache()) { + # No, No it doesn't.. *BASH* + print "You have not run ./configure before. Please do this before trying to run the update script.\n"; + exit 0; + } else { + # We've Loaded the cache file and all our variables.. + print "Updating Files..\n"; + getosflags(); + $has_epoll = $config{HAS_EPOLL}; + $has_kqueue = $config{HAS_KQUEUE}; + writefiles(0); + print "Complete.\n"; + exit; + } +} + + + if ($arg eq "-svnupdate") { my $fail = 0; open(FH,"<.svn/entries") or $fail = 1; @@ -120,28 +147,6 @@ if ($arg eq "-svnupdate") { exit; } -if ($arg eq "-modupdate") { - # Does the cache file exist? - if (!getcache()) { - # No, No it doesn't.. *BASH* - print "You have not run ./configure before. Please do this before trying to run the update script.\n"; - exit 0; - } else { - # We've Loaded the cache file and all our variables.. - print "Updating Files..\n"; - getosflags(); - $has_epoll = $config{HAS_EPOLL}; - $has_kqueue = $config{HAS_KQUEUE}; - if ($config{STATIC_LINK} eq "yes") { - write_static_modules_makefile(); - } else { - write_dynamic_modules_makefile(); - } - print "Complete.\n"; - exit; - } -} - print "Checking for cache from previous configure...\n"; getcache(); print "Checking operating system version...\n"; @@ -154,6 +159,17 @@ if (!$config{MAX_CLIENT}) { $config{MAX_CLIENT} = $config{MAX_CLIENT_T}; } +printf "Checking if stdint.h exists... "; +$config{HAS_STDINT} = "true"; +my $fail = 0; +open(STDINT, "include/inspircd_config.h"); - my $NL = $config{NICK_LENGT}+1; - my $CL = $config{CHAN_LENGT}+1; - print FILEHANDLE <include/inspircd_config.h"); + my $NL = $config{NICK_LENGT}+1; + my $CL = $config{CHAN_LENGT}+1; + print FILEHANDLE < 3) { - print FILEHANDLE "#define GCC3\n"; - print FILEHANDLE "#define GCC34\n"; - } - else - { - if ($config{GCCVER} == 3) { + if ($config{OSNAME} =~ /SunOS/) { + print FILEHANDLE "#define IS_SOLARIS\n"; + } + if ($config{OSNAME} =~ /CYGWIN/) { + print FILEHANDLE "#define IS_CYGWIN\n"; + print FILEHANDLE "#ifndef FD_SETSIZE\n#define FD_SETSIZE 1024\n#endif\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"; + } + if ($config{GCCVER} >= 3) { print FILEHANDLE "#define GCC3\n"; - if ($config{GCC34} > 3) { - print FILEHANDLE "#define GCC34\n"; - } } + if ($config{HAS_STRLCPY} eq "true") { + print FILEHANDLE "#define HAS_STRLCPY\n"; + } + 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) { + 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"; + $se = "socketengine_kqueue"; + $use_hiperf = 1; + } + if (($has_epoll) && ($config{USE_EPOLL} eq "y")) { + print FILEHANDLE "#define USE_EPOLL\n"; + $se = "socketengine_epoll"; + $use_hiperf = 1; + } + # user didn't choose either epoll or select for their OS. + # default them to USE_SELECT (ewwy puke puke) + if (!$use_hiperf) { + print FILEHANDLE "#define USE_SELECT\n"; + $se = "socketengine_select"; + } + print FILEHANDLE "\n#endif\n"; + close(FILEHANDLE); } - if ($config{HAS_STRLCPY} eq "true") { - print FILEHANDLE "#define HAS_STRLCPY\n"; - } - if ($config{THREADED_DNS} =~ /y/i) { - print FILEHANDLE "#define THREADED_DNS\n"; - } - if ($config{IPV6} =~/y/i) { - print FILEHANDLE "#define IPV6\n"; - } - my $use_hiperf = 0; - if (($has_kqueue) && ($config{USE_KQUEUE} eq "y")) { - print FILEHANDLE "#define USE_KQUEUE\n"; - $use_hiperf = 1; - } - if (($has_epoll) && ($config{USE_EPOLL} eq "y")) { - print FILEHANDLE "#define USE_EPOLL\n"; - $use_hiperf = 1; - } - # user didn't choose either epoll or select for their OS. - # default them to USE_SELECT (ewwy puke puke) - if (!$use_hiperf) { - print FILEHANDLE "#define USE_SELECT\n"; + + if ($writeheader) + { + open(FILEHANDLE, ">include/inspircd_se_config.h"); + print FILEHANDLE <src/modules/m_".$i."_static.cpp") or die("Could not create m_".$i."_static.cpp"); + open(MUNGED,">src/modules/.m_".$i."_static.cpp") or die("Could not create .m_".$i."_static.cpp"); while (chomp($a = )) { $a =~ s/init_module/$i\_init/g; print MUNGED "$a\n"; @@ -1268,7 +1334,7 @@ EOF $cmflags = getcompilerflags("src/modules/m_".$i.".cpp"); $liflags = getlinkerflags("src/modules/m_".$i.".cpp"); print FILEHANDLE <src/Makefile") or die("Could not write src/Makefile"); print FH <