use alienfile;
unless($^O =~ /^(linux|darwin)$/)
{
print "This Alien only works on Linux (supported by NewRelic) and macOS (not supported by NewRelic)";
exit;
}
probe sub { 'share' };
share {
requires 'Alien::libpcre';
my $version = '1.3.0';
start_url "https://github.com/newrelic/c-sdk/archive/v1.3.0.tar.gz";
plugin Download => ();
plugin Extract => 'tar.gz';
my @patch = (
'%{patch} -p1 < %{.install.patch}/notice-error-with-stacktrace.diff',
'%{patch} -p1 < %{.install.patch}/hostname.diff',
# https://github.com/newrelic/c-sdk/pull/25/commits/75852032b5565e7a0c6aa59715c9e52028ce0a93
'%{patch} -p1 < %{.install.patch}/clang-fallthrough.diff',
'%{patch} -p1 < %{.install.patch}/header-guard.diff',
'%{patch} -p1 < %{.install.patch}/realloc-oldptr.diff',
);
push @patch, '%{patch} -p1 < %{.install.patch}/macos.diff' if $^O eq 'darwin';
my $so = $^O eq 'linux' ? 'so' : 'dylib';
patch \@patch;
build [
"make libnewrelic.a libnewrelic.$so",
'mkdir -p %{.install.prefix}/lib %{.install.prefix}/include %{.install.prefix}/dynamic',
'cp -a libnewrelic.a %{.install.prefix}/lib',
"cp -a libnewrelic.$so %{.install.prefix}/dynamic",
'cp -a include/libnewrelic.h %{.install.prefix}/include',
];
gather sub {
my $build = shift;
my $prefix = $build->runtime_prop->{prefix};
$build->runtime_prop->{cflags} = "-I$prefix/include ";
$build->runtime_prop->{cflags_static} = "-I$prefix/include ";
$build->runtime_prop->{libs} = "-L$prefix/lib -lnewrelic ";
$build->runtime_prop->{libs_static} = "-L$prefix/lib -lnewrelic ";
$build->runtime_prop->{version} = $version;
};
}