X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=make%2Fconfigure.pm;h=1ce5a1c1e24a942c6de774cd400d4c62f3c30f49;hb=44489ddf7e90413d8f656aea24d74445bab227af;hp=48bd8db3842a445d352f79a7236f240261a11c74;hpb=5c1ee05dd5b08b4cb34f4d11c05e468510a856de;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/make/configure.pm b/make/configure.pm index 48bd8db38..1ce5a1c1e 100644 --- a/make/configure.pm +++ b/make/configure.pm @@ -1,10 +1,9 @@ # # InspIRCd -- Internet Relay Chat Daemon # -# Copyright (C) 2012-2017 Peter Powell -# Copyright (C) 2008 Robin Burchell -# Copyright (C) 2007-2008 Craig Edwards -# Copyright (C) 2008 Thomas Stagner +# Copyright (C) 2013-2019 Sadie Powell +# Copyright (C) 2012 Robby +# Copyright (C) 2007-2008 Craig Edwards # Copyright (C) 2007 Dennis Friis # # This file is part of InspIRCd. InspIRCd is free software: you can @@ -34,12 +33,13 @@ use warnings FATAL => qw(all); use Cwd qw(getcwd); use Exporter qw(import); use File::Basename qw(basename dirname); -use File::Spec::Functions qw(catfile); +use File::Spec::Functions qw(catdir catfile); use make::common; use make::console; -use constant CONFIGURE_DIRECTORY => '.configure'; +use constant CONFIGURE_ROOT => dirname dirname __FILE__; +use constant CONFIGURE_DIRECTORY => catdir(CONFIGURE_ROOT, '.configure'); use constant CONFIGURE_CACHE_FILE => catfile(CONFIGURE_DIRECTORY, 'cache.cfg'); use constant CONFIGURE_CACHE_VERSION => '1'; use constant CONFIGURE_ERROR_PIPE => $ENV{INSPIRCD_VERBOSE} ? '' : '1>/dev/null 2>/dev/null'; @@ -90,7 +90,6 @@ sub __get_template_settings($$$) { $settings{CONFIGURE_DIRECTORY} = CONFIGURE_DIRECTORY; $settings{CONFIGURE_CACHE_FILE} = CONFIGURE_CACHE_FILE; $settings{SYSTEM_NAME} = lc $^O; - chomp($settings{SYSTEM_NAME_VERSION} = `uname -sr 2>/dev/null`); return %settings; } @@ -132,6 +131,9 @@ PATH OPTIONS --data-dir=[dir] The location where the data files, such as the pid file, are stored. [$PWD/run/data] + --example-dir=[dir] The location where the example configuration files + and SQL schemas are stored. + [$PWD/run/conf/examples] --log-dir=[dir] The location where the log files are stored. [$PWD/run/logs] --manual-dir=[dir] The location where the manual files are stored. @@ -139,6 +141,9 @@ PATH OPTIONS --module-dir=[dir] The location where the loadable modules are stored. [$PWD/run/modules] + --script-dir=[dir] The location where the scripts, such as the + init scripts, are stored. + [$PWD/run] EXTRA MODULE OPTIONS @@ -151,6 +156,8 @@ MISC OPTIONS --clean Remove the configuration cache file and start the interactive configuration wizard. + --disable-auto-extras Disables automatically enabling extra modules + for which the dependencies are available. --disable-interactive Disables the interactive configuration wizard. --distribution-label=[text] Sets a distribution specific version label in the build configuration. @@ -199,7 +206,7 @@ sub test_file($$;$) { my ($compiler, $file, $args) = @_; my $status = 0; $args //= ''; - $status ||= system "$compiler -o __test_$file make/test/$file $args ${\CONFIGURE_ERROR_PIPE}"; + $status ||= system "$compiler -o __test_$file ${\CONFIGURE_ROOT}/make/test/$file $args ${\CONFIGURE_ERROR_PIPE}"; $status ||= system "./__test_$file ${\CONFIGURE_ERROR_PIPE}"; unlink "./__test_$file"; return !$status; @@ -208,9 +215,9 @@ sub test_file($$;$) { sub test_header($$;$) { my ($compiler, $header, $args) = @_; $args //= ''; - open(COMPILER, "| $compiler -E - $args ${\CONFIGURE_ERROR_PIPE}") or return 0; - print COMPILER "#include <$header>"; - close(COMPILER); + open(my $fh, "| $compiler -E - $args ${\CONFIGURE_ERROR_PIPE}") or return 0; + print $fh "#include <$header>"; + close $fh; return !$?; } @@ -228,7 +235,7 @@ sub write_configure_cache(%) { sub get_compiler_info($) { my $binary = shift; my %info = (NAME => 'Unknown', VERSION => '0.0'); - return %info if system "$binary -o __compiler_info make/test/compiler_info.cpp ${\CONFIGURE_ERROR_PIPE}"; + return %info if system "$binary -o __compiler_info ${\CONFIGURE_ROOT}/make/test/compiler_info.cpp ${\CONFIGURE_ERROR_PIPE}"; open(my $fh, '-|', './__compiler_info 2>/dev/null'); while (my $line = <$fh>) { $info{$1} = $2 if $line =~ /^([A-Z]+)\s(.+)$/; @@ -257,11 +264,11 @@ sub parse_templates($$$) { # Iterate through files in make/template. foreach () { print_format "Parsing <|GREEN $_|> ...\n"; - open(TEMPLATE, $_) or print_error "unable to read $_: $!"; - my (@lines, $mode, @platforms, %targets); + open(my $fh, $_) or print_error "unable to read $_: $!"; + my (@lines, $mode, @platforms, @targets); # First pass: parse template variables and directives. - while (my $line =