diff options
Diffstat (limited to 'configure')
-rwxr-xr-x | configure | 227 |
1 files changed, 225 insertions, 2 deletions
@@ -142,6 +142,10 @@ if (!$fail) print "yes\n" if $has_epoll == 1; print "no\n" if $has_epoll == 0; +if ($config{OSNAME} =~ /CYGWIN/) { + $config{HAS_STRLCPY} = "true"; +} + ################################################################################ # BEGIN INTERACTIVE PART # ################################################################################ @@ -299,6 +303,9 @@ print "*** \033[1;32mRemember to edit your configuration files!!!\033[0m ***\n\n if (($config{OSNAME} eq "OpenBSD") && ($config{CC} ne "eg++")) { print "\033[1;32mWARNING!\033[0m You are running OpenBSD but you are using the base gcc package\nrather than eg++. This compile will most likely fail, but i'm letting you\ngo ahead with it anyway, just in case i'm wrong :-)\n"; } +if ($config{OSNAME} =~ /CYGWIN/) { + print "\033[1;32mWARNING!\033[0m CYGWIN does not properly support shared modules,\nso modules are unavailable on this platform.\nThe modules will build as .o files but will not be available for use.\nYou will be able to run the core ircd file (inspircd.exe) as normal.\n"; +} ################################################################################ # HELPER FUNCTIONS # @@ -401,6 +408,11 @@ sub getosflags { $config{LDLIBS} = "-ldl"; $config{FLAGS} = "-fPIC -frtti $OPTIMISATI -Woverloaded-virtual $config{OPTIMISATI}"; $config{MAKEPROG} = "make"; + if ($config{OSNAME} =~ /CYGWIN/) { + $config{FLAGS} = "-frtti $OPTIMISATI -Woverloaded-virtual $config{OPTIMISATI}"; + $config{LDLIBS} = ""; + $config{MAKEPROG} = "/usr/bin/make"; + } } if ($config{OSNAME} =~ /SunOS/) { # solaris/sunos needs these @@ -499,7 +511,12 @@ EOF my $modules = ""; foreach $i (@modlist) { - $modules .= "m_".$i.".so "; + if ($config{OSNAME} =~ /CYGWIN/) { + $modules .= "m_".$i.".o "; + } + else { + $modules .= "m_".$i.".so "; + } } chomp($modules); # Remove Redundant whitespace.. @@ -507,6 +524,12 @@ EOF # Write all .in files. my $tmp = ""; my $file = ""; + my $exe = "inspircd"; + + if ($config{OSNAME} =~ /CYGWIN/) { + $exe = "inspircd.exe"; + } + opendir(DIRHANDLE, $this); foreach $name (sort readdir(DIRHANDLE)) { if ($name =~ /^\.(.+)\.inc$/) @@ -529,6 +552,7 @@ EOF $tmp =~ s/\@BINARY_DIR\@/$config{BINARY_DIR}/; $tmp =~ s/\@LIBRARY_DIR\@/$config{LIBRARY_DIR}/; $tmp =~ s/\@MODULES\@/$modules/; + $tmp =~ s/\@EXECUTABLE\@/$exe/; print "Writing \033[1;32m$file\033[0m\n"; open(FILEHANDLE, ">$file"); @@ -540,6 +564,15 @@ EOF # Make inspircd executable! chmod 0744, 'inspircd'; + if ($config{OSNAME} =~ /CYGWIN/) { + print "Writing static-build \033[1;32msrc/Makefile\033[0m\n"; + write_static_makefile(); + } + else { + print "Writing dynamic-build \033[1;32msrc/Makefile\033[0m\n"; + write_dynamic_makefile(); + } + # Modules Makefile.. print "Writing \033[1;32msrc/modules/Makefile\033[0m\n"; open(FILEHANDLE, ">src/modules/Makefile"); @@ -562,7 +595,15 @@ EOF foreach $i (@modlist) { $flags = getcompilerflags("src/modules/m_".$i.".cpp"); - print FILEHANDLE <<EOCHEESE; + if ($config{OSNAME} =~ /CYGWIN/) { + print FILEHANDLE <<EOCHEESE; +m_$i.o: m_$i.cpp ../../include/modules.h ../../include/users.h ../../include/channels.h ../../include/servers.h ../../include/base.h + \$(CC) -pipe -I../../include \$(FLAGS) $flags -export-dynamic -c m_$i.cpp + +EOCHEESE + } + else { + print FILEHANDLE <<EOCHEESE; m_$i.so: m_$i.cpp ../../include/modules.h ../../include/users.h ../../include/channels.h ../../include/servers.h ../../include/base.h \$(CC) -pipe -I../../include \$(FLAGS) $flags -export-dynamic -c m_$i.cpp \$(CC) \$(FLAGS) -shared $flags -o m_$i.so m_$i.o @@ -570,6 +611,7 @@ m_$i.so: m_$i.cpp ../../include/modules.h ../../include/users.h ../../include/ch chmod 0700 \$(MODPATH)/m_$i.so EOCHEESE + } } } @@ -615,3 +657,184 @@ sub yesno { } return; } + + +sub write_static_makefile { + open(FH,">src/Makefile") or die("Could not write src/Makefile!"); + print FH <<EOM; +# Insp Makefile :p +# +# (C) ChatSpike development team +# Makefile by <Craig\@ChatSpike.net> +# Makefile version 2 (dynamically linked core) by <brain\@inspircd.org> +# + +CC = im a cheezeball + +CXXFLAGS = -I$../include \${FLAGS} + +all: hashcomp.o channels.o mode.o xline.o inspstring.o dns.o base.o inspircd_util.o inspircd_io.o connection.o message.o commands.o dnsqueue.o dynamic.o users.o modules.o wildcard.o servers.o helperfuncs.o 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 + \$(CC) -I../include \$(FLAGS) inspircd.cpp -o inspircd.exe \$(LDLIBS) channels.o mode.o xline.o inspstring.o dns.o base.o inspircd_util.o inspircd_io.o connection.o message.o commands.o dnsqueue.o dynamic.o users.o modules.o wildcard.o servers.o helperfuncs.o hashcomp.o + +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 + +helperfuncs.o: helperfuncs.cpp ../include/base.h ../include/helperfuncs.h ../include/inspircd.h ../include/users.h ../include/globals.h ../include/inspircd_config.h + \$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c helperfuncs.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 + \$(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 + \$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c xline.cpp + +inspstring.o: inspstring.cpp ../include/base.h ../include/inspstring.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 inspstring.cpp + +dns.o: dns.cpp ../include/base.h ../include/dns.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 dns.cpp + +base.o: base.cpp ../include/base.h ../include/globals.h ../include/inspircd_config.h + \$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c base.cpp + +inspircd_util.o: inspircd_util.cpp ../include/base.h ../include/inspircd_util.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 inspircd_util.cpp + +inspircd_io.o: inspircd_io.cpp ../include/base.h ../include/inspircd_io.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 inspircd_io.cpp + +connection.o: connection.cpp ../include/base.h ../include/connection.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 connection.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 + \$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c commands.cpp + +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 + +users.o: users.cpp ../include/base.h ../include/users.h ../include/inspircd.h ../include/channels.h ../include/users.h ../include/globals.h ../include/inspircd_config.h ../include/connection.h + \$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c users.cpp + +modules.o: modules.cpp ../include/base.h ../include/modules.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 modules.cpp + +wildcard.o: wildcard.cpp ../include/base.h ../include/wildcard.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 wildcard.cpp + +servers.o: servers.cpp ../include/base.h ../include/servers.h ../include/inspircd.h ../include/channels.h ../include/users.h ../include/globals.h ../include/inspircd_config.h ../include/connection.h + \$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c servers.cpp + + +EOM +close(FH); +} + +sub write_dynamic_makefile { + open(FH,">src/Makefile") or die("Could not write src/Makefile"); + print FH <<EOM; +# Insp Makefile :p +# +# (C) ChatSpike development team +# Makefile by <Craig\@ChatSpike.net> +# Makefile version 2 (dynamically linked core) by <brain\@inspircd.org> +# + +CC = im a cheezeball + +CXXFLAGS = -I$../include ${FLAGS} + +all: libIRCDhash.so libIRCDchannels.so libIRCDmode.so libIRCDxline.so libIRCDstring.so libIRCDasyncdns.so libIRCDbase.so libIRCDutil.so libIRCDio.so libIRCDconnection.so libIRCDmessage.so libIRCDcommands.so libIRCDdnsqueue.so libIRCDdynamic.so libIRCDusers.so libIRCDmodules.so libIRCDwildcard.so libIRCDservers.so libIRCDhelper.so inspircd + +inspircd: inspircd.cpp ../include/base.h ../include/channels.h ../include/inspircd.h ../include/channels.h ../include/globals.h ../include/inspircd_config.h + \$(CC) -I../include \$(FLAGS) -rdynamic -L. inspircd.cpp -o inspircd \$(LDLIBS) libIRCDchannels.so libIRCDmode.so libIRCDxline.so libIRCDstring.so libIRCDasyncdns.so libIRCDbase.so libIRCDutil.so libIRCDio.so libIRCDconnection.so libIRCDmessage.so libIRCDcommands.so libIRCDdnsqueue.so libIRCDdynamic.so libIRCDusers.so libIRCDmodules.so libIRCDwildcard.so libIRCDservers.so libIRCDhelper.so libIRCDhash.so + +libIRCDhash.so: 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 + \$(CC) -shared -o libIRCDhash.so hashcomp.o + +libIRCDhelper.so: helperfuncs.cpp ../include/base.h ../include/helperfuncs.h ../include/inspircd.h ../include/users.h ../include/globals.h ../include/inspircd_config.h + \$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c helperfuncs.cpp + \$(CC) -shared -o libIRCDhelper.so helperfuncs.o + +libIRCDchannels.so: 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 + \$(CC) -shared -o libIRCDchannels.so channels.o + +libIRCDmode.so: mode.cpp ../include/base.h ../include/mode.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 mode.cpp + \$(CC) -shared -o libIRCDmode.so mode.o + +libIRCDxline.so: xline.cpp ../include/base.h ../include/xline.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 xline.cpp + \$(CC) -shared -o libIRCDxline.so xline.o + +libIRCDstring.so: inspstring.cpp ../include/base.h ../include/inspstring.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 inspstring.cpp + \$(CC) -shared -o libIRCDstring.so inspstring.o + +libIRCDasyncdns.so: dns.cpp ../include/base.h ../include/dns.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 dns.cpp + \$(CC) -shared -o libIRCDasyncdns.so dns.o + +libIRCDbase.so: base.cpp ../include/base.h ../include/globals.h ../include/inspircd_config.h + \$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c base.cpp + \$(CC) -shared -o libIRCDbase.so base.o + +libIRCDutil.so: inspircd_util.cpp ../include/base.h ../include/inspircd_util.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 inspircd_util.cpp + \$(CC) -shared -o libIRCDutil.so inspircd_util.o + +libIRCDio.so: inspircd_io.cpp ../include/base.h ../include/inspircd_io.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 inspircd_io.cpp + \$(CC) -shared -o libIRCDio.so inspircd_io.o + +libIRCDconnection.so: connection.cpp ../include/base.h ../include/connection.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 connection.cpp + \$(CC) -shared -o libIRCDconnection.so connection.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) -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 + \$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c commands.cpp + \$(CC) -shared -o libIRCDcommands.so commands.o + +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) -shared -o libIRCDdnsqueue.so dnsqueue.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 + \$(CC) -shared -o libIRCDdynamic.so dynamic.o + +libIRCDusers.so: users.cpp ../include/base.h ../include/users.h ../include/inspircd.h ../include/channels.h ../include/users.h ../include/globals.h ../include/inspircd_config.h ../include/connection.h + \$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c users.cpp + \$(CC) -shared -o libIRCDusers.so users.o + +libIRCDmodules.so: modules.cpp ../include/base.h ../include/modules.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 modules.cpp + \$(CC) -shared -o libIRCDmodules.so modules.o + +libIRCDwildcard.so: wildcard.cpp ../include/base.h ../include/wildcard.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 wildcard.cpp + \$(CC) -shared -o libIRCDwildcard.so wildcard.o + +libIRCDservers.so: servers.cpp ../include/base.h ../include/servers.h ../include/inspircd.h ../include/channels.h ../include/users.h ../include/globals.h ../include/inspircd_config.h ../include/connection.h + \$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c servers.cpp + \$(CC) -shared -o libIRCDservers.so servers.o + +EOM +close(FH); +} |