summaryrefslogtreecommitdiff
path: root/make
diff options
context:
space:
mode:
Diffstat (limited to 'make')
-rw-r--r--make/common.pm91
-rw-r--r--make/configure.pm1
-rw-r--r--make/utilities.pm56
3 files changed, 93 insertions, 55 deletions
diff --git a/make/common.pm b/make/common.pm
new file mode 100644
index 000000000..24ef599ce
--- /dev/null
+++ b/make/common.pm
@@ -0,0 +1,91 @@
+#
+# InspIRCd -- Internet Relay Chat Daemon
+#
+# Copyright (C) 2013-2014 Peter Powell <petpow@saberuk.com>
+#
+# 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.
+#
+# 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+
+
+BEGIN {
+ require 5.8.0;
+}
+
+package make::common;
+
+use strict;
+use warnings FATAL => qw(all);
+
+use Exporter qw(import);
+use File::Spec::Functions qw(rel2abs);
+
+our @EXPORT = qw(get_cpu_count
+ get_version
+ module_installed);
+
+my %version;
+
+sub get_version {
+ return %version if %version;
+
+ # Attempt to retrieve version information from src/version.sh
+ chomp(my $vf = `sh src/version.sh 2>/dev/null`);
+ if ($vf =~ /^InspIRCd-([0-9]+)\.([0-9]+)\.([0-9]+)(?:\+(\w+))?$/) {
+ %version = ( MAJOR => $1, MINOR => $2, PATCH => $3, LABEL => $4 );
+ }
+
+ # Attempt to retrieve missing version information from Git
+ chomp(my $gr = `git describe --tags 2>/dev/null`);
+ if ($gr =~ /^v([0-9]+)\.([0-9]+)\.([0-9]+)(?:-\d+-g(\w+))?$/) {
+ $version{MAJOR} = $1 unless defined $version{MAJOR};
+ $version{MINOR} = $2 unless defined $version{MINOR};
+ $version{PATCH} = $3 unless defined $version{PATCH};
+ $version{LABEL} = $4 if defined $4;
+ }
+
+ # The user is using a stable release which does not have
+ # a label attached.
+ $version{LABEL} = 'release' unless defined $version{LABEL};
+
+ # If any of these fields are missing then the user has deleted the
+ # version file and is not running from Git. Fill in the fields with
+ # dummy data so we don't get into trouble with undef values later.
+ $version{MAJOR} = '0' unless defined $version{MAJOR};
+ $version{MINOR} = '0' unless defined $version{MINOR};
+ $version{PATCH} = '0' unless defined $version{PATCH};
+
+ return %version;
+}
+
+sub module_installed($) {
+ my $module = shift;
+ eval("use $module;");
+ return !$@;
+}
+
+sub get_cpu_count {
+ my $count = 1;
+ if ($^O =~ /bsd/) {
+ $count = `sysctl -n hw.ncpu`;
+ } elsif ($^O eq 'darwin') {
+ $count = `sysctl -n hw.activecpu`;
+ } elsif ($^O eq 'linux') {
+ $count = `getconf _NPROCESSORS_ONLN`;
+ } elsif ($^O eq 'solaris') {
+ $count = `psrinfo -p`;
+ }
+ chomp($count);
+ return $count;
+}
+
+1;
diff --git a/make/configure.pm b/make/configure.pm
index a5cb05c60..8653edaac 100644
--- a/make/configure.pm
+++ b/make/configure.pm
@@ -34,6 +34,7 @@ use Cwd qw(getcwd);
use Exporter qw(import);
use File::Basename qw(basename);
+use make::common;
use make::console;
use make::utilities;
diff --git a/make/utilities.pm b/make/utilities.pm
index 4103e38f3..dc286da5e 100644
--- a/make/utilities.pm
+++ b/make/utilities.pm
@@ -35,63 +35,9 @@ use File::Path;
use Getopt::Long;
use POSIX;
-our @EXPORT = qw(get_version module_installed get_cpu_count make_rpath pkgconfig_get_include_dirs pkgconfig_get_lib_dirs pkgconfig_check_version translate_functions promptstring);
+our @EXPORT = qw(make_rpath pkgconfig_get_include_dirs pkgconfig_get_lib_dirs pkgconfig_check_version translate_functions promptstring);
my %already_added = ();
-my %version = ();
-
-sub get_version {
- return %version if %version;
-
- # Attempt to retrieve version information from src/version.sh
- chomp(my $vf = `sh src/version.sh 2>/dev/null`);
- if ($vf =~ /^InspIRCd-([0-9]+)\.([0-9]+)\.([0-9]+)(?:\+(\w+))?$/) {
- %version = ( MAJOR => $1, MINOR => $2, PATCH => $3, LABEL => $4 );
- }
-
- # Attempt to retrieve missing version information from Git
- chomp(my $gr = `git describe --tags 2>/dev/null`);
- if ($gr =~ /^v([0-9]+)\.([0-9]+)\.([0-9]+)(?:-\d+-(\w+))?$/) {
- $version{MAJOR} = $1 unless defined $version{MAJOR};
- $version{MINOR} = $2 unless defined $version{MINOR};
- $version{PATCH} = $3 unless defined $version{PATCH};
- $version{LABEL} = $4 if defined $4;
- }
-
- # The user is using a stable release which does not have
- # a label attached.
- $version{LABEL} = 'release' unless defined $version{LABEL};
-
- # If any of these fields are missing then the user has deleted the
- # version file and is not running from Git. Fill in the fields with
- # dummy data so we don't get into trouble with undef values later.
- $version{MAJOR} = '0' unless defined $version{MAJOR};
- $version{MINOR} = '0' unless defined $version{MINOR};
- $version{PATCH} = '0' unless defined $version{PATCH};
-
- return %version;
-}
-
-sub module_installed($) {
- my $module = shift;
- eval("use $module;");
- return !$@;
-}
-
-sub get_cpu_count {
- my $count = 1;
- if ($^O =~ /bsd/) {
- $count = `sysctl -n hw.ncpu`;
- } elsif ($^O eq 'darwin') {
- $count = `sysctl -n hw.activecpu`;
- } elsif ($^O eq 'linux') {
- $count = `getconf _NPROCESSORS_ONLN`;
- } elsif ($^O eq 'solaris') {
- $count = `psrinfo -p`;
- }
- chomp($count);
- return $count;
-}
sub promptstring($$$$$)
{