Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re^2: cpan module with binary data: when to build? (working)

by thpfft (Chaplain)
on Sep 02, 2004 at 20:45 UTC ( [id://388098]=note: print w/replies, xml ) Need Help??


in reply to Re: cpan module with binary data: when to build?
in thread cpan module with binary data: when to build?

update: lots of whining snipped out here.

Thank you. And Smylers. After quite a lot of headbanging, and with your help, I've got something that seems to work.

I can't use this:

depend => { all => 'example_data' }

because it creates a single-colon rule for 'all' and there is already a double-colon rule for 'all' (and for 'test', and 'install'). The answer is to intercept the double-colon rule and prepend the extra dependency. It's ugly, but it works. The same technique is used in the Template Toolkit (ie I nicked it from there), and if it's good enough for TT...

This is what I've added to the usual Makefile.PL:

package MY; sub postamble { return <<"EOF"; data: \tperl ./useful/makedb.pl EOF } sub test { my $class = shift; my $makefragment = $class->SUPER::test(@_); $makefragment =~ s/^(test ::)/$1 data/m; return $makefragment; } sub install { my $class = shift; my $makefragment = $class->SUPER::install(@_); $makefragment =~ s/^(install ::)/$1 data/m; return $makefragment; }

The 'data' target just invokes an external script, as you can see. Cleaner that way, and easier for people to edit.

Thanks for your help.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://388098]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others surveying the Monastery: (4)
As of 2024-04-25 18:12 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found