klp2 / make Goto Github PK
View Code? Open in Web Editor NEWperl module for processing makefiles
perl module for processing makefiles
Would you like to transfer the repository over to me? I've already requested of the PAUSE Gods to be granted PAUSE permissions, I'd just prefer to keep the repo unitary rather than forking it.
This is because exp_depend
naively splits on /\s+/
the results of subsvar
, which returns a single string. Directories with spaces in are in the EUMM-generated Makefile, which is what the test uses. Instead subsvar
needs to return a list, having done splitting itself, and both it and exp_depend
do a -e
on each item. If it does exist, don't split it. GNU make gets this right.
Your distribution (KLPTWO/Make-1.1.4.tar.gz) contains files MYMETA.json/MYMETA.yml. These files must not be included into distribution - they are generated when installing.
See http://weblog.bulknews.net/post/44251476706/stop-shipping-mymeta-to-cpan
P.S. If this report is for an old version, please delete old indexed versions mentioned here: http://cpanold.chorny.net/?a=KLPTWO and contact me.
P.P.S. This report was generated automatically.
The documentation in the readme on Github, contains the following commands to build, test and install.
perl Makefile.PL
perl -I. pure-perl-make
perl -Mblib pure-perl-make test
perl -Mblib pure-perl-make install
The do not work with the current directory structure. I'm guessing there was a change somewhere and this POD was not updated.
I found the following commands worked for me:
perl Makefile.PL
perl -Ilib ./scripts/pure-perl-make
perl -Mblib ./scripts/pure-perl-make test
perl -Mblib ./scripts/pure-perl-make install
I sought this out because I was trying to install a few pure perl packages on my Synology NAS using the perl 5.28 available for it. Synology does not ship with a version of make. As such, I needed a way to get a "make" to be used to install other packages. This worked quite nicely for me once I made the changes above and then created a link from pure-perl-make to make. I installed App::cpm from the self-contained package on its Github site and then issued cpm install -gv App::cpm
to have it perform a full install to my local::lib
. Afterwards, I installed YAML:PP and JSON::PP.
Thank you for the package.
LBE
pmake
is the name of the FreeBSD make (although it is invoked there as just make
). On Debian the BSD make is invoked as pmake
which conflicts with the script that comes with this distribution. There should be an option when installing to not install the pure perl pmake or to install it under a different name. I would even argue that it might be better to use a completely different name.
I wrote about this in graphviz-perl/Graph#17 too. Basically, this has turned into a heavyweight module now.
Looking at the code quickly, it looks that there's only a limited use for Graph. Maybe it can be lazily loaded if it's available rather than requiring the module.
But, since the use here is very simple, maybe it should be internal to the module.
Original: https://rt.cpan.org/Ticket/Display.html?id=5716
Hi Nick,
On my windows machine i'm a user of your very useful
pmake. On otherplateform, with other make avartar, it
seems to me that when you put parameters on the command
line, these parameters are automatically defined
as environment variables. So the following minor
modification of the apply() method. That's satisfied my
own needs, but i ignore if this modification is really
right.Regards
Philippe
sub apply
{
my $self = shift;
my $method = shift;
$self->NextPass;
my @targets = ();
# print STDERR join(' ',Apply => $method,@_),"\n";
foreach (@_)
{
if (/^(\w+)=(.*)$/)
{
#print STDERR "OVERRIDE: $1 = $2\n";
$self->{Override}{$1} = $2;
# PHV
$ENV{$1} = $2;
# PHV
}
else
{
push(@targets,$_);
}
}
#
# This expansion is dubious as it alters the database
# as a function of current values of Override.
#
$self->ExpandTarget; # Process $(VAR) :
@targets = ($self->{'Targets'}[0])->Name unless (@targets);
# print STDERR join(' ',Targets => $method,map($_->Name,@targets)),"\n";
foreach (@targets)
{
my $t = $self->{Depend}{$_};
unless (defined $t)
{
print STDERR join(' ',$method,@_),"\n";
die "Cannot `$method' - no target $_"
}
$t->$method();
}
}
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.