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.
This commit is contained in:
Peter Powell 2014-10-01 19:52:29 +01:00
parent 541a66de7a
commit 7404ba8b66
6 changed files with 96 additions and 58 deletions

2
configure vendored
View File

@ -39,9 +39,9 @@ use File::Spec::Functions qw(rel2abs);
use Getopt::Long qw(GetOptions);
use POSIX qw(getgid getuid);
use make::common;
use make::configure;
use make::console;
use make::utilities;
my ($opt_binary_dir,
$opt_config_dir,

91
make/common.pm Normal file
View File

@ -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;

View File

@ -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;

View File

@ -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($$$$$)
{

View File

@ -22,7 +22,7 @@
use strict;
use warnings FATAL => qw(all);
use make::utilities;
use make::common;
BEGIN {
unless (module_installed("LWP::Simple")) {

View File

@ -29,8 +29,8 @@ BEGIN {
use strict;
use warnings FATAL => qw(all);
use make::common;
use make::configure;
use make::utilities;
$ENV{D} = $ENV{V} = 1;