X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=configure;h=371093bd55742be64775facc6f2d4d9d719fd745;hb=d84050a6c8334774feb71ed0b3a8a60977b376a5;hp=2673509dea20f353900130d9bbb57986a45b4580;hpb=a1460b5736b1e21384833dcc10a0f3f10ccf8255;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/configure b/configure index 2673509de..371093bd5 100755 --- a/configure +++ b/configure @@ -2,8 +2,8 @@ ################################################### # InspIRCd Configuration Script # -# Copyright 2002-2008 The InspIRCd Development Team -# http://www.inspircd.org/wiki/index.php/Credits +# Copyright 2002-2009 The InspIRCd Development Team +# http://wiki.inspircd.org/Credits # # Licensed under GPL, please see the COPYING file # for more information @@ -26,7 +26,6 @@ BEGIN { }; use File::Copy (); - use Socket; use Cwd; use Getopt::Long; @@ -82,7 +81,7 @@ our %specialdeps = (); # If you wish for a file to have extra make lines (in between the compile and link steps) # then insert them here. # Auto populated by /* $ExtraBuild: */ instruction - + our %extrabuildlines = (); # If you wish for a file to be linked against extra objects or arctives, insert them here. @@ -145,6 +144,8 @@ GetOptions ( 'list-extras' => sub { list_extras; exit 0; }, # This, --enable-extras, and --disable-extras are for non-interactive managing. 'enable-extras=s@' => \@opt_enableextras, # ^ 'disable-extras=s@' => \@opt_disableextras, # ^ + 'generate-openssl-cert' => sub { make_openssl_cert(); exit(0); }, + 'generate-gnutls-cert' => sub { make_gnutls_cert(); exit(0); } ); if (scalar(@opt_enableextras) + scalar(@opt_disableextras) > 0) { @@ -664,7 +665,7 @@ print "yes\n" if $has_ports == 1; print "no\n" if $has_ports == 0; $config{HAS_EPOLL} = $has_epoll; -$config{HAS_KQUEUE} = $has_kqueue; +$config{HAS_KQUEUE} = $has_kqueue; printf "Checking for libgnutls... "; if (defined($config{HAS_GNUTLS}) && (($config{HAS_GNUTLS}) || ($config{HAS_GNUTLS} eq "y"))) { @@ -705,7 +706,7 @@ if ($config{OSNAME} =~ /FreeBSD/i) { # ICKY ICKY ICK, FREEBSD 4.x! GET AN UPGRADE! $config{CRAQ} = "-L/usr/local/lib -lgnugetopt -DHAVE_DECL_GETOPT=1"; - print "yes\n"; + print "yes (upgrade ffs, freebsd 4 is *way* out of date)\n"; } else { @@ -867,28 +868,39 @@ should NOT be used. You should probably specify a newer compiler.\n\n"; $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"; - print "instead, you should enable the OpenSSL module yourself\n"; - print "by copying it from src/modules/extra to src/modules.\n\n"; + $config{USE_SSL} = "n"; + + if ($config{HAS_GNUTLS} eq "y" || $config{HAS_OPENSSL} eq "y") + { print "Detected GnuTLS version: \e[1;32m" . $gnutls_ver . "\e[0m\n"; print "Detected OpenSSL version: \e[1;32m" . $openssl_ver . "\e[0m\n\n"; - } - if ($config{HAS_GNUTLS} eq "y") { - yesno('USE_GNUTLS', "Would you like to enable SSL Support?"); - if ($config{USE_GNUTLS} eq "y") { - print "\nUsing GnuTLS SSL module.\n"; - } - } elsif ($config{HAS_OPENSSL} eq "y") { - yesno('USE_OPENSSL', "Would you like to enable SSL Support?"); - if ($config{USE_OPENSSL} eq "y") { - print "\nUsing OpenSSL SSL module.\nYou will get better performance if you move to GnuTLS in the future.\n"; + yesno('USE_SSL', "One or more SSL libraries detected. Would you like to enable SSL support?"); + if ($config{USE_SSL} eq "y") + { + if ($config{HAS_GNUTLS} eq "y") + { + yesno('USE_GNUTLS',"Would you like to enable SSL with m_ssl_gnutls? (recommended)"); + if ($config{USE_GNUTLS} eq "y") + { + print "\nUsing GnuTLS SSL module.\n"; + } + } + + if ($config{HAS_OPENSSL} eq "y") + { + yesno('USE_OPENSSL', "Would you like to enable SSL with m_ssl_openssl?"); + if ($config{USE_OPENSSL} eq "y") + { + print "\nUsing OpenSSL SSL module.\nYou will get better performance if you move to GnuTLS in the future.\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"; + else + { + print "\nCould not detect OpenSSL or GnuTLS. Make sure pkg-config is installed if\n"; + print "you intend to use OpenSSL, or that GnuTLS is in your path if you intend\nto use GnuTLS.\n\n"; } } @@ -985,7 +997,7 @@ if (($config{USE_GNUTLS} eq "y") || ($config{USE_OPENSSL} eq "y")) { print "Please note: for \e[1;32mSSL support\e[0m you will need to load required\n"; print "modules in your config. This configure script has added those modules to the\n"; print "build process. For more info please refer to:\n"; - print "\e[1;32mhttp://www.inspircd.org/wiki/Installation_From_Tarball\e[0m\n"; + print "\e[1;32mhttp://wiki.inspircd.org/Installation_From_Tarball\e[0m\n"; } print "*** \e[1;32mRemember to edit your configuration files!!!\e[0m ***\n\n\n"; if (($config{OSNAME} eq "OpenBSD") && ($config{CC} ne "eg++")) { @@ -1051,8 +1063,8 @@ sub dir_check { # Assume relative Path was given.. fill in the rest. $var = $this . "/$var"; } - - $var = resolve_directory($var); + + $var = resolve_directory($var); if (! -e $var) { print "$var does not exist. Create it?\n[\e[1;32my\e[0m] "; chomp(my $tmp = ); @@ -1095,7 +1107,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 = "-shared"; + $SHARED = "-shared -export-dynamic"; $config{MAKEPROG} = "make"; if ($config{OSNAME} =~ /darwin/i) { @@ -1144,7 +1156,7 @@ sub getosflags { $config{LDLIBS} .= " -lsocket -lnsl -lrt -lresolv -pthread"; return "Solaris"; } - + if($config{OSNAME} =~ /MINGW32/i) { # All code is position-independent on windows @@ -1369,8 +1381,8 @@ sub write_dynamic_modules_makefile { ### print FILEHANDLE < # for assisting with making this work right. @@ -1412,27 +1424,27 @@ EOCHEESE $cmflags = getcompilerflags("src/modules/m_".$i.".cpp"); $liflags = getlinkerflags("src/modules/m_".$i.".cpp"); my $deps = getdependencies("src/modules/m_".$i.".cpp"); - + #print "file: $i: cmflags=$cmflags; liflags=$liflags; deps=$deps\n"; - + if (nopedantic("src/modules/m_".$i.".cpp")) { print FILEHANDLE " m_$i.so: m_$i.cpp ../../include/modules.h ../../include/users.h ../../include/channels.h ../../include/base.h ../../include/inspircd_config.h ../../include/inspircd.h ../../include/configreader.h $deps - \@../../make/run-cc.pl \$(CC) -pipe -I../../include \$(NICEFLAGS) $cmflags \$(PICLDFLAGS) $liflags -export-dynamic -o m_$i.so m_$i.cpp -" + \@../../make/run-cc.pl \$(CC) -pipe -I../../include \$(NICEFLAGS) $cmflags \$(PICLDFLAGS) $liflags $SHARED -o m_$i.so m_$i.cpp +"; } else { print FILEHANDLE " m_$i.so: m_$i.cpp ../../include/modules.h ../../include/users.h ../../include/channels.h ../../include/base.h ../../include/inspircd_config.h ../../include/inspircd.h ../../include/configreader.h $deps - \@../../make/run-cc.pl \$(CC) -pipe -I../../include \$(FLAGS) $cmflags \$(PICLDFLAGS) $liflags -export-dynamic -o m_$i.so m_$i.cpp + \@../../make/run-cc.pl \$(CC) -pipe -I../../include \$(FLAGS) $cmflags \$(PICLDFLAGS) $liflags $SHARED -o m_$i.so m_$i.cpp "; } $install_list = $install_list . " install -m \$(INSTMODE) src/modules/m_$i.so \$(MODPATH)\n"; $uninstall_list = $uninstall_list . " -rm \$(MODULES)/m_$i.so\n"; -### + ### # End Write Entry to the MakeFile ### } @@ -1448,12 +1460,8 @@ m_$i.so: m_$i.cpp ../../include/modules.h ../../include/users.h ../../include/ch if (defined(opendir(MDIRHANDLE, "src/modules/$name"))) { read_module_directory("src/modules/$name", $name); print "Composing Makefile rules for directory \e[1;32m$name\e[0m... (\e[1;32m$mfcount files found\e[0m)\n"; - print FILEHANDLE "$name.so: ../../include/modules.h ../../include/users.h ../../include/channels.h ../../include/base.h ../../include/inspircd_config.h ../../include/inspircd.h ../../include/configreader.h $mobjs\n"; - if ($config{IS_DARWIN} eq "YES") { - print FILEHANDLE " \@../../make/run-cc.pl \$(CC) -pipe -twolevel_namespace -undefined dynamic_lookup \$(FLAGS) $mliflags -bundle -o $name.so $mobjs\n"; - } else { - print FILEHANDLE " \@../../make/run-cc.pl \$(CC) -pipe \$(FLAGS) -shared $mliflags -o $name.so $mobjs\n"; - } + print FILEHANDLE "$name.so: ../../include/modules.h ../../include/users.h ../../include/channels.h ../../include/base.h ../../include/inspircd_config.h ../../include/inspircd.h ../../include/configreader.h $mobjs\n"; + print FILEHANDLE " \@../../make/run-cc.pl \$(CC) -pipe \$(FLAGS) $SHARED $mliflags -o $name.so $mobjs\n"; print FILEHANDLE "\n$mfrules\n"; closedir(MDIRHANDLE); $install_list = $install_list . " install -m \$(INSTMODE) src/modules/$name.so \$(MODPATH)\n"; @@ -1465,11 +1473,11 @@ m_$i.so: m_$i.cpp ../../include/modules.h ../../include/users.h ../../include/ch sub read_module_directory { my ($dpath, $reldpath) = @_; - + if (opendir(MDIRHANDLE, $dpath) == 0) { return; } - + foreach my $fname (sort readdir(MDIRHANDLE)) { if ($fname =~ /\.cpp$/) { my $cmflags = getcompilerflags("$dpath/$fname"); @@ -1478,7 +1486,7 @@ sub read_module_directory { my $oname = $fname; $oname =~ s/\.cpp$/.o/g; $mfrules = $mfrules . "$reldpath/$oname: $reldpath/$fname ../../include/modules.h ../../include/users.h ../../include/channels.h ../../include/base.h ../../include/inspircd_config.h ../../include/inspircd.h ../../include/configreader.h $deps\n"; - $mfrules = $mfrules . " \@../../make/run-cc.pl \$(CC) -pipe -I../../include -I. \$(FLAGS) $cmflags -export-dynamic -o $reldpath/$oname -c $reldpath/$fname\n\n"; + $mfrules = $mfrules . " \@../../make/run-cc.pl \$(CC) -pipe -I../../include -I. \$(FLAGS) $cmflags $SHARED -o $reldpath/$oname -c $reldpath/$fname\n\n"; $mobjs = $mobjs . " $reldpath/$oname"; $mfcount++; } @@ -1718,12 +1726,12 @@ EOM if (exists($core_files_list{$cpp})) { - # core files are statically linked into the binary and do not require -export-dynamic + # core files are statically linked into the binary and do not require $SHARED shared libs switches $buildstring = $buildstring . " \@../make/run-cc.pl \$(CC) -pipe -I../include \$(FLAGS) -c $rawcpp\n"; } else { - $buildstring = $buildstring . " \@../make/run-cc.pl \$(CC) -pipe -I../include \$(FLAGS) -export-dynamic -c $rawcpp\n"; + $buildstring = $buildstring . " \@../make/run-cc.pl \$(CC) -pipe -I../include \$(FLAGS) $SHARED -c $rawcpp\n"; } if (exists($extrabuildlines{$cpp})) @@ -1761,11 +1769,11 @@ all: $cmdobjs ITEM - # now print the command file details. + # now print the command file detail foreach my $cmd (@cmdlist) { print FH <