summaryrefslogtreecommitdiffstats
path: root/RPM4/Makefile.PL
diff options
context:
space:
mode:
Diffstat (limited to 'RPM4/Makefile.PL')
-rw-r--r--RPM4/Makefile.PL35
1 files changed, 28 insertions, 7 deletions
diff --git a/RPM4/Makefile.PL b/RPM4/Makefile.PL
index 82a0877..d9d4037 100644
--- a/RPM4/Makefile.PL
+++ b/RPM4/Makefile.PL
@@ -2,19 +2,40 @@
# use 5.008;
use ExtUtils::MakeMaker;
+use ExtUtils::PkgConfig;
use Getopt::Long;
-our %CONFIGURE_REQUIRES => (
+# minimum required version of dependencies we need to build
+our %build_reqs = (
+ 'rpm' => '4.9.0',
+);
+our %CONFIGURE_REQUIRES = (
'ExtUtils::MakeMaker' => '6.64',
+ 'ExtUtils::Depends' => '0',
+ 'ExtUtils::PkgConfig' => '0',
'Getopt::Long' => '0',
);
-#- require at least rpm 4.9
-my $rpm_version = `LC_ALL=C rpm --version` =~ /version ([0-9.]+)(?:-(?:beta|rc).*)?$/ ? version->new("v$1") : ();
-$rpm_version ge 4.9.0
- or die <<BARF;
-Unable to build RPM4 with too old (or undetected) rpm version $rpm_version
-BARF
+# Writing a fake Makefile ensures that CPAN will pick up the correct
+# dependencies and install them.
+unless (eval "use ExtUtils::Depends '$CONFIGURE_REQUIRES{'ExtUtils::Depends'}';"
+ . "use ExtUtils::PkgConfig '$CONFIGURE_REQUIRES{'ExtUtils::PkgConfig'}';"
+ . "1") {
+ warn "$@\n";
+ WriteMakefile(
+ NAME => 'URPM',
+ PREREQ_FATAL => 1,
+ PREREQ_PM => \%CONFIGURE_REQUIRES,
+ );
+ exit 1; # not reached
+}
+
+my %cfg;
+unless (eval { %cfg = ExtUtils::PkgConfig->find("rpm >= $build_reqs{rpm}"); 1 })
+{
+ warn $@;
+ exit 0;
+}
sub MY::postamble() {
<<MAKECHANGELOG;