X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=configure;h=f738a65a068602cbfff5fe9d3212e2a16cdd1096;hb=d743bdf338d63e032f3ecb8518e00ea4ff1345ed;hp=3ae77e8fcbb44b9a9750ff3c3f41b7b1db01af0d;hpb=c63000e0b34e7b3fcd8d8e4069bad5c8d301219e;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/configure b/configure index 3ae77e8fc..f738a65a0 100755 --- a/configure +++ b/configure @@ -1,16 +1,30 @@ #!/usr/bin/env perl -################################################### -# InspIRCd Configuration Script + +# +# InspIRCd -- Internet Relay Chat Daemon +# +# Copyright (C) 2009-2010 Daniel De Graaf +# Copyright (C) 2007, 2009 Dennis Friis +# Copyright (C) 2003, 2006-2008 Craig Edwards +# Copyright (C) 2006-2008 Robin Burchell +# Copyright (C) 2008 Thomas Stagner +# Copyright (C) 2007 John Brooks +# Copyright (C) 2006 Oliver Lupton +# Copyright (C) 2003-2006 Craig McLure # -# Copyright 2002-2010 The InspIRCd Development Team -# http://wiki.inspircd.org/Credits +# This file is part of InspIRCd. InspIRCd is free software: you can +# redistribute it and/or modify it under the terms of the GNU General Public +# License as published by the Free Software Foundation, version 2. # -# Licensed under GPL, please see the COPYING file -# for more information +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. # -# $Id$ +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . # -################################################### + BEGIN { require 5.8.0; @@ -47,7 +61,7 @@ our ($opt_use_gnutls, $opt_rebuild, $opt_use_openssl, $opt_nointeractive, $opt_p $opt_noipv6, $opt_maxbuf, $opt_disable_debug, $opt_freebsd_port, $opt_system, $opt_uid); -our ($opt_cc, $opt_base_dir, $opt_config_dir, $opt_module_dir, $opt_binary_dir); +our ($opt_cc, $opt_base_dir, $opt_config_dir, $opt_module_dir, $opt_binary_dir, $opt_data_dir, $opt_log_dir); sub list_extras (); @@ -79,6 +93,8 @@ GetOptions ( 'config-dir=s' => \$opt_config_dir, 'module-dir=s' => \$opt_module_dir, 'binary-dir=s' => \$opt_binary_dir, + 'data-dir=s' => \$opt_data_dir, + 'log-dir=s' => \$opt_log_dir, 'disable-debuginfo' => sub { $opt_disable_debug = 1 }, 'help' => sub { showhelp(); }, 'update' => sub { update(); }, @@ -106,6 +122,8 @@ our $interactive = !( (defined $opt_module_dir) || (defined $opt_base_dir) || (defined $opt_binary_dir) || + (defined $opt_data_dir) || + (defined $opt_log_dir) || (defined $opt_nointeractive) || (defined $opt_cc) || (defined $opt_noipv6) || @@ -127,28 +145,33 @@ chomp(our $topdir = getcwd()); our $this = resolve_directory($topdir); # PWD, Regardless. our @modlist = (); # Declare for Module List.. our %config = (); # Initiate Configuration Hash.. +our $cache_loaded = getcache(); $config{ME} = resolve_directory($topdir); # Present Working Directory $config{BASE_DIR} = $config{ME}."/run"; if (defined $opt_base_dir) { $config{BASE_DIR} = $opt_base_dir; -} elsif (defined $opt_system || defined $opt_uid) { +} elsif (defined $opt_system) { $config{BASE_DIR} = '/var/lib/inspircd'; } -if (defined $opt_system || defined $opt_uid) { +if (defined $opt_system) { $config{UID} = $opt_uid || 'ircd'; $config{CONFIG_DIR} = '/etc/inspircd'; $config{MODULE_DIR} = '/usr/lib/inspircd'; $config{BINARY_DIR} = '/usr/sbin/'; $config{BUILD_DIR} = resolve_directory($config{ME}."/build"); # Build Directory + $config{DATA_DIR} = '/var/inspircd'; + $config{LOG_DIR} = '/var/log/inspircd'; } else { - $config{UID} = $<; + $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 } if (defined $opt_config_dir) { @@ -160,7 +183,13 @@ if (defined $opt_module_dir) { if (defined $opt_binary_dir) { $config{BINARY_DIR} = $opt_binary_dir; } -chomp($config{HAS_GNUTLS} = `pkg-config --modversion gnutls 2>/dev/null | cut -c 1,2,3`); # GNUTLS Version. +if (defined $opt_data_dir) { + $config{DATA_DIR} = $opt_data_dir; +} +if (defined $opt_log_dir) { + $config{LOG_DIR} = $opt_log_dir; +} +chomp($config{HAS_GNUTLS} = `pkg-config --modversion gnutls 2>/dev/null`); # GNUTLS Version. if (defined $opt_freebsd_port) { @@ -244,7 +273,7 @@ $exec = $config{CC} . " -dumpversion | cut -c 3"; chomp($config{GCCMINOR} = `$exec`); $config{MAXBUF} = "512"; # Max buffer size -if ($config{HAS_OPENSSL} =~ /^([-[:digit:].]+)([a-z])?(\-[a-z][0-9])?$/) { +if ($config{HAS_OPENSSL} =~ /^([-[:digit:].]+)(?:[a-z])?(?:\-[a-z][0-9])?/) { $config{HAS_OPENSSL} = $1; } else { $config{HAS_OPENSSL} = ""; @@ -316,7 +345,7 @@ sub test_compile { print "Running non-interactive configure...\n" unless $interactive; print "Checking for cache from previous configure... "; -print ((!getcache()) ? "not found\n" : "found\n"); +print ($cache_loaded ? "found\n" : "not found\n"); $config{SYSTEM} = lc $^O; print "Checking operating system version... $config{SYSTEM}\n"; @@ -517,14 +546,18 @@ should NOT be used. You should probably specify a newer compiler.\n\n"; if ($tmpbase ne $config{BASE_DIR}) { $config{CONFIG_DIR} = resolve_directory($config{BASE_DIR}."/conf"); # Configuration Dir $config{MODULE_DIR} = resolve_directory($config{BASE_DIR}."/modules"); # Modules Directory + $config{DATA_DIR} = resolve_directory($config{BASE_DIR}."/data"); # Data Directory + $config{LOG_DIR} = resolve_directory($config{BASE_DIR}."/logs"); # Log Directory $config{BINARY_DIR} = resolve_directory($config{BASE_DIR}."/bin"); # Binary Directory } dir_check("are the configuration files", "CONFIG_DIR"); dir_check("are the modules to be compiled to", "MODULE_DIR"); dir_check("is the IRCd binary to be placed", "BINARY_DIR"); + dir_check("are variable data files to be located in", "DATA_DIR"); + dir_check("are the logs to be stored in", "LOG_DIR"); dir_check("do you want the build to take place", "BUILD_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?"); @@ -611,8 +644,8 @@ 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\n"; - print "you intend to use OpenSSL, or that GnuTLS is in your path if you intend\nto use GnuTLS.\n\n"; + print "\nCould not detect OpenSSL or GnuTLS. Make sure pkg-config is installed and\n"; + print "is in your path.\n\n"; } yesno('MODUPDATE',"Would you like to check for updates to third-party modules?"); @@ -834,6 +867,11 @@ sub writefiles { chomp(my $incos = `uname -n -s -r`); chomp(my $version = `sh src/version.sh`); chomp(my $revision2 = getrevision()); + my $branch = "InspIRCd-0.0"; + if ($version =~ /^(InspIRCd-[0-9]+\.[0-9]+)\.[0-9]+/) + { + $branch = $1; + } if ($writeheader == 1) { print "Writing \e[1;32minspircd_config.h\e[0m\n"; @@ -847,6 +885,9 @@ sub writefiles { #define CoreExport /**/ #define DllExport /**/ +#define CONFIG_PATH "$config{CONFIG_DIR}" +#define DATA_PATH "$config{DATA_DIR}" +#define LOG_PATH "$config{LOG_DIR}" #define MOD_PATH "$config{MODULE_DIR}" #define SOMAXCONN_S "$config{_SOMAXCONN}" #define ENTRYPOINT int main(int argc, char** argv) @@ -863,13 +904,6 @@ print FILEHANDLE "#define MAXBUF " . ($config{MAXBUF}+2) . "\n"; if ($config{GCCVER} >= 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"; } @@ -918,6 +952,7 @@ print FILEHANDLE "#define MAXBUF " . ($config{MAXBUF}+2) . "\n"; open(FILEHANDLE, ">include/inspircd_version.h.tmp"); print FILEHANDLE <