#
########################################
-chomp($topdir = `pwd`);
+use Cwd;
+
+chomp($topdir = getcwd());
$this = resolve_directory($topdir); # PWD, Regardless.
@modlist = (); # Declare for Module List..
%config = (); # Initiate Configuration Hash..
$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
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}) {
print "not to enable one. Defaulting to select() engine.\n\n";
}
-yesno(THREADED_DNS,"Would you like to enable the experimental multi-threaded DNS lookup?");
+yesno(IPV6,"Would you like to build InspIRCd with IPv6 support?");
print "\n";
-yesno(IPV6,"Would you like to enable IPv6 support?");
-print "\n";
+if ($config{IPV6} eq "y") {
+ print "You have chosen to build an \033[1;32mIPV6-only\033[0m server.\nTo accept IPV4 users, you must use the '::ffff:' notation of addresses.\n\n";
+ $config{SUPPORT_IP6LINKS} = "y";
+} else {
+ yesno(SUPPORT_IP6LINKS,"You have chosen to build an \033[1;32mIPV4-only\033[0m server.\nWould you like to enable support for linking to IPV6-enabled\nInspIRCd servers which are using '::ffff:' notation?\nIf you are using a recent operating\nsystem and are unsure, answer yes.");
+ print "\n";
+}
if (($config{HAS_GNUTLS} eq "y") && ($config{HAS_OPENSSL} eq "y")) {
print "I have detected both GnuTLS and OpenSSL on your system.\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 "\033[0mOpenSSL Support:\033[1;32m\t\t$config{USE_OPENSSL}\033[0m\n\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();
# Convert it to a full path..
$var = resolve_directory($ENV{HOME} . "/" . $1);
}
- if (substr($var,0,1) ne "/")
+ elsif ((($config{OSNAME} == "MINGW32") and ($var !~ /^[A-Z]{1}:\\.*/)) and (substr($var,0,1) ne "/"))
{
# Assume relative Path was given.. fill in the rest.
$var = $this . "/$var";
}
+
$var = resolve_directory($var);
if (! -e $var) {
print "$var does not exist. Create it?\n[\033[1;32my\033[0m] ";
chomp($tmp = <STDIN>);
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";
sub getosflags {
if ($config{OSNAME} =~ /BSD$/) {
$config{LDLIBS} = "-Ldl -lstdc++";
- $config{FLAGS} = "-fPIC -frtti -Wall -Woverloaded-virtual $config{OPTIMISATI}";
+ $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";
$config{STATIC_LINK} = "yes";
}
}
- if ($config{OSNAME} =~ /SunOS/) {
+
+ if ($config{OSNAME} =~ /SunOS/)
+ {
# solaris/sunos needs these
# socket = bsd sockets api
# nsl = dns stuff
# 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 {
return "0";
}
my $data = `svn info`;
+
if ($data eq "") {
$no_svn = 1;
$rev = "0";
#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
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{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";
+ $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 ($writeheader)
+ {
+ open(FILEHANDLE, ">include/inspircd_se_config.h");
+ print FILEHANDLE <<EOF;
+/* Auto generated by configure, do not modify or commit to svn! */
+#ifndef __CONFIGURATION_SOCKETENGINE__
+#define __CONFIGURATION_SOCKETENGINE__
+
+#include "$se.h"
+
+#endif
+EOF
+ close(FILEHANDLE);
+ }
+
+
# Create a Modules List..
my $modules = "";
foreach $i (@modlist)
print FILEHANDLE <<EOCHEESE;
m_$i.o: .m_$i\_static.cpp ../../include/modules.h ../../include/users.h ../../include/channels.h ../../include/base.h
\$(CC) -pipe -I../../include \$(FLAGS) $flags -export-dynamic -c .m_$i\_static.cpp
- mv m_$i\_static.o ../m_$i.o
+ mv .m_$i\_static.o ../m_$i.o
EOCHEESE
###
\$(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
###
}
RELCPPFILES = \$(shell /bin/ls -l modes/ | grep '\\.cpp' | sed 's/^.* /modes\\//' | grep -v svn)
EOM
+
+$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";
+}
+
###
# This next section is for cygwin dynamic module builds.
# Basically, what we do, is build the inspircd core as a library
if ($config{OSNAME} =~ /CYGWIN/) {
print FH <<EOM;
-all: timer.o 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 configreader.o inspsocket.o message.o $cmdobjs commands.o dnsqueue.o dynamic.o users.o modules.o wildcard.o helperfuncs.o snomasks.o inspircd.exe
+all: timer.o 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 configreader.o inspsocket.o $cmdobjs commands.o dynamic.o users.o modules.o wildcard.o helperfuncs.o snomasks.o inspircd.exe
inspircd.exe: inspircd.dll.a
\$(CC) -o \$@ \$^
-inspircd.dll inspircd.dll.a: inspircd.o channels.o mode.o xline.o inspstring.o dns.o base.o configreader.o inspsocket.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 timer.o snomasks.o
+inspircd.dll inspircd.dll.a: inspircd.o channels.o mode.o xline.o inspstring.o dns.o base.o configreader.o inspsocket.o $cmdobjs commands.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 timer.o snomasks.o
\$(CC) -shared -Wl,--out-implib=inspircd.dll.a -o inspircd.dll \$^
EOM
} else {
print FH <<EOM;
-all: timer.o 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 configreader.o inspsocket.o message.o $cmdobjs commands.o dnsqueue.o dynamic.o users.o modules.o wildcard.o helperfuncs.o snomasks.o \$(MODULES) inspircd.exe
+all: timer.o 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 configreader.o inspsocket.o $cmdobjs commands.o dynamic.o users.o modules.o wildcard.o helperfuncs.o snomasks.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 inspsocket.o configreader.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 timer.o snomasks.o modes/modeclasses.a \$(MODULES)
+ \$(CC) -I../include \$(FLAGS) inspircd.cpp -o inspircd.exe \$(LDLIBS) channels.o mode.o xline.o inspstring.o dns.o base.o inspsocket.o configreader.o $cmdobjs commands.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 timer.o snomasks.o modes/modeclasses.a \$(MODULES)
EOM
}
userprocess.o: userprocess.cpp ../include/base.h ../include/hashcomp.h ../include/globals.h ../include/inspircd_config.h
\$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c userprocess.cpp
-socketengine.o: socketengine.cpp ../include/base.h ../include/hashcomp.h ../include/globals.h ../include/inspircd_config.h
- \$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c socketengine.cpp
+socketengine.o: $se.cpp socketengine.cpp ../include/base.h ../include/hashcomp.h ../include/globals.h ../include/inspircd_config.h ../include/$se.h
+ \$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c socketengine.cpp $se.cpp
hashcomp.o: hashcomp.cpp ../include/base.h ../include/hashcomp.h ../include/inspircd.h ../include/users.h ../include/globals.h ../include/inspircd_config.h
\$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c hashcomp.cpp
channels.o: channels.cpp ../include/base.h ../include/channels.h ../include/inspircd.h ../include/users.h ../include/globals.h ../include/inspircd_config.h
\$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c channels.cpp
-mode.o: mode.cpp ../include/base.h ../include/mode.h ../include/inspircd.h ../include/channels.h ../include/users.h ../include/globals.h ../include/inspircd_config.h \$(RELCPPFILES)
- \${MAKE} -C "modes" DIRNAME="src/modes" \$(MAKEARGS) CPPFILES="\$(CPPFILES)"
+mode.o: mode.cpp ../include/base.h ../include/mode.h ../include/inspircd.h ../include/channels.h ../include/users.h ../include/globals.h ../include/inspircd_config.h \$(RELCPPFILES) modes/modeclasses.a
+ \${MAKE} -C "modes" DIRNAME="src/modes" \$(MAKEARGS)
\$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c mode.cpp
xline.o: xline.cpp ../include/base.h ../include/xline.h ../include/inspircd.h ../include/channels.h ../include/users.h ../include/globals.h ../include/inspircd_config.h
configreader.o: configreader.cpp ../include/base.h ../include/configreader.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 configreader.cpp
-message.o: message.cpp ../include/base.h ../include/message.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 message.cpp
-
commands.o: 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
\$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c commands.cpp $cmdobjs
-dnsqueue.o: dnsqueue.cpp ../include/base.h ../include/dnsqueue.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 dnsqueue.cpp
-
dynamic.o: 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
my $cmdobjs = "";
my $srcobjs = "";
foreach my $cmd (@cmdlist) {
- $cmdobjs = $cmdobjs . "cmd_$cmd.o ";
+ $cmdobjs = $cmdobjs . "cmd_$cmd.so ";
$srcobjs = $srcobjs . "cmd_$cmd.cpp ";
}
$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";
+}
+
open(FH,">src/Makefile") or die("Could not write src/Makefile");
print FH <<EOM;
# Insp Makefile :p
CPPFILES = \$(shell /bin/ls -l modes/ | grep '\\.cpp' | sed 's/^.* //' | grep -v svn)
RELCPPFILES = \$(shell /bin/ls -l modes/ | grep '\\.cpp' | sed 's/^.* /modes\\//' | grep -v svn)
-all: libIRCDtimer.so libIRCDaes.so libIRCDcull_list.so libIRCDuserprocess.so libIRCDsocketengine.so libIRCDsocket.so libIRCDhash.so libIRCDchannels.so libIRCDmode.so libIRCDxline.so libIRCDstring.so libIRCDasyncdns.so libIRCDbase.so libIRCDconfigreader.so libIRCDinspsocket.so libIRCDmessage.so $cmdobjs libIRCDcommands.so libIRCDdnsqueue.so libIRCDdynamic.so libIRCDusers.so libIRCDmodules.so libIRCDwildcard.so libIRCDhelper.so libIRCDcommand_parse.so libIRCDsnomasks.so inspircd
+all: libIRCDtimer.so libIRCDaes.so libIRCDcull_list.so libIRCDuserprocess.so libIRCDsocketengine.so libIRCDsocket.so libIRCDhash.so libIRCDchannels.so libIRCDmode.so libIRCDxline.so libIRCDstring.so libIRCDasyncdns.so libIRCDbase.so libIRCDconfigreader.so libIRCDinspsocket.so $cmdobjs libIRCDcommands.so libIRCDdynamic.so libIRCDusers.so libIRCDmodules.so libIRCDwildcard.so libIRCDhelper.so libIRCDcommand_parse.so libIRCDsnomasks.so inspircd
-inspircd: inspircd.cpp ../include/base.h ../include/channels.h ../include/inspircd.h ../include/channels.h ../include/globals.h ../include/inspircd_config.h ../include/socket.h libIRCDtimer.so libIRCDaes.so libIRCDcull_list.so libIRCDuserprocess.so libIRCDsocketengine.so libIRCDsocket.so libIRCDhash.so libIRCDchannels.so libIRCDmode.so libIRCDxline.so libIRCDstring.so libIRCDasyncdns.so libIRCDbase.so libIRCDconfigreader.so libIRCDinspsocket.so libIRCDmessage.so $cmdobjs libIRCDsnomasks.so libIRCDcommands.so libIRCDdnsqueue.so libIRCDdynamic.so libIRCDusers.so libIRCDmodules.so libIRCDwildcard.so libIRCDhelper.so libIRCDcommand_parse.so
- \$(CC) -I../include $extra -Wl,--rpath -Wl,/usr/local/lib -Wl,--rpath -Wl,$config{LIBRARY_DIR} \$(FLAGS) -rdynamic -L. inspircd.cpp -o inspircd \$(LDLIBS) libIRCDchannels.so libIRCDmode.so libIRCDxline.so libIRCDstring.so libIRCDasyncdns.so libIRCDbase.so libIRCDconfigreader.so libIRCDinspsocket.so libIRCDmessage.so libIRCDcommands.so libIRCDdnsqueue.so libIRCDdynamic.so libIRCDusers.so libIRCDmodules.so libIRCDwildcard.so libIRCDhelper.so libIRCDhash.so libIRCDsocket.so libIRCDsocketengine.so libIRCDuserprocess.so libIRCDcull_list.so libIRCDcommand_parse.so libIRCDaes.so libIRCDtimer.so libIRCDsnomasks.so
+inspircd: inspircd.cpp ../include/base.h ../include/channels.h ../include/inspircd.h ../include/channels.h ../include/globals.h ../include/inspircd_config.h ../include/socket.h libIRCDtimer.so libIRCDaes.so libIRCDcull_list.so libIRCDuserprocess.so libIRCDsocketengine.so libIRCDsocket.so libIRCDhash.so libIRCDchannels.so libIRCDmode.so libIRCDxline.so libIRCDstring.so libIRCDasyncdns.so libIRCDbase.so libIRCDconfigreader.so libIRCDinspsocket.so $cmdobjs libIRCDsnomasks.so libIRCDcommands.so libIRCDdynamic.so libIRCDusers.so libIRCDmodules.so libIRCDwildcard.so libIRCDhelper.so libIRCDcommand_parse.so
+ \$(CC) -I../include $extra -Wl,--rpath -Wl,/usr/local/lib -Wl,--rpath -Wl,$config{LIBRARY_DIR} \$(FLAGS) -rdynamic -L. inspircd.cpp -o inspircd \$(LDLIBS) libIRCDchannels.so libIRCDmode.so libIRCDxline.so libIRCDstring.so libIRCDasyncdns.so libIRCDbase.so libIRCDconfigreader.so libIRCDinspsocket.so libIRCDcommands.so libIRCDdynamic.so libIRCDusers.so libIRCDmodules.so libIRCDwildcard.so libIRCDhelper.so libIRCDhash.so libIRCDsocket.so libIRCDsocketengine.so libIRCDuserprocess.so libIRCDcull_list.so libIRCDcommand_parse.so libIRCDaes.so libIRCDtimer.so libIRCDsnomasks.so
-libIRCDsocketengine.so: socketengine.cpp ../include/base.h ../include/hashcomp.h ../include/globals.h ../include/inspircd_config.h
- \$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c socketengine.cpp
- \$(CC) -Wl,--rpath -Wl,$config{LIBRARY_DIR} -shared -o libIRCDsocketengine.so socketengine.o
+libIRCDsocketengine.so: $se.cpp socketengine.cpp ../include/base.h ../include/hashcomp.h ../include/globals.h ../include/inspircd_config.h ../include/$se.h
+ \$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c socketengine.cpp $se.cpp
+ \$(CC) -Wl,--rpath -Wl,$config{LIBRARY_DIR} -shared -o libIRCDsocketengine.so socketengine.o $se.o
libIRCDsnomasks.so: snomasks.cpp ../include/base.h ../include/hashcomp.h ../include/inspircd.h ../include/users.h ../include/globals.h ../include/inspircd_config.h ../include/channels.h
\$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c snomasks.cpp
\$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c configreader.cpp
\$(CC) -Wl,--rpath -Wl,$config{LIBRARY_DIR} -shared -o libIRCDconfigreader.so configreader.o
-libIRCDmessage.so: message.cpp ../include/base.h ../include/message.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 message.cpp
- \$(CC) -Wl,--rpath -Wl,$config{LIBRARY_DIR} -shared -o libIRCDmessage.so message.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
-
-libIRCDdnsqueue.so: dnsqueue.cpp ../include/base.h ../include/dnsqueue.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 dnsqueue.cpp
- \$(CC) -Wl,--rpath -Wl,$config{LIBRARY_DIR} -shared -o libIRCDdnsqueue.so dnsqueue.o
+ \$(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
}