use Exporter 'import';
use Fcntl;
use File::Path;
+use File::Temp;
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($$$$$)
{
return $output;
}
-sub extend_pkg_path()
-{
- if (!exists $ENV{PKG_CONFIG_PATH})
- {
- $ENV{PKG_CONFIG_PATH} = "/usr/lib/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/libdata/pkgconfig:/usr/X11R6/libdata/pkgconfig";
- }
- else
- {
- $ENV{PKG_CONFIG_PATH} .= ":/usr/local/lib/pkgconfig:/usr/local/libdata/pkgconfig:/usr/X11R6/libdata/pkgconfig";
- }
-}
-
sub pkgconfig_get_include_dirs($$$;$)
{
my ($packagename, $headername, $defaults, $module) = @_;
- extend_pkg_path();
-
print "Locating include directory for package \e[1;32m$packagename\e[0m for module \e[1;32m$module\e[0m... ";
my $v = `pkg-config --modversion $packagename 2>/dev/null`;
{
my ($packagename, $version, $module) = @_;
- extend_pkg_path();
-
print "Checking version of package \e[1;32m$packagename\e[0m is >= \e[1;32m$version\e[0m... ";
my $v = `pkg-config --modversion $packagename 2>/dev/null`;
{
my ($packagename, $libname, $defaults, $module) = @_;
- extend_pkg_path();
-
print "Locating library directory for package \e[1;32m$packagename\e[0m for module \e[1;32m$module\e[0m... ";
my $v = `pkg-config --modversion $packagename 2>/dev/null`;
my $tmpfile;
do
{
- $tmpfile = tmpnam();
+ $tmpfile = File::Temp::tmpnam();
} until sysopen(TF, $tmpfile, O_RDWR|O_CREAT|O_EXCL|O_NOFOLLOW, 0700);
print "(Created and executed \e[1;32m$tmpfile\e[0m)\n";
print TF $1;