I am having a problem with a pattern rule with gmake.  To generate the
problem, a file called xxx (any file is fine) is needed in the same
directory as the make file and the directories bin and bin2 do not exist. 

I am using gmake version:
>$ gmake -v
GNU Make version 3.79.1, by Richard Stallman and Roland McGrath.
Built for i386-redhat-linux-gnu

Here is the make file:

============================================================
install : bin2 bin2/xxx bin bin/xxx ;

bin : 
        mkdir bin

bin2 : 
        mkdir bin2

bin2/xxx : xxx
        cp $< $@

#bin/xxx : bin2/xxx
#       cp $< $@

bin/% : bin2/%
        cp $< $@

=====================================================================

When I run 'gmake install' I get the following error:

>$ gmake install
mkdir bin2
cp xxx bin2/xxx
mkdir bin
gmake: *** No rule to make target `bin/xxx', needed by `install'.  Stop.


If I run it a second time I get:

>$ gmake install
cp bin2/xxx bin/xxx

So, the pattern rule appears to be correct.  As well, if I uncomment the
explicit rules and run gmake install I get:

>$ gmake install
mkdir bin2
cp xxx bin2/xxx
mkdir bin
cp bin2/xxx bin/xxx

Which is what I expect when using the pattern rule.  Is there an error in
the way I am using the pattern rule?

thanks,
ashif harji.


_______________________________________________
Bug-make mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-make

Reply via email to