summaryrefslogtreecommitdiff
path: root/make
diff options
context:
space:
mode:
authorPeter Powell <petpow@saberuk.com>2014-10-01 19:52:29 +0100
committerPeter Powell <petpow@saberuk.com>2014-12-07 22:36:43 +0000
commit7404ba8b66083c2fbb19c638da85c252551792a2 (patch)
tree622b5f0fd7fdf60885fd2d82b99795b101f55750 /make
parent541a66de7adbfe57dd4d3e998e8cc0db5585a266 (diff)
Move common code to make::common from make::utilities.
The other code in that file will be removed very soon so it has been left alone to avoid merge conflicts. This will help prevent insp20 merge conflicts in the future.
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($$$$$)
{