]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - configure
CoreExport for CommandSave. fixes #1635
[user/henk/code/inspircd.git] / configure
index 269d1927f3a91f79e25cbf0dcfc5e50ec836c0da..5ab87f528090d685931f1351d262b3186987970b 100755 (executable)
--- a/configure
+++ b/configure
@@ -52,6 +52,7 @@ my ($opt_binary_dir,
     $opt_config_dir,
     $opt_data_dir,
     $opt_development,
+    $opt_disable_auto_extras,
     $opt_disable_interactive,
     $opt_distribution_label,
     $opt_gid,
@@ -73,17 +74,18 @@ sub disable_extras (@);
 my @opt_enableextras;
 my @opt_disableextras;
 
-GetOptions(
+exit 1 unless GetOptions(
        'clean'  => \&cmd_clean,
        'help'   => \&cmd_help,
        'update' => \&cmd_update,
 
-       'development'          => \$opt_development,
-       'disable-interactive'  => \$opt_disable_interactive,
-       'distribution-label=s' => \$opt_distribution_label,
        'binary-dir=s'         => \$opt_binary_dir,
        'config-dir=s'         => \$opt_config_dir,
        'data-dir=s'           => \$opt_data_dir,
+       'development'          => \$opt_development,
+       'disable-auto-extras'  => \$opt_disable_auto_extras,
+       'disable-interactive'  => \$opt_disable_interactive,
+       'distribution-label=s' => \$opt_distribution_label,
        'gid=s'                => \$opt_gid,
        'log-dir=s'            => \$opt_log_dir,
        'manual-dir=s'         => \$opt_manual_dir,
@@ -117,6 +119,7 @@ our $interactive = !(
        defined $opt_config_dir ||
        defined $opt_data_dir ||
        defined $opt_development ||
+       defined $opt_disable_auto_extras ||
        defined $opt_disable_interactive ||
        defined $opt_distribution_label ||
        defined $opt_gid ||
@@ -184,7 +187,7 @@ if (defined $opt_system) {
        $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_module_dir // '/var/log/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'
@@ -260,6 +263,15 @@ configured on the Hardware Node. Failure to do so may result in clock drifting!
 EOW
 }
 
+# Warn the user about OpenBSD shipping incredibly broken compilers/linkers.
+if ($^O eq 'openbsd') {
+       print_warning <<'EOW';
+You are building InspIRCd on OpenBSD. The C++ compilers and linkers
+that OpenBSD ship are incredibly broken. You may have strange linker errors
+and crashes. Please consider using a different OS like FreeBSD/NetBSD instead.
+EOW
+}
+
 # Check that the user actually wants this version.
 if (defined $version{REAL_LABEL}) {
        print_warning <<'EOW';
@@ -321,7 +333,7 @@ if (prompt_bool $interactive, $question, 0) {
                        enable_extras "$module_name.cpp";
                }
        }
-} else {
+} elsif (!defined $opt_disable_auto_extras) {
        # TODO: finish modulemanager rewrite and replace this code with:
        # system './modulemanager', 'enable', '--auto';
        my %modules = (