$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
$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
$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 "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, "</usr/include/execinfo.h") or $fail = 1;
-if ($fail) {
- $fail = 0;
- open(EXECINFO, "</usr/local/include/execinfo.h") or $fail = 1;
- if (!$fail) {
- printf "/usr/local/include/execinfo.h\n";
- $config{HAS_EXECINFO} = "1";
- close(EXECINFO);
- }
- else {
- printf "Not found!\n";
- }
-}
-else {
- printf "/usr/include/execinfo.h\n";
- $config{HAS_EXECINFO} = "1";
- close(EXECINFO);
-}
printf "Checking if kqueue exists... ";
$has_kqueue = 0;
print "\033[0mOptimization Flag:\033[1;32m\t\t$config{OPTIMISATI}\033[0m\n";
print "\033[0mCompiler program:\033[1;32m\t\t$config{CC}\033[0m\n";
print "\033[0mStatic modules:\033[1;32m\t\t\t$config{STATIC_LINK}\033[0m\n";
-print "\033[0mMultithread DNS:\033[1;32m\t\t$config{THREADED_DNS}\033[0m\n";
print "\033[0mIPv6 Support:\033[1;32m\t\t\t$config{IPV6}\033[0m\n";
print "\033[0mIPv6 to IPv4 Links:\033[1;32m\t\t$config{SUPPORT_IP6LINKS}\033[0m\n";
print "\033[0mGnuTLS Support:\033[1;32m\t\t\t$config{USE_GNUTLS}\033[0m\n";
print "Symlinking src/modules/m_ssl_gnutls.cpp from extra/\n";
chdir("src/modules");
system("ln -s extra/m_ssl_gnutls.cpp");
+ system("ln -s extra/ssl_cert.h");
chdir("../..");
}
getmodules();
print "Symlinking src/modules/m_ssl_openssl.cpp from extra/\n";
chdir("src/modules");
system("ln -s extra/m_ssl_openssl.cpp");
+ system("ln -s extra/ssl_cert.h");
chdir("../..");
}
getmodules();
if (($tmp eq "") || ($tmp =~ /^y/i)) {
# Attempt to Create the Dir..
- print("mkdir -p \"$var\" >> /dev/null 2>&1");
+ 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";
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`);
}
} 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";
#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
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{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";
}
}
opendir(DIRHANDLE, $this);
- if ($config{THREADED_DNS} =~ /y/i) {
- $config{LDLIBS} = $config{LDLIBS} . " -pthread";
- }
+
foreach $name (sort readdir(DIRHANDLE)) {
if ($name =~ /^\.(.+)\.inc$/) {
$file = $1;
\$(CC) \$(FLAGS) -shared $liflags -o m_$i.so m_$i.o $extra
EOCHEESE
- $crud = $crud . " \@install -v -m 0700 m_$i.so \$(MODPATH)\n";
- ###
+ $crud = $crud . " install -m 0700 m_$i.so \$(MODPATH)\n";
+###
# End Write Entry to the MakeFile
###
}
my $cmdobjs = "";
my $srcobjs = "";
foreach my $cmd (@cmdlist) {
- $cmdobjs = $cmdobjs . "cmd_$cmd.o ";
+ $cmdobjs = $cmdobjs . "cmd_$cmd.so ";
$srcobjs = $srcobjs . "cmd_$cmd.cpp ";
}
-if (($config{OSNAME} !~ /Linux/i) && ($config{HAS_EXECINFO} eq "1")) {
- $extra = "-L/usr/local/lib -lexecinfo";
-} else {
- $extra = "";
-}
-
-$se = "socketengine_select";
-if (($has_kqueue) && ($config{USE_KQUEUE} eq "y")) {
- $se = "socketengine_kqueue";
-}
-elsif (($has_epoll) && ($config{USE_EPOLL} eq "y")) {
- $se = "socketengine_epoll";
-}
+ $se = "socketengine_select";
+ if (($has_kqueue) && ($config{USE_KQUEUE} eq "y")) {
+ $se = "socketengine_kqueue";
+ }
+ elsif (($has_epoll) && ($config{USE_EPOLL} eq "y")) {
+ $se = "socketengine_epoll";
+ }
open(FH,">src/Makefile") or die("Could not write src/Makefile");
print FH <<EOM;
\$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c configreader.cpp
\$(CC) -Wl,--rpath -Wl,$config{LIBRARY_DIR} -shared -o libIRCDconfigreader.so configreader.o
-libIRCDcommands.so: commands.cpp ../include/base.h ../include/commands.h ../include/inspircd.h ../include/channels.h ../include/users.h ../include/globals.h ../include/inspircd_config.h $srcobjs
+libIRCDcommands.so: commands.cpp ../include/base.h ../include/commands.h ../include/inspircd.h ../include/channels.h ../include/users.h ../include/globals.h ../include/inspircd_config.h
\$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c commands.cpp
- \$(CC) -Wl,--rpath -Wl,$config{LIBRARY_DIR} -shared -o libIRCDcommands.so commands.o $cmdobjs
+ \$(CC) -Wl,--rpath -Wl,$config{LIBRARY_DIR} -shared -o libIRCDcommands.so commands.o
libIRCDdynamic.so: dynamic.cpp ../include/base.h ../include/dynamic.h ../include/inspircd.h ../include/channels.h ../include/users.h ../include/globals.h ../include/inspircd_config.h
\$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c dynamic.cpp
EOM
foreach my $cmd (@cmdlist) {
print FH <<ITEM;
-cmd_$cmd.o: cmd_$cmd.cpp ../include/base.h ../include/modules.h ../include/inspircd.h ../include/channels.h ../include/users.h ../include/globals.h ../include/inspircd_config.h ../include/commands/cmd_$cmd.h
+cmd_$cmd.so: cmd_$cmd.cpp ../include/base.h ../include/modules.h ../include/inspircd.h ../include/channels.h ../include/users.h ../include/globals.h ../include/inspircd_config.h ../include/commands/cmd_$cmd.h
\$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c cmd_$cmd.cpp
+ \$(CC) -Wl,--rpath -Wl,$config{LIBRARY_DIR} -shared -o cmd_$cmd.so cmd_$cmd.o
ITEM
}