Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com From: "Hannu E K Nevalainen" To: Subject: RE: Problems with Make, VPATH and MS-DOS paths Date: Tue, 18 Nov 2003 11:34:10 +0100 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 In-Reply-To: Importance: Normal > From: Nate Bohlmann > Sent: Monday, November 17, 2003 8:53 PM > 11/17/03 12:31:23 PM, Hannu E K Nevalainen > wrote: > > >> From: Nate Bohlmann > >> Sent: Monday, November 17, 2003 5:53 PM > > > >> Hi, > >> I'm having a problem getting MS-DOS paths to work properly with > >> VPATH under > >> GNU Make 3.80. The problem is that the VPATH processing tacks on > >> a Unix path > >> separator ('/') to the end of the VPATH giving me a source file > >> name something > >> similar to code\src\fw/foo.c. This is a significant problem for > >> the compiler > >> I'm using (NOT gcc) since it spits out map and list files based > >> on the stem of > >> the input source name which it decides is 'fw/foo.c'. > > > > > >$ cygpath --help > > > >IMO it should help to solve all your problems. cygpath is part > of the base > >package so there is no need go looking for it either; if you have cygwin > >then you have cygpath too. > > > How exactly does a command line tool help with VPATH'ing inside of Make? Sorry, if what I've written doesn't apply to your needs, but why so sceptic? cygpath doesn't help with VPATH specifically, but with the use of what make has found based on VPATH. -- info man, excerpt -- This is done with the "automatic variables" such as `$^' (*note Automatic Variables: Automatic.). For instance, the value of `$^' is a list of all the prerequisites of the rule, including the names of the directories in which they were found, and the value of `$@' is the target. Thus: foo.o : foo.c cc -c $(CFLAGS) $^ -o $@ -- end of excerpt -- To give you the idea what I'm thinking of: foo.o : foo.c arg1=`cygpath -d $^`; \ arg2=`cygpath -d $@`; \ cc -c $(CFLAGS) $arg1 -o $arg2 ...should IMO be possible. NOTE that the above HAS NOT BEEN TESTED and *IS NOT* expected to work as it is written - look at it as "pseudocode" with a slight "bash-tint". If the example above doesn't produce the expected result, then try creating a (bash)script that you launch with/from (the) make/Makefile - with args as indicated above. In that script you then have the liberty to use cygpath in any manner necessary to achieve what you wish. NOTE: There is a patch in the mail archives that makes cygpath more fit for "$^" processing. Here: http://www.cygwin.com/ml/cygwin-patches/2003-q4/msg00063.html - you need to get the cygpath source from cvs - as this doesn't seem to have made it into binary builds on the mirrors yet. /Hannu E K Nevalainen, B.Sc. EE - 59+16.37'N, 17+12.60'E -- printf("LocalTime: UTC+%02d\n",(DST)? 2:1); -- --END OF MESSAGE-- -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/