X-Authentication-Warning: kendall.sfbr.org: jeffw set sender to jeffw AT darwin DOT sfbr DOT org using -f Date: Tue, 27 Aug 2002 11:35:39 -0500 From: JT Williams To: djgpp AT delorie DOT com Cc: Eli Zaretskii Subject: Re: file names in Makefile Message-ID: <20020827163539.GA27849@kendall.sfbr.org> Mail-Followup-To: djgpp AT delorie DOT com, Eli Zaretskii References: <20020826193515 DOT GB24199 AT kendall DOT sfbr DOT org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4i Reply-To: djgpp AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: djgpp AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk -: Can you try the latest Make 3.79.1? Did you use 3.78.1 in the DJGPP case -: as well? If so, please try the latest binary in all cases, I think this -: particular issue got several bugfixes. On Solaris now, with the latest binary, before trying djgpp: % make --version GNU Make version 3.79.1, by Richard Stallman and Roland McGrath. Built for sparc-sun-solaris2.8 Copyright (C) 1988, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2000 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Report bugs to . % cat Makefile # Makefile SRC = 2001\;6(2)\:126--135.pdf all: $(SRC) test -f "$<" && echo yes # end of Makefile % touch '2001;6(2):126--135.pdf' % make all make: *** No rule to make target `2001;6(2)\:126--135.pdf', needed by `all'. Stop. The semicolon is properly escaped, but the `\' used to escape the colon survives as part of the file name. The file (with the backslash in the name) does not exist, and `make' complains. So now do this: % touch '2001;6(2)\:126--135.pdf' and `make' will find it: % make test -f "2001;6(2)\:126--135.pdf" && echo yes yes BTW, the colon must be escaped in the Makefile or `make' interprets $(SRC) as a munged archive member reference, e.g., % make Makefile:5: *** target pattern contains no `%'. Stop.