From 7404ba8b66083c2fbb19c638da85c252551792a2 Mon Sep 17 00:00:00 2001 From: Peter Powell Date: Wed, 1 Oct 2014 19:52:29 +0100 Subject: [PATCH] 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. --- configure | 2 +- make/common.pm | 91 +++++++++++++++++++++++++++++++++++++++++++++++ make/configure.pm | 1 + make/utilities.pm | 56 +---------------------------- modulemanager | 2 +- tools/test-build | 2 +- 6 files changed, 96 insertions(+), 58 deletions(-) create mode 100644 make/common.pm diff --git a/configure b/configure index 2a1d260f5..c4f0dffc7 100755 --- a/configure +++ b/configure @@ -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, 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 +# +# 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 . +# + + +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($$$$$) { diff --git a/modulemanager b/modulemanager index 86f9ca0c4..ee281d7fa 100755 --- a/modulemanager +++ b/modulemanager @@ -22,7 +22,7 @@ use strict; use warnings FATAL => qw(all); -use make::utilities; +use make::common; BEGIN { unless (module_installed("LWP::Simple")) { diff --git a/tools/test-build b/tools/test-build index 7f1bf68cd..85d63ccbe 100755 --- a/tools/test-build +++ b/tools/test-build @@ -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; -- 2.39.2