Well, this is more than and ordinary shell script - its
a makefile. While I wouldn't want to rewrite a makefile in
perl, you could simplify the genfiles recipe by replacing
the shell script there with a perl script.
The recipe for genfiles basically does this
chdir to src
foreach basename of "*.pdl" files
if( $basname.cxx does not exist ) or
( $basname.pdl is newer than $basename.cxx )
then
execute NOIPGEN on $basename.pdl outputting
stderr and stdout to $OBJDIR/noipgen.err
endif
endfor
if( $OBJDIR/noipgen.err exists )
then
mv the noipgen.err file to noipgen.debug
endif
chdir to src
foreach basename of "*mdl" files
if( $basname.cxx does not exist ) or
( $basnemae.mdl is newer than $basname.cxx)
then
execute NOIMGEN on $basename.mdl outputting
stderr and stdout to $OBJEDIR/noimgen.err
endif
endfor
if( $OBJDIR/noimgen.err exists )
then
mv the noimgen.err file to noimgen.debug
endif
You could easily combine those two things into a perl
script and then change the recipe to be something like
this:
genfiles: setup
@my_script pdl $NOIPGEN $OBJDIR noipgen.err
@my_script mdl $NOIMGEN $OBJDIR noimgen.err
-derby
update but now that I think about it some more that
whole script could be replaced by more generic makefiles
recipes that show target files have a dependancies
on pdl and mdl files. Check out the make book.
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|