X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=configure;h=fd00ff89c04ace244a996c09f27d0463a2f0fe0f;hb=571714e28b26cc59cbc8d27098a5ba981240ee2d;hp=33e9b4c505061cebe29e8d946210ecccc5d2902e;hpb=2ddee67dc28afe12b1cde61a32bcc1c403ae8185;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/configure b/configure index 33e9b4c50..fd00ff89c 100755 --- a/configure +++ b/configure @@ -33,12 +33,6 @@ BEGIN { use strict; use warnings FATAL => qw(all); -use Data::Dumper; -BEGIN { - $Data::Dumper::Sortkeys = 1; - $Data::Dumper::Useqq = 1; -}; - use File::Copy (); use Socket; use Cwd; @@ -148,7 +142,7 @@ our %config = (); # Initiate Configuration Hash.. our $cache_loaded = getcache(); $config{ME} = resolve_directory($topdir); # Present Working Directory -$config{BASE_DIR} = $config{ME}."/run"; +$config{BASE_DIR} ||= $config{ME}."/run"; if (defined $opt_base_dir) { $config{BASE_DIR} = $opt_base_dir; @@ -165,13 +159,13 @@ if (defined $opt_system) { $config{DATA_DIR} = '/var/inspircd'; $config{LOG_DIR} = '/var/log/inspircd'; } else { - $config{UID} = $opt_uid || $<; - $config{CONFIG_DIR} = resolve_directory($config{BASE_DIR}."/conf"); # Configuration Directory - $config{MODULE_DIR} = resolve_directory($config{BASE_DIR}."/modules"); # Modules Directory - $config{BINARY_DIR} = resolve_directory($config{BASE_DIR}."/bin"); # Binary Directory - $config{BUILD_DIR} = resolve_directory($config{ME}."/build"); # Build Directory - $config{DATA_DIR} = resolve_directory($config{BASE_DIR}."/data"); # Data directory - $config{LOG_DIR} = resolve_directory($config{BASE_DIR}."/logs"); # Log directory + $config{UID} = $opt_uid || $config{UID} || $<; + $config{CONFIG_DIR} ||= resolve_directory($config{BASE_DIR}."/conf"); # Configuration Directory + $config{MODULE_DIR} ||= resolve_directory($config{BASE_DIR}."/modules"); # Modules Directory + $config{BINARY_DIR} ||= resolve_directory($config{BASE_DIR}."/bin"); # Binary Directory + $config{BUILD_DIR} ||= resolve_directory($config{ME}."/build"); # Build Directory + $config{DATA_DIR} ||= resolve_directory($config{BASE_DIR}."/data"); # Data directory + $config{LOG_DIR} ||= resolve_directory($config{BASE_DIR}."/logs"); # Log directory } if (defined $opt_config_dir) { @@ -215,12 +209,12 @@ else chomp(our $gnutls_ver = $config{HAS_GNUTLS}); chomp(our $openssl_ver = $config{HAS_OPENSSL}); -$config{USE_GNUTLS} = "n"; +$config{USE_GNUTLS} ||= "n"; if (defined $opt_use_gnutls) { $config{USE_GNUTLS} = "y"; # Use gnutls. } -$config{USE_OPENSSL} = "n"; # Use openssl. +$config{USE_OPENSSL} ||= "n"; # Use openssl. if (defined $opt_use_openssl) { $config{USE_OPENSSL} = "y"; @@ -260,6 +254,12 @@ if ($config{OSNAME} =~ /darwin/i) $config{STARTSCRIPT} = "org.inspircd.plist"; # start script for OSX. $config{CC} = "xcrun clang++"; # C++ compiler for OSX. } +elsif ($config{OSNAME} =~ /freebsd/i) +{ + chomp(my $fbsd_version = `uname -r`); + $fbsd_version =~ s/^(\d+\.\d+).*/$1/g; + $config{CC} = $fbsd_version >= 10.0 ? 'clang++' : 'g++'; +} else { $config{CC} = "g++"; # C++ compiler @@ -281,11 +281,8 @@ if ($config{HAS_OPENSSL} =~ /^([-[:digit:].]+)(?:[a-z])?(?:\-[a-z][0-9])?/) { } if (($config{GCCVER} eq "") || ($config{GCCMINOR} eq "")) { - if ($config{IS_DARWIN} eq "YES") { - print $config{CC} . " was not found! You require clang++ (the LLVM C++ compiler, part of the OSX developer tools) to build InspIRCd!\n"; - } else { - print $config{CC} . " was not found! You require g++ (the GNU C++ compiler, part of GCC) to build InspIRCd!\n"; - } + print "`$config{CC}` was not found! A C++ compiler is required to build InspIRCd!\n"; + print "You can pass a custom compiler to $0 using --with-cc=[name].\n"; exit; } @@ -356,51 +353,16 @@ $exec = $config{CC} . " -dumpversion | cut -c 3"; chomp($config{GCCMINOR} = `$exec`); printf "Checking if stdint.h exists... "; -$config{HAS_STDINT} = "true"; -our $fail = 0; -open(STDINT, ")) { - chomp($line); - # try and find the delcaration of: - # size_t strlcpy(...) - if ($line =~ /size_t(\0x9|\s)+strlcpy/) { - $config{HAS_STRLCPY} = "true"; - } - } - close(STRLCPY); -} -print "yes\n" if $config{HAS_STRLCPY} eq "true"; -print "no\n" if $config{HAS_STRLCPY} eq "false"; +$config{HAS_STRLCPY} = test_compile('strlcpy'); +print $config{HAS_STRLCPY} ? "yes\n" : "no\n"; printf "Checking if kqueue exists... "; -$has_kqueue = 0; -$fail = 0; -open(KQUEUE, ")) { - chomp($line); - # try and find the delcaration of: - # int kqueue(void); - if ($line =~ /int(\0x9|\s)+kqueue/) { - $has_kqueue = 1; - } - } - close(KQUEUE); -} -print "yes\n" if $has_kqueue == 1; -print "no\n" if $has_kqueue == 0; +$has_kqueue = test_compile('kqueue'); +print $has_kqueue ? "yes\n" : "no\n"; printf "Checking for epoll support... "; $has_epoll = test_compile('epoll'); @@ -613,8 +575,8 @@ should NOT be used. You should probably specify a newer compiler.\n\n"; $config{USE_FREEBSD_BASE_SSL} = "y" if ($^O eq "freebsd"); } - $config{USE_SSL} = "n"; - $config{MODUPDATE} = 'n'; + $config{USE_SSL} ||= "n"; + $config{MODUPDATE} ||= 'n'; if ($config{HAS_GNUTLS} eq "y" || $config{HAS_OPENSSL} eq "y") { @@ -664,12 +626,12 @@ dumphash(); if (($config{USE_GNUTLS} eq "y") && ($config{HAS_GNUTLS} ne "y")) { - print "Sorry, but I couldn't detect GnuTLS. Make sure gnutls-config is in your path.\n"; + print "Sorry, but I couldn't detect GnuTLS. Make sure pkg-config is in your path.\n"; exit(0); } if (($config{USE_OPENSSL} eq "y") && ($config{HAS_OPENSSL} ne "y")) { - print "Sorry, but I couldn't detect OpenSSL. Make sure openssl is in your path.\n"; + print "Sorry, but I couldn't detect OpenSSL. Make sure pkg-config and openssl are in your path.\n"; exit(0); } our $failed = 0; @@ -1012,7 +974,7 @@ EOF for my $var (qw( CC SYSTEM BASE_DIR CONFIG_DIR MODULE_DIR BINARY_DIR BUILD_DIR DATA_DIR UID - STARTSCRIPT DESTINATION SOCKETENGINE + STARTSCRIPT DESTINATION SOCKETENGINE LOG_DIR )) { s/\@$var\@/$config{$var}/g; }