X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=configure;h=964a4f19d5c57d243cde98f965f8837805f8d162;hb=56f500b2c916d8801daaa631cd9215263bb3de23;hp=ecc8b1640ed997ff800f6a2e35c4c2b919037caa;hpb=2e4f3512c9414793c714748aec7d676d33e18e2c;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/configure b/configure index ecc8b1640..964a4f19d 100755 --- a/configure +++ b/configure @@ -70,7 +70,7 @@ our $uninstall_list = ""; # This is a list of all files in the core. Each cpp file is mapped to a shared object file, # whos file extension is omitted (these can vary from system to system). Auto detected by -# scanning the src/*.cpp files for files containing /* $Core: */ identifiers. +# scanning the src/*.cpp files for files containing /* $Core */ identifiers. our %filelist = (); @@ -97,12 +97,10 @@ our %extraobjects = (); our %extrasources = (); -our ($opt_use_gnutls, $opt_rebuild, $opt_use_openssl, $opt_nointeractive, $opt_nick_length, - $opt_chan_length, $opt_ports, $opt_epoll, $opt_kqueue, $opt_noports, - $opt_noepoll, $opt_nokqueue, $opt_disablerpath, $opt_ipv6, $opt_ipv6links, - $opt_noipv6links, $opt_ident, $opt_quit, $opt_topic, $opt_maxbuf, $opt_kick, - $opt_gecos, $opt_away, $opt_modes, $opt_disable_debug, $opt_maxchans, - $opt_opermaxchans); +our ($opt_use_gnutls, $opt_rebuild, $opt_use_openssl, $opt_nointeractive, $opt_ports, + $opt_epoll, $opt_kqueue, $opt_noports, $opt_noepoll, $opt_nokqueue, + $opt_ipv6, $opt_ipv6links, $opt_noipv6links, $opt_maxbuf, $opt_disable_debug, + $opt_freebsd_port); our ($opt_cc, $opt_base_dir, $opt_config_dir, $opt_module_dir, $opt_binary_dir, $opt_library_dir); @@ -121,27 +119,18 @@ GetOptions ( 'rebuild' => \$opt_rebuild, 'enable-openssl' => \$opt_use_openssl, 'disable-interactive' => \$opt_nointeractive, - 'with-nick-length=i' => \$opt_nick_length, - 'with-channel-length=i' => \$opt_chan_length, 'enable-ports' => \$opt_ports, 'enable-epoll' => \$opt_epoll, 'enable-kqueue' => \$opt_kqueue, 'disable-ports' => \$opt_noports, 'disable-epoll' => \$opt_noepoll, 'disable-kqueue' => \$opt_nokqueue, - 'disable-rpath' => \$opt_disablerpath, 'enable-ipv6' => \$opt_ipv6, 'enable-remote-ipv6' => \$opt_ipv6links, 'disable-remote-ipv6' => \$opt_noipv6links, 'with-cc=s' => \$opt_cc, - 'with-ident-length=i' => \$opt_ident, - 'with-quit-length=i' => \$opt_quit, - 'with-topic-length=i' => \$opt_topic, 'with-maxbuf=i' => \$opt_maxbuf, - 'with-kick-length=i' => \$opt_kick, - 'with-gecos-length=i' => \$opt_gecos, - 'with-away-length=i' => \$opt_away, - 'with-max-modes=i' => \$opt_modes, + 'enable-freebsd-ports-openssl' => \$opt_freebsd_port, 'prefix=s' => \$opt_base_dir, 'config-dir=s' => \$opt_config_dir, 'module-dir=s' => \$opt_module_dir, @@ -177,13 +166,6 @@ our $non_interactive = ( (defined $opt_base_dir) || (defined $opt_binary_dir) || (defined $opt_nointeractive) || - (defined $opt_away) || - (defined $opt_gecos) || - (defined $opt_kick) || - (defined $opt_modes) || - (defined $opt_topic) || - (defined $opt_quit) || - (defined $opt_ident) || (defined $opt_cc) || (defined $opt_ipv6) || (defined $opt_ipv6links) || @@ -191,16 +173,13 @@ our $non_interactive = ( (defined $opt_kqueue) || (defined $opt_epoll) || (defined $opt_ports) || - (defined $opt_maxchans) || - (defined $opt_opermaxchans) || - (defined $opt_chan_length) || - (defined $opt_nick_length) || (defined $opt_use_openssl) || (defined $opt_nokqueue) || (defined $opt_noepoll) || (defined $opt_noports) || (defined $opt_maxbuf) || - (defined $opt_use_gnutls) + (defined $opt_use_gnutls) || + (defined $opt_freebsd_port) ); our $interactive = !$non_interactive; @@ -240,13 +219,25 @@ if (defined $opt_library_dir) } chomp($config{HAS_GNUTLS} = `libgnutls-config --version 2>/dev/null | cut -c 1,2,3`); # GNUTLS Version. -if ($^O eq "freebsd") +if (defined $opt_freebsd_port) { - chomp($config{HAS_OPENSSL} = `openssl version | cut -d ' ' -f 2`); # OpenSSL version, freebsd specific + chomp($config{HAS_OPENSSL} = `pkg-config --modversion openssl 2>/dev/null`); + chomp($config{HAS_OPENSSL_PORT} = `pkg-config --modversion openssl 2>/dev/null`); + $config{USE_FREEBSD_BASE_SSL} = "n"; } else { - chomp($config{HAS_OPENSSL} = `pkg-config --modversion openssl 2>/dev/null`); # Openssl version, others + if ($^O eq "freebsd") + { + # default: use base ssl + chomp($config{HAS_OPENSSL} = `openssl version | cut -d ' ' -f 2`); # OpenSSL version, freebsd specific + chomp($config{HAS_OPENSSL_PORT} = `pkg-config --modversion openssl 2>/dev/null`); # Port version, may be different + } + else + { + chomp($config{HAS_OPENSSL} = `pkg-config --modversion openssl 2>/dev/null`); # Openssl version, others + $config{HAS_OPENSSL_PORT} = ""; + } } chomp(our $gnutls_ver = $config{HAS_GNUTLS}); @@ -273,21 +264,6 @@ else $config{OPTIMISATI} = "-O2"; # DEBUGGING OFF! } -$config{NICK_LENGT} = "31"; # Default Nick Length -if (defined $opt_nick_length) -{ - $config{NICK_LENGT} = $opt_nick_length; -} -$config{CHAN_LENGT} = "64"; # Default Channel Name Length -if (defined $opt_chan_length) -{ - $config{CHAN_LENGT} = $opt_chan_length; -} -$config{MAXI_MODES} = "20"; # Default Max. Number of Modes set at once. -if (defined $opt_modes) -{ - $config{MAXI_MODES} = $opt_modes; -} $config{HAS_STRLCPY} = "false"; # strlcpy Check. $config{HAS_STDINT} = "false"; # stdint.h check $config{USE_KQUEUE} = "y"; # kqueue enabled @@ -299,6 +275,7 @@ if (defined $opt_nokqueue) { $config{USE_KQUEUE} = "n"; } +$config{USE_POLL} = "y"; # poll enabled $config{USE_EPOLL} = "y"; # epoll enabled if (defined $opt_epoll) { @@ -332,6 +309,7 @@ if (defined $opt_noipv6links) $config{SUPPORT_IP6LINKS} = "n"; } chomp($config{GCCVER} = `g++ -dumpversion | cut -c 1`); # Major GCC Version +chomp($config{GCCMINOR} = `g++ -dumpversion | cut -c 3`); $config{_SOMAXCONN} = SOMAXCONN; # Max connections in accept queue $config{OSNAME} = $^O; # Operating System Name $config{IS_DARWIN} = "NO"; # Is OSX? @@ -352,38 +330,10 @@ if (defined $opt_cc) } our $exec = $config{CC} . " -dumpversion | cut -c 1"; chomp($config{GCCVER} = `$exec`); # Major GCC Version +$exec = $config{CC} . " -dumpversion | cut -c 3"; +chomp($config{GCCMINOR} = `$exec`); $config{MAKEORDER} = "ircd mods"; # build order -$config{MAX_IDENT} = "12"; # max ident size -$config{MAX_QUIT} = "255"; # max quit message size -$config{MAX_TOPIC} = "307"; # max topic size -$config{MAX_KICK} = "255"; # max kick message size -$config{MAX_GECOS} = "128"; # max GECOS size -$config{MAX_AWAY} = "200"; # max AWAY size $config{MAXBUF} = "512"; # Max buffer size -if (defined $opt_ident) -{ - $config{MAX_IDENT} = $opt_ident; -} -if (defined $opt_quit) -{ - $config{MAX_QUIT} = $opt_quit; -} -if (defined $opt_topic) -{ - $config{MAX_TOPIC} = $opt_topic; -} -if (defined $opt_kick) -{ - $config{MAX_KICK} = $opt_kick; -} -if (defined $opt_gecos) -{ - $config{MAX_GECOS} = $opt_gecos; -} -if (defined $opt_away) -{ - $config{MAX_AWAY} = $opt_away; -} if ($config{HAS_OPENSSL} =~ /^([-[:digit:].]+)([a-z])?(\-[a-z][0-9])?$/) { $config{HAS_OPENSSL} = $1; @@ -391,7 +341,7 @@ if ($config{HAS_OPENSSL} =~ /^([-[:digit:].]+)([a-z])?(\-[a-z][0-9])?$/) { $config{HAS_OPENSSL} = ""; } -if ($config{GCCVER} eq "") { +if (($config{GCCVER} eq "") || ($config{GCCMINOR} eq "")) { print $config{CC} . " was not found! You require g++ (the GNU C++ compiler, part of GCC) to build InspIRCd!\n"; exit; } @@ -718,8 +668,13 @@ $config{HAS_KQUEUE} = $has_kqueue; printf "Checking for libgnutls... "; if (defined($config{HAS_GNUTLS}) && (($config{HAS_GNUTLS}) || ($config{HAS_GNUTLS} eq "y"))) { - print "yes\n"; - $config{HAS_GNUTLS} = "y"; + if (defined($gnutls_ver) && ($gnutls_ver ne "")) { + print "yes\n"; + $config{HAS_GNUTLS} = "y"; + } else { + print "no\n"; + $config{HAS_GNUTLS} = "n"; + } } else { print "no\n"; $config{HAS_GNUTLS} = "n"; @@ -727,8 +682,13 @@ if (defined($config{HAS_GNUTLS}) && (($config{HAS_GNUTLS}) || ($config{HAS_GNUTL printf "Checking for openssl... "; if (defined($config{HAS_OPENSSL}) && (($config{HAS_OPENSSL}) || ($config{HAS_OPENSSL} eq "y"))) { - print "yes\n"; - $config{HAS_OPENSSL} = "y"; + if (defined($openssl_ver) && ($openssl_ver ne "")) { + print "yes\n"; + $config{HAS_OPENSSL} = "y"; + } else { + print "no\n"; + $config{HAS_OPENSSL} = "n"; + } } else { print "no\n"; $config{HAS_OPENSSL} = "n"; @@ -797,7 +757,7 @@ STOP print ".\n\n"; $config{CHANGE_COMPILER} = "n"; - print "I have detected the following compiler: \e[1;32m$config{CC}\e[0m (version \e[1;32m$config{GCCVER}.x\e[0m)\n"; + print "I have detected the following compiler: \e[1;32m$config{CC}\e[0m (version \e[1;32m$config{GCCVER}.$config{GCCMINOR}\e[0m)\n"; while (($config{GCCVER} < 3) || ($config{GCCVER} eq "")) { print "\e[1;32mIMPORTANT!\e[0m A GCC 2.x compiler has been detected, and @@ -813,7 +773,8 @@ should NOT be used. You should probably specify a newer compiler.\n\n"; chomp(my $foo = `$config{CC} -dumpversion | cut -c 1`); if ($foo ne "") { chomp($config{GCCVER} = `$config{CC} -dumpversion | cut -c 1`); # we must redo these if we change compilers - print "Queried compiler: \e[1;32m$config{CC}\e[0m (version \e[1;32m$config{GCCVER}.x\e[0m)\n"; + chomp($config{GCCMINOR} = `$config{CC} -dumpversion | cut -c 3`); + print "Queried compiler: \e[1;32m$config{CC}\e[0m (version \e[1;32m$config{GCCVER}.$config{GCCMINOR}\e[0m)\n"; if ($config{GCCVER} < 3) { print "\e[1;32mGCC 2.x WILL NOT WORK!\e[0m. Let's try that again, shall we?\n"; } @@ -841,22 +802,36 @@ should NOT be used. You should probably specify a newer compiler.\n\n"; dir_check("is the IRCd binary to be placed", "BINARY_DIR"); dir_check("are the IRCd libraries to be placed", "LIBRARY_DIR"); + my $chose_hiperf = 0; if ($has_kqueue) { yesno('USE_KQUEUE',"You are running a BSD operating system, and kqueue\nwas detected. Would you like to enable kqueue support?\nThis is likely to increase performance.\nIf you are unsure, answer yes.\n\nEnable kqueue?"); print "\n"; + if ($config{USE_KQUEUE} eq "y") { + $chose_hiperf = 1; + } } if ($has_epoll) { yesno('USE_EPOLL',"You are running a Linux 2.6+ operating system, and epoll\nwas detected. Would you like to enable epoll support?\nThis is likely to increase performance.\nIf you are unsure, answer yes.\n\nEnable epoll?"); print "\n"; + if ($config{USE_EPOLL} eq "y") { + $chose_hiperf = 1; + } } if ($has_ports) { yesno('USE_PORTS',"You are running Solaris 10.\nWould you like to enable I/O completion ports support?\nThis is likely to increase performance.\nIf you are unsure, answer yes.\n\nEnable support for I/O completion ports?"); print "\n"; + if ($config{USE_PORTS} eq "y") { + $chose_hiperf = 1; + } } - my $chose_hiperf = (($config{USE_EPOLL} eq "y") || ($config{USE_KQUEUE} eq "y") || ($config{USE_PORTS} eq "y")); + if (!$chose_hiperf) { - print "No high-performance socket engines are available, or you chose\n"; - print "not to enable one. Defaulting to select() engine.\n\n"; + yesno('USE_POLL', "Would you like to use poll?\n This is likely to increase performance.\nIf you are unsure, answer yes.\n\nEnable poll?\n"); + if ($config{USE_POLL} ne "y") + { + print "No high-performance socket engines are available, or you chose\n"; + print "not to enable one. Defaulting to select() engine.\n\n"; + } } yesno('IPV6',"Would you like to build InspIRCd with IPv6 support?"); @@ -866,10 +841,32 @@ should NOT be used. You should probably specify a newer compiler.\n\n"; print "You have chosen to build an \e[1;32mIPV6-enabled\e[0m server.\nTo accept IPV4 users, you can still use IPV4 addresses\nin your port bindings..\n\n"; $config{SUPPORT_IP6LINKS} = "y"; } else { - yesno('SUPPORT_IP6LINKS',"You have chosen to build an \e[1;32mIPV4-only\e[0m server.\nWould you like to enable support for linking to IPV6-enabled\nInspIRCd servers?\nIf you are using a recent operating\nsystem and are unsure, answer yes.\nIf you answer 'no' here, your InspIRCd server will be unable\nto parse IPV6 addresses (e.g. for CIDR bans)"); + yesno('SUPPORT_IP6LINKS',"You have chosen to build an \e[1;32mIPV4-only\e[0m server.\nWould you like to enable support for linking to IPV6-enabled\nInspIRCd servers? If you are using a recent operating system and are\nunsure, answer yes. If you answer 'no' here, your InspIRCd server will\nbe unable to parse IPV6 addresses (e.g. for CIDR bans)\n\nEnable linking to servers which have IPV6 enabled?"); print "\n"; } + $config{USE_FREEBSD_BASE_SSL} = "n"; + $config{USE_FREEBSD_PORTS_SSL} = "n"; + if ($config{HAS_OPENSSL_PORT} ne "") + { + $config{USE_FREEBSD_PORTS_SSL} = "y"; + print "I have detected the OpenSSL FreeBSD port installed on your system,\n"; + print "version \e[1;32m".$config{HAS_OPENSSL_PORT}."\e[0m. Your base system OpenSSL is version \e[1;32m".$openssl_ver."\e[0m.\n\n"; + yesno('USE_FREEBSD_PORTS_SSL', "Do you want to use the FreeBSD ports version?"); + print "\n"; + $config{USE_FREEBSD_BASE_SSL} = "y" if ($config{USE_FREEBSD_PORTS_SSL} eq "n"); + + if ($config{USE_FREEBSD_BASE_SSL} eq "n") + { + # update to port version + $openssl_ver = $config{HAS_OPENSSL_PORT}; + } + } + else + { + $config{USE_FREEBSD_BASE_SSL} = "y" if ($^O eq "freebsd"); + } + if (($config{HAS_GNUTLS} eq "y") && ($config{HAS_OPENSSL} eq "y")) { print "I have detected both \e[1;32mGnuTLS\e[0m and \e[1;32mOpenSSL\e[0m on your system.\n"; print "I will default to GnuTLS. If you wish to use OpenSSL\n"; @@ -893,24 +890,6 @@ should NOT be used. You should probably specify a newer compiler.\n\n"; else { print "\nCould not detect OpenSSL or GnuTLS. Make sure pkg-config is installed if\nyou intend to use OpenSSL, or that GnuTLS is in your path if you intend\nto use GnuTLS.\n\n"; } - - print "\nThe following questions will ask you for various figures relating\n"; - print "To your IRCd install. Please note that these should usually be left\n"; - print "as defaults unless you have a real reason to change them. If they\n"; - print "changed, then the values must be identical on all servers on your\n"; - print "network, or malfunctions and/or crashes may occur, with the exception\n"; - print "of the 'maximum number of clients' setting which may be different on\n"; - print "different servers on the network.\n\n"; - - promptnumeric("length of nicknames", "NICK_LENGT"); - promptnumeric("length of channel names", "CHAN_LENGT"); - promptnumeric("number of mode changes in one line", "MAXI_MODES"); - promptnumeric("length of an ident (username)", "MAX_IDENT"); - promptnumeric("length of a quit message", "MAX_QUIT"); - promptnumeric("length of a channel topic", "MAX_TOPIC"); - promptnumeric("length of a kick message", "MAX_KICK"); - promptnumeric("length of a GECOS (real name)", "MAX_GECOS"); - promptnumeric("length of an away message", "MAX_AWAY"); } dumphash(); @@ -1116,7 +1095,7 @@ sub getosflags { $config{LDLIBS} = "-pthread -lstdc++"; $config{FLAGS} = "-fPIC -Woverloaded-virtual -Wshadow -Wformat=2 -Wmissing-format-attribute -Wall $config{OPTIMISATI}"; $config{DEVELOPER} = "-fPIC -Woverloaded-virtual -Wshadow -Wall -Wformat=2 -Wmissing-format-attribute -g"; - $SHARED = "-Wl,--rpath -Wl,$config{LIBRARY_DIR} -shared" unless defined $opt_disablerpath; + $SHARED = "-shared"; $config{MAKEPROG} = "make"; if ($config{OSNAME} =~ /darwin/i) { @@ -1135,6 +1114,7 @@ sub getosflags { if ($foo ne "") { $config{CC} = "eg++"; chomp($config{GCCVER} = `eg++ -dumpversion | cut -c 1`); # we must redo these if we change the compiler path + chomp($config{GCCMINOR} = `eg++ -dumpversion | cut -c 3`); } return "OpenBSD"; } @@ -1187,8 +1167,6 @@ sub writefiles { { print "Writing \e[1;32minspircd_config.h\e[0m\n"; open(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"; } + if ( + (($config{GCCVER} == 4) && ($config{GCCMINOR} >= 3)) + || + ($config{GCCVER} > 4) + ) { + print FILEHANDLE "#define HASHMAP_DEPRECATED\n"; + } if ($config{HAS_STRLCPY} eq "true") { print FILEHANDLE "#define HAS_STRLCPY\n"; } @@ -1259,8 +1236,17 @@ print FILEHANDLE "#define MAXBUF " . ($config{MAXBUF}+2) . "\n"; # 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 "no hi-perf, " . $config{USE_POLL}; + if ($config{USE_POLL} eq "y") + { + print FILEHANDLE "#define USE_POLL\n"; + $se = "socketengine_poll"; + } + else + { + print FILEHANDLE "#define USE_SELECT\n"; + $se = "socketengine_select"; + } } print FILEHANDLE "\n#include \"threadengines/threadengine_pthread.h\"\n\n#endif\n"; close(FILEHANDLE); @@ -1291,12 +1277,12 @@ EOF chomp($modules); # Remove Redundant whitespace.. opendir(DIRHANDLE, "src/modules"); - foreach my $name (sort readdir(DIRHANDLE)) { - if ($name =~ /^m_(.+?)$/) { - if (defined(opendir(MDIRHANDLE, "src/modules/$name"))) { + foreach my $name2 (sort readdir(DIRHANDLE)) { + if ($name2 =~ /^m_(.+?)$/) { + if (defined(opendir(MDIRHANDLE, "src/modules/$name2"))) { closedir(MDIRHANDLE); - $modules .= "$name.so "; - $uninstall_list = $uninstall_list . " -rm \$(MODULES)/$name.so\n"; + $modules .= "$name2.so "; + $uninstall_list = $uninstall_list . " -rm \$(MODULES)/$name2.so\n"; } } } @@ -1546,6 +1532,8 @@ sub write_dynamic_makefile my $i = 0; my @cmdlist = (); my %existing_install_list = (); + my %core_files_list = (); + opendir(DIRHANDLE, "src/commands"); foreach my $name (sort readdir(DIRHANDLE)) { @@ -1571,6 +1559,9 @@ sub write_dynamic_makefile $config{USE_PORTS} = 0; } + # formerly generated below this foreach, now it's not! magic. + my $all_core = ""; + foreach my $dir (("src","src/commands","src/modes","src/socketengines","src/modules")) { print "Scanning \e[1;32m$dir\e[0m for core files "; @@ -1584,9 +1575,20 @@ sub write_dynamic_makefile while (defined(my $line = )) { chomp($line); - if ($line =~ /\/\* \$Core: (\w+) \*\//i) + if ($line =~ /\/\* \$Core \*\//i) { - $filelist{$name} = $1; + my $sname = $name; + $sname =~ s/\.cpp$/.o/; + + # append it to list to be built + $all_core = $all_core . $sname . " "; + $filelist{$name} = $sname; + + # mark it as a core file, so it won't get shared object cflags + if (!exists($core_files_list{$name})) + { + $core_files_list{$name} = 1; + } } elsif ($line =~ /\/\* \$ExtraDeps: (.*?) \*\//i) { @@ -1652,37 +1654,25 @@ sub write_dynamic_makefile print " done!\n"; } + # modes need to be compiled in too + $all_core = $all_core . "modes/modeclasses.a"; + my $freebsd4libs = (defined $config{CRAQ} ? $config{CRAQ} : ""); - my $all = "all: "; - my $all_libsonly = ""; my $libraryext = ""; - my $othercrap = ""; - my $RPATH = ""; + my $binary_rule = ""; if ($config{IS_DARWIN} eq "YES") { $libraryext = "dylib"; - $othercrap = " \@../make/run-cc.pl \$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c inspircd.cpp\n \@../make/run-cc.pl \$(CC) -pipe -dynamic -bind_at_load -L. -o inspircd \$(LDLIBS) inspircd.o " + $binary_rule = " \@../make/run-cc.pl \$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c inspircd.cpp\n \@../make/run-cc.pl \$(CC) -pipe -dynamic -bind_at_load -L. -o inspircd \$(LDLIBS) inspircd.o " } else { $libraryext = "so"; - $RPATH = "-Wl,--rpath -Wl,$config{LIBRARY_DIR}" unless defined $opt_disablerpath; - $othercrap = " \@../make/run-cc.pl \$(CC) -pipe -I../include $RPATH \$(FLAGS) $freebsd4libs -rdynamic -L. inspircd.cpp -o inspircd \$(LDLIBS) "; + $binary_rule = " \@../make/run-cc.pl \$(CC) -pipe -I../include \$(FLAGS) $freebsd4libs -rdynamic -L. inspircd.cpp -o inspircd \$(LDLIBS) "; } - foreach my $cpp (sort keys %filelist) - { - $all = $all . $filelist{$cpp} . "." . $libraryext . " "; - $all_libsonly = $all_libsonly . $filelist{$cpp} . "." . $libraryext . " "; - $install_list = $install_list . " -install -m \$(INSTMODE) src/" . $filelist{$cpp} . "." . $libraryext . " \$(LIBPATH)\n"; - $uninstall_list = $uninstall_list . " -rm \$(LIBPATH)/" . $filelist{$cpp} . "." . $libraryext . "\n"; - } - $all = $all . "moo inspircd\n"; - - $othercrap = $othercrap . " $all_libsonly\n\n"; - open(FH,">src/Makefile") or die("Could not write src/Makefile"); print FH <