X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=configure;h=1245f2b61cd9b66a3193355089bc0f03a9b2d003;hb=67cf8f594aa36edfca40511d245626dae258999a;hp=a27b3953ef83f28e82bf1ab8f814d930b8f6ac37;hpb=a708569806676737df554d6b762b7c680c319434;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/configure b/configure index a27b3953e..1245f2b61 100755 --- a/configure +++ b/configure @@ -2,7 +2,7 @@ # InspIRCd Configuration Script # -# Copyright 2003 The ChatSpike Development Team +# Copyright 2002-2006 The ChatSpike Development Team # # # @@ -12,12 +12,14 @@ # ######################################## +require 5.6.0; use Cwd; use Getopt::Long; GetOptions ( 'enable-gnutls' => \$opt_use_gnutls, 'enable-openssl' => \$opt_use_openssl, + 'disable-interactive' => \$opt_nointeractive, 'with-nick-length=i' => \$opt_nick_length, 'with-channel-length=i' => \$opt_chan_length, 'with-max-channels=i' => \$opt_maxchans, @@ -45,8 +47,8 @@ GetOptions ( 'binary-dir=s' => \$opt_binary_dir, 'library-dir=s' => \$opt_library_dir, 'help' => sub { showhelp(); }, - 'modupdate' => sub { update(); }, - 'update' => sub { modupdate(); }, + 'modupdate' => sub { modupdate(); }, + 'update' => sub { update(); }, 'svnupdate' => sub { svnupdate(); }, 'clean' => sub { clean(); }, ); @@ -58,6 +60,7 @@ my $non_interactive = ( (defined $opt_module_dir) || (defined $opt_base_dir) || (defined $opt_binary_dir) || + (defined $opt_nointeractive) || (defined $opt_away) || (defined $opt_gecos) || (defined $opt_kick) || @@ -346,11 +349,10 @@ sub svnupdate } print "Running non-interactive configure...\n" unless $interactive; - -print "Checking for cache from previous configure...\n"; -getcache(); -print "Checking operating system version...\n"; -getosflags(); +print "Checking for cache from previous configure... "; +print ((getcache() eq "true") ? "found\n" : "not found\n"); +print "Checking operating system version... "; +print getosflags() . "\n"; if (defined $opt_maxclients) { @@ -462,26 +464,24 @@ if (($config{HAS_OPENSSL}) && (($config{HAS_OPENSSL} >= 0.8) || ($config{HAS_OPE if ($interactive) { system("clear"); - # Display Splash Logo.. - show_splash(); - chomp($wholeos = `uname -mnr`); + chomp($wholeos = `uname -sr`); my $rev = getrevision(); # Display Introduction Message.. print " -Welcome to the InspIRCd Configuration program! +Welcome to the \033[1mInspIRCd\033[0m Configuration program! (\033[1minteractive mode\033[0m) +\033[1mPackage maintainers: Type ./configure --help for non-interactive help\033[0m *** If you are unsure of any of these values, leave it blank for *** *** standard settings that will work, and your server will run *** -*** using them. If you are running this server as part of a *** -*** larger network, you must consult with your network admins *** -*** for the proper values to use, or server links will be unstable! *** +*** using them. Please consult your IRC network admin if in doubt. *** Press \033[1m\033[0m to accept the default for any option, or enter a new value. Please note: You will \033[1mHAVE\033[0m to read the docs dir, otherwise you won't have a config file! -Your operating system is: \033[1;32m$config{OSNAME}\033[0m ($wholeos), fdmax: $config{MAX_CLIENT_T} +Your operating system is: \033[1;32m$config{OSNAME}\033[0m ($wholeos) +Maximum file descriptors: \033[1;32m$config{MAX_CLIENT_T}\033[0m Your InspIRCd revision ID is \033[1;32mr$rev\033[0m"; if ($rev eq "r0") { print " (Non-SVN build)"; @@ -1083,7 +1083,9 @@ sub getosflags { $config{CC} = "eg++"; chomp($config{GCCVER} = `eg++ -dumpversion | cut -c 1`); # we must redo these if we change the compiler path } + return "OpenBSD"; } + return $config{OSNAME}; } else { $config{LDLIBS} = "-ldl -lstdc++"; $config{FLAGS} = "-fPIC -Wall -Woverloaded-virtual $config{OPTIMISATI}"; @@ -1093,6 +1095,7 @@ sub getosflags { $config{LDLIBS} = ""; $config{MAKEPROG} = "/usr/bin/make"; $config{MAKEORDER} = "ircd mods"; + return "Cygwin"; } elsif ($config{OSNAME} eq "CYG-STATIC") { $config{FLAGS} = "-Wall -Woverloaded-virtual $config{OPTIMISATI}"; $config{LDLIBS} = ""; @@ -1100,7 +1103,9 @@ sub getosflags { $config{MAKEORDER} = "mods ircd"; $config{STATICLIBS} = "modules/mods.a"; $config{STATIC_LINK} = "yes"; + return "Cygwin-Static"; } + return "Linux"; } if ($config{OSNAME} =~ /SunOS/) @@ -1111,12 +1116,14 @@ sub getosflags { # rt = POSIX realtime extensions # resolv = inet_aton only (why isnt this in nsl?!) $config{LDLIBS} = $config{LDLIBS} . " -lsocket -lnsl -lrt -lresolv"; + return "Solaris"; } if($config{OSNAME} eq "MINGW32") { # All code is position-independent on windows $config{FLAGS} =~ s/-fPIC //; + return "MinGW"; } } @@ -1379,17 +1386,6 @@ sub getlinkerflags { return undef; } -sub show_splash { - print "'\033[1;33m####\033[0m:'\033[1;33m##\033[0m::: \033[1;33m##\033[0m::'\033[1;33m######\033[0m::'\033[1;33m########\033[0m::'\033[1;33m####\033[0m:'\033[1;33m########\033[0m:::'\033[1;33m######\033[0m::'\033[1;33m########\033[0m::\n"; - print ". \033[1;33m##\033[0m:: \033[1;33m###\033[0m:: \033[1;33m##\033[0m:'\033[1;33m##\033[0m... \033[1;33m##\033[0m: \033[1;33m##\033[0m.... \033[1;33m##\033[0m:. \033[1;33m##\033[0m:: \033[1;33m##\033[0m.... \033[1;33m##\033[0m:'\033[1;33m##\033[0m... \033[1;33m##\033[0m: \033[1;33m##\033[0m.... \033[1;33m##\033[0m:\n"; - print ": \033[1;33m##\033[0m:: \033[1;33m####\033[0m: \033[1;33m##\033[0m: \033[1;33m##\033[0m:::..:: \033[1;33m##\033[0m:::: \033[1;33m##\033[0m:: \033[1;33m##\033[0m:: \033[1;33m##\033[0m:::: \033[1;33m##\033[0m: \033[1;33m##\033[0m:::..:: \033[1;33m##\033[0m:::: \033[1;33m##\033[0m:\n"; - print ": \033[1;33m##\033[0m:: \033[1;33m##\033[0m \033[1;33m##\033[0m \033[1;33m##\033[0m:. \033[1;33m######\033[0m:: \033[1;33m########\033[0m::: \033[1;33m##\033[0m:: \033[1;33m########\033[0m:: \033[1;33m##\033[0m::::::: \033[1;33m##\033[0m:::: \033[1;33m##\033[0m:\n"; - print ": \033[1;33m##\033[0m:: \033[1;33m##\033[0m. \033[1;33m####\033[0m::..... \033[1;33m##\033[0m: \033[1;33m##\033[0m.....:::: \033[1;33m##\033[0m:: \033[1;33m##\033[0m.. \033[1;33m##\033[0m::: \033[1;33m##\033[0m::::::: \033[1;33m##\033[0m:::: \033[1;33m##\033[0m:\n"; - print ": \033[1;33m##\033[0m:: \033[1;33m##\033[0m:. \033[1;33m###\033[0m:'\033[1;33m##\033[0m::: \033[1;33m##\033[0m: \033[1;33m##\033[0m::::::::: \033[1;33m##\033[0m:: \033[1;33m##\033[0m::. \033[1;33m##\033[0m:: \033[1;33m##\033[0m::: \033[1;33m##\033[0m: \033[1;33m##\033[0m:::: \033[1;33m##\033[0m:\n"; - print "'\033[1;33m####\033[0m: \033[1;33m##\033[0m::. \033[1;33m##\033[0m:. \033[1;33m######\033[0m:: \033[1;33m##\033[0m::::::::'\033[1;33m####\033[0m: \033[1;33m##\033[0m:::. \033[1;33m##\033[0m:. \033[1;33m######\033[0m:: \033[1;33m########\033[0m::\n"; - print "\033[0m\033[0m....::..::::..:::......:::..:::::::::....::..:::::..:::......:::........:::\n\n"; -} - sub resolve_directory { use File::Spec; return File::Spec->rel2abs($_[0]); @@ -1863,6 +1859,7 @@ ITEM sub showhelp { + chomp($PWD = `pwd`); print "Usage: configure [options] Options: [defaults in brackets after descriptions] @@ -1872,24 +1869,20 @@ any required values manually. If one or more options are specified, non-interactive configuration is started, and any omitted values are defaulted. -Interactive configuration and reconfiguration: - - --update Update makefiles - --modupdate Detect new modules - --svnupdate {rebuild} Update working copy - {and optionally rebuild} - --clean Remove .config.cache - - Arguments with a single \"-\" symbol, as in - InspIRCd 1.0.x, are also allowed. - -Non-interactive and initial configuration: +Arguments with a single \"-\" symbol, as in +InspIRCd 1.0.x, are also allowed. + --disable-interactive Sets no options intself, but + will disable any interactive prompting. + --update Update makefiles and dependencies + --modupdate Detect new modules and write makefiles + --svnupdate {rebuild} Update working copy via subversion + {and optionally rebuild it} + --clean Remove .config.cache file and go interactive --enable-gnutls Enable GnuTLS module [no] --enable-openssl Enable OpenSSL module [no] --with-nick-length=[n] Specify max. nick length [32] - --with-channel-length=[n] Specify max. channel length - [64] + --with-channel-length=[n] Specify max. channel length [64] --with-max-channels=[n] Specify max. number of channels a normal user may join [20] --with-max-oper-channels=[n] Specify max. number of channels @@ -1897,10 +1890,8 @@ Non-interactive and initial configuration: --with-max-clients=[n] Specify maximum number of users which may connect locally --enable-optimization=[n] Optimize using -O[n] gcc flag - --enable-epoll Enable epoll() where supported - [set] - --enable-kqueue Enable kqueue() where supported - [set] + --enable-epoll Enable epoll() where supported [set] + --enable-kqueue Enable kqueue() where supported [set] --disable-epoll Do not enable epoll(), fall back to select() [not set] --disable-kqueue Do not enable kqueue(), fall back @@ -1908,8 +1899,7 @@ Non-interactive and initial configuration: --enable-ipv6 Build ipv6 native InspIRCd [no] --enable-remote-ipv6 Build with ipv6 support for remote servers on the network [yes] - --disable-remote-ipv6 Do not allow remote ipv6 servers - [not set] + --disable-remote-ipv6 Do not allow remote ipv6 servers [not set] --with-cc=[filename] Use an alternative g++ binary to build InspIRCd [g++] --with-ident-length=[n] Specify max length of ident [12] @@ -1920,13 +1910,20 @@ Non-interactive and initial configuration: --with-away-length=[n] Specify max length of away [150] --with-max-modes=[n] Specify max modes per line which have parameters [20] - --prefix=[directory] Base directory to install into - [current directory] - --config-dir=[directory] Config file directory [prefix/conf] - --module-dir=[directory] Modules directory [prefix/modules] - --binary-dir=[directory] Binaries directory [prefix/bin] - --library-dir=[directory] Library directory [prefix/lib] - --help Show this help text + --prefix=[directory] Base directory to install into (if defined, + can automatically define config, module, bin + and library dirs as subdirectories of prefix) + [$PWD] + --config-dir=[directory] Config file directory for config and SSL certs + [$PWD/conf] + --module-dir=[directory] Modules directory for loadable modules + [$PWD/modules] + --binary-dir=[directory] Binaries directory for core binary + [$PWD/bin] + --library-dir=[directory] Library directory for core libraries + [$PWD/lib] + --help Show this help text and exit + "; exit(0); }