Delivered-To: listarch-cygwin AT sourceware DOT cygnus DOT com Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm Sender: cygwin-owner AT sourceware DOT cygnus DOT com Delivered-To: mailing list cygwin AT sourceware DOT cygnus DOT com From: Graham Dumpleton <Graham DOT Dumpleton AT ra DOT pad DOT otc DOT com DOT au> Message-Id: <199902150959.UAA16467@baldric.pad.otc.com.au> Subject: B20: make confused with //a style drive specifiers To: cygwin AT sourceware DOT cygnus DOT com Date: Mon, 15 Feb 1999 20:59:23 +1100 (EST) Cc: Graham DOT Dumpleton AT otcgpo DOT isg DOT otc DOT com DOT au X-Mailer: ELM [version 2.4 PL24] Content-Type: text Came across the following problem in B20 which I believe should work. With a makefile of: need1 := g:/a g:/b g:/c g:/d g:/e g:/f all1 : $(need1) $(need1) : % : @echo $@ need2 := //g/a //g/b //g/c //g/d //g/e //g/f all2 : $(need2) $(need2) : % : @echo $@ When I run "make all1" I get. g:/a g:/b g:/c g:/d g:/e g:/f When I run "make all2" I get. make: *** No rule to make target `//g/a', needed by `all2'. Stop. If you use -p option to look at what is going on you will find that make seems to be incorrectly concatenating adjacent targets together when "//g" is used instead of "g:". all2: //g/a //g/b //g/c //g/d //g/e //g/f # Command-line target. # Implicit rule search has been done. # File does not exist. # File has not been updated. //g/a //g/b: # Implicit rule search has not been done. # Implicit/static pattern stem: `//g/a //g/b' # Modification time never checked. # File has not been updated. # commands to execute (from `foo.mk', line 13): @echo $@ Since the rule which is set up seems to have a target of "//g/a //g/b", there is no separate targets for either "//g/a" or "//g/b" and thus make doesn't know how to build them, or something like that. -- Graham Dumpleton (grahamd AT nms DOT otc DOT com DOT au)