Re: [A-a-p-user] target and source suffixes
Brought to you by:
vimboss
From: Bram M. <Br...@mo...> - 2003-02-25 16:51:05
|
Matthew Weier O'Phinney wrote: > Must target and source suffixes be different in order for a compile > action to occur? > > For instance, the following rule doesn't result in a compile, even when > the source changes (: > > SRCFILES = `glob(*.html)` > HTMFILES = > @for fname in SRCFILES.split() > @ htmname = os.path.basename(fname) > HTMFILES += $BDIR/$htmname { publish = $PUBLISH/$htmname } > > :rule %.html : %.html > :sys $COMPILER -d $SERVER -f $source > $target > > Whereas this does: > > SRCFILES = `glob(*.htm)` > HTMFILES = > @for fname in SRCFILES.split() > @ htmname = aap_sufreplace('htm', 'html', os.path.basename(fname)) > HTMFILES += $BDIR/$htmname { publish = $PUBLISH/$htmname } > > :rule %.html : %.htm > :sys $COMPILER -d $SERVER -f $source > $target > > Why is this? The rule that a .html file depends on a .html file doesn't work. It would get into a deadlock. Therefore a dependency of a file on itself is ignored. If the files are in different directories you should add (part of) the path to the rule. For example: :rule %.html : source/%.html :sys $COMPILER -d $SERVER -f $source > $target This depends on the length of the matched pattern, thus it is a bit tricky. Since you are using a "for" loop anyway, you might as well specify the dependencies explicitly: SRCFILES = `glob(*.html)` HTMFILES = @for fname in SRCFILES.split() @ htmname = os.path.basename(fname) tname = $BDIR/$htmname HTMFILES += $tname { publish = $PUBLISH/$htmname } $tname : $fname :sys $COMPILER -d $SERVER -f $source > $target -- Two cows are standing together in a field. One asks the other: "So what do you think about this Mad Cow Diesease?" The other replies: "That doesn't concern me. I'm a helicopter." /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// Creator of Vim - Vi IMproved -- http://www.Vim.org \\\ \\\ Project leader for A-A-P -- http://www.A-A-P.org /// \\\ Help AIDS victims, buy at Amazon -- http://ICCF.nl/click1.html /// |