Michael G Schwern:
# On Wed, Dec 12, 2001 at 01:58:49PM -0500, Dan Sugalski wrote:
# > At 08:54 PM 12/12/2001 +0200, Jaen Saul wrote:
# > >Well, another small post again :)
# > >As you see, -C doesn't do anything useful on NMAKE. So
# Win32 is still
# > >broken. The -C way doesn't work.
# >
# > VMS is broken this way too, as is anything without GNU
# make. We'll get your
# > patches integrated in soon, and a longer-term solution
# (i.e. a perl make)
# > should be ready not too long after that.
#
# Anyone insane enough to try this?
# http://www.cpan.org/modules/by-module/Make/Make-1.00.tar.gz
I use it whenever nmake is being bitchy and there's no Makefile in dmake
format. Usually works pretty well, except for that extra output:
C:\Documents and Settings\Administrator\Desktop>pmake
Reading C:/Perl/site/lib/Make.pm
Reading C:\Documents and Settings\Administrator\Desktop\makefile
echo yup
yup
However, what I think would be really ideal would be something more
like:
target foo.$o depends(bar.$o, baz.c) {
print "yup";
}
In other words, a Perl solution. It would probably have some built-in
functions like:
cc_o(@infiles, $outfile)
cc_so(@infiles, $outfile)
cc_exec(@infiles, $outfile)
runprog($progname, @args) #in case we're building on VMS or something
Thinking about it, this could be implemented as a source filter.
target("foo.$o", sub {print "yup"}, depends => ["bar.$o", "baz.c"]);
#other targets here
do_the_make_stuff();
A P::RD grammar would probably handle that quite nicely...hmm...
target:
'target' file parameters block
{ qq{target("$item{file}", sub $item{block}, $item{parameters}) } }
block:
<perl_codeblock>
parameters:
parameter(s? / /)
parameter:
paramname '(' filelist ')'
{ qq{'$item{paramname}' => $item{filelist} } }
#etcetera
--Brent Dax
[EMAIL PROTECTED]
Configure pumpking for Perl 6
"Nothing important happened today."
--George III of England's diary entry for 4-Jul-1776