X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=configure;h=2fb332b59ed5951a777fdf495960f5ff238b5277;hb=bec70fca51a6094380f890f1d5b89cf9c6ab46bd;hp=63da8d6cdb3320d8934556c6b09e24b32a03683a;hpb=cf35e6731855212abdc71bdb75f1dde8e4f9fe47;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/configure b/configure index 63da8d6cd..2fb332b59 100755 --- a/configure +++ b/configure @@ -1,17 +1,18 @@ #!/usr/bin/env perl - # # InspIRCd -- Internet Relay Chat Daemon # -# Copyright (C) 2012-2017 Peter Powell -# 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) 2019 Matt Schatz +# Copyright (C) 2019 Anatole Denis +# Copyright (C) 2017 emerson +# Copyright (C) 2013-2020 Sadie Powell +# Copyright (C) 2012, 2019 Robby +# Copyright (C) 2012 ChrisTX +# Copyright (C) 2010 Daniel De Graaf # Copyright (C) 2008 Thomas Stagner -# Copyright (C) 2007 John Brooks -# Copyright (C) 2006 Oliver Lupton -# Copyright (C) 2003-2006 Craig McLure +# Copyright (C) 2008 Robin Burchell +# Copyright (C) 2007 Dennis Friis +# Copyright (C) 2006-2008 Craig Edwards # # 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 @@ -55,6 +56,7 @@ my ($opt_binary_dir, $opt_disable_auto_extras, $opt_disable_interactive, $opt_distribution_label, + $opt_example_dir, $opt_gid, $opt_log_dir, $opt_manual_dir, @@ -86,6 +88,7 @@ exit 1 unless GetOptions( 'disable-auto-extras' => \$opt_disable_auto_extras, 'disable-interactive' => \$opt_disable_interactive, 'distribution-label=s' => \$opt_distribution_label, + 'example-dir=s' => \$opt_example_dir, 'gid=s' => \$opt_gid, 'log-dir=s' => \$opt_log_dir, 'manual-dir=s' => \$opt_manual_dir, @@ -103,8 +106,8 @@ exit 1 unless GetOptions( ); if (scalar(@opt_enableextras) + scalar(@opt_disableextras) > 0) { - @opt_enableextras = split /,/, join(',', @opt_enableextras); - @opt_disableextras = split /,/, join(',', @opt_disableextras); + @opt_enableextras = split /[, ]+/, join(',', @opt_enableextras); + @opt_disableextras = split /[, ]+/, join(',', @opt_disableextras); enable_extras(@opt_enableextras); disable_extras(@opt_disableextras); list_extras; @@ -122,6 +125,7 @@ our $interactive = !( defined $opt_disable_auto_extras || defined $opt_disable_interactive || defined $opt_distribution_label || + defined $opt_example_dir || defined $opt_gid || defined $opt_log_dir || defined $opt_manual_dir || @@ -183,23 +187,25 @@ if (defined $opt_socketengine) { $config{SOCKETENGINE} = $opt_socketengine // $socketengines[0]; if (defined $opt_system) { - $config{BASE_DIR} = $opt_prefix // '/var/lib/inspircd'; - $config{BINARY_DIR} = $opt_binary_dir // '/usr/sbin'; - $config{CONFIG_DIR} = $opt_config_dir // '/etc/inspircd'; - $config{DATA_DIR} = $opt_data_dir // '/var/inspircd'; - $config{LOG_DIR} = $opt_log_dir // '/var/log/inspircd'; - $config{MANUAL_DIR} = $opt_manual_dir // '/usr/share/man/man1'; - $config{MODULE_DIR} = $opt_module_dir // '/usr/lib/inspircd'; - $config{SCRIPT_DIR} = $opt_script_dir // '/usr/share/inspircd' + $config{BASE_DIR} = $opt_prefix // '/var/lib/inspircd'; + $config{BINARY_DIR} = $opt_binary_dir // '/usr/sbin'; + $config{CONFIG_DIR} = $opt_config_dir // '/etc/inspircd'; + $config{DATA_DIR} = $opt_data_dir // '/var/inspircd'; + $config{EXAMPLE_DIR} = $opt_example_dir // '/usr/share/doc/inspircd'; + $config{LOG_DIR} = $opt_log_dir // '/var/log/inspircd'; + $config{MANUAL_DIR} = $opt_manual_dir // '/usr/share/man/man1'; + $config{MODULE_DIR} = $opt_module_dir // '/usr/lib/inspircd'; + $config{SCRIPT_DIR} = $opt_script_dir // '/usr/share/inspircd' } else { - $config{BASE_DIR} = $opt_prefix // $config{BASE_DIR} // rel2abs 'run'; - $config{BINARY_DIR} = $opt_binary_dir // $config{BINARY_DIR} // rel2abs $config{BASE_DIR} . '/bin'; - $config{CONFIG_DIR} = $opt_config_dir // $config{CONFIG_DIR} // rel2abs $config{BASE_DIR} . '/conf'; - $config{DATA_DIR} = $opt_data_dir // $config{DATA_DIR} // rel2abs $config{BASE_DIR} . '/data'; - $config{LOG_DIR} = $opt_log_dir // $config{LOG_DIR} // rel2abs $config{BASE_DIR} . '/logs'; - $config{MANUAL_DIR} = $opt_manual_dir // $config{MANUAL_DIR} // rel2abs $config{BASE_DIR} . '/manuals'; - $config{MODULE_DIR} = $opt_module_dir // $config{MODULE_DIR} // rel2abs $config{BASE_DIR} . '/modules'; - $config{SCRIPT_DIR} = $opt_script_dir // $config{SCRIPT_DIR} // $config{BASE_DIR}; + $config{BASE_DIR} = $opt_prefix // $config{BASE_DIR} // rel2abs 'run'; + $config{BINARY_DIR} = $opt_binary_dir // $config{BINARY_DIR} // rel2abs $config{BASE_DIR} . '/bin'; + $config{CONFIG_DIR} = $opt_config_dir // $config{CONFIG_DIR} // rel2abs $config{BASE_DIR} . '/conf'; + $config{DATA_DIR} = $opt_data_dir // $config{DATA_DIR} // rel2abs $config{BASE_DIR} . '/data'; + $config{EXAMPLE_DIR} = $opt_example_dir // $config{EXAMPLE_DIR} // $config{CONFIG_DIR} . '/examples'; + $config{LOG_DIR} = $opt_log_dir // $config{LOG_DIR} // rel2abs $config{BASE_DIR} . '/logs'; + $config{MANUAL_DIR} = $opt_manual_dir // $config{MANUAL_DIR} // rel2abs $config{BASE_DIR} . '/manuals'; + $config{MODULE_DIR} = $opt_module_dir // $config{MODULE_DIR} // rel2abs $config{BASE_DIR} . '/modules'; + $config{SCRIPT_DIR} = $opt_script_dir // $config{SCRIPT_DIR} // $config{BASE_DIR}; } # Parse --gid=123 or --gid=foo and extract the group id. @@ -220,6 +226,7 @@ unprivileged user/group to build and run as or pass the '--gid [id|name]' flag to specify an unprivileged group to run as. EOW if (!prompt_bool $interactive, "Are you sure you want to build as the $group[0] group?", 0) { + # PACKAGERS: You do not need to delete this check. Use `--gid $(id -g)` or `--gid 0` instead. say STDERR "If you are sure you want to build as the $group[0] group pass the --gid $group[2] flag." unless $interactive; exit 1; } @@ -246,6 +253,7 @@ unprivileged user/group to build and run as or pass the '--uid [id|name]' flag to specify an unprivileged user to run as. EOW if (!prompt_bool $interactive, "Are you sure you want to build as the $user[0] user?", 0) { + # PACKAGERS: You do not need to delete this check. Use `--uid $(id -u)` or `--uid 0` instead. say STDERR "If you are sure you want to build as the $user[0] user pass the --uid $user[2] flag." unless $interactive; exit 1; } @@ -318,6 +326,7 @@ if (prompt_bool $interactive, $question, 0) { $config{MANUAL_DIR} = prompt_dir $interactive, 'In what directory are manual pages to be placed?', $config{MANUAL_DIR}; $config{MODULE_DIR} = prompt_dir $interactive, 'In what directory are modules to be placed?', $config{MODULE_DIR}; $config{SCRIPT_DIR} = prompt_dir $interactive, 'In what directory are scripts to be placed?', $config{SCRIPT_DIR}; + $config{EXAMPLE_DIR} = $config{CONFIG_DIR} . '/examples'; } # Configure module settings. @@ -410,20 +419,21 @@ for my $file () { print_format <<"EOM"; <|GREEN Paths:|> - <|GREEN Base:|> $config{BASE_DIR} - <|GREEN Binary:|> $config{BINARY_DIR} - <|GREEN Config:|> $config{CONFIG_DIR} - <|GREEN Data:|> $config{DATA_DIR} - <|GREEN Log:|> $config{LOG_DIR} - <|GREEN Manual:|> $config{MANUAL_DIR} - <|GREEN Module:|> $config{MODULE_DIR} - <|GREEN Script:|> $config{SCRIPT_DIR} + <|GREEN Base:|> $config{BASE_DIR} + <|GREEN Binary:|> $config{BINARY_DIR} + <|GREEN Config:|> $config{CONFIG_DIR} + <|GREEN Data:|> $config{DATA_DIR} + <|GREEN Example:|> $config{EXAMPLE_DIR} + <|GREEN Log:|> $config{LOG_DIR} + <|GREEN Manual:|> $config{MANUAL_DIR} + <|GREEN Module:|> $config{MODULE_DIR} + <|GREEN Script:|> $config{SCRIPT_DIR} <|GREEN Execution Group:|> $config{GROUP} ($config{GID}) <|GREEN Execution User:|> $config{USER} ($config{UID}) <|GREEN Socket Engine:|> $config{SOCKETENGINE} -To build with these settings run '<|GREEN make -j${\get_cpu_count} install|>' now. +To build with these settings run '<|GREEN make -j${\(get_cpu_count() + 1)} install|>' now. EOM @@ -526,6 +536,8 @@ EXTRA: for my $extra (@extras) { sub enable_extras (@) { my (@extras) = @_; for my $extra (@extras) { + $extra = "m_$extra" unless $extra =~ /^m_/; + $extra = "$extra.cpp" unless $extra =~ /\.cpp$/; my $extrapath = "src/modules/extra/$extra"; if (!-e $extrapath) { print STDERR "Cannot enable \e[32;1m$extra\e[0m : No such file or directory in src/modules/extra\n"; @@ -561,6 +573,8 @@ sub disable_extras (@) closedir $dd; my (@extras) = @_; EXTRA: for my $extra (@extras) { + $extra = "m_$extra" unless $extra =~ /^m_/; + $extra = "$extra.cpp" unless $extra =~ /\.cpp$/; my $extrapath = "src/modules/extra/$extra"; my $source = "src/modules/$extra"; if (!-e $extrapath) {