From 66504834514cdf96f5a366864982f0d2a0267ea2 Mon Sep 17 00:00:00 2001 From: Thierry Vignaud Date: Sun, 29 Oct 2017 17:12:03 +0100 Subject: use ExtUtils::PkgConfig in order to find rpm We need to include {cflags} even if empty on Linux as it contains -I/usr/local/include on eg: FreeBSD --- RPM4/Makefile.PL | 35 ++++++++++++++++++++++++++++------- RPM4/NEWS | 1 + RPM4/src/Makefile.PL | 8 +++++--- 3 files changed, 34 insertions(+), 10 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 < '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() { <find("rpm"); +$rpmv ||= $cfg{modversion}; open(my $FH, "> rpmversion.h") or die "Can't open rpmversion.h"; print $FH "/* File generated by Mafile.PL\n"; print $FH ' * $Id$' . "\n"; @@ -86,7 +88,7 @@ WriteMakefile( VERSION_FROM => '../lib/RPM4.pm', OBJECT => "RPM4.o $obj", INC => "-I$rpmheaderlocation", - LIBS => "-lrpmsign -lrpm -lrpmio -lrpmbuild -lpopt -lz -lbz2 $ldd", - 'CCFLAGS' => "-Wall $fl", + LIBS => [ $cfg{libs} . " -lrpmsign -lrpmbuild $ldd" ], + CCFLAGS => "$cfg{cflags} -Wall $fl", depend => { "RPM4.xs" => join(" ", @rpmconstantfiles) }, ); -- cgit v1.2.1