* VPATH problem in snMakefile (Windows ME) @ 2001-01-12 23:42 Charles Darcy 2001-01-16 20:27 ` Charles Darcy 0 siblings, 1 reply; 7+ messages in thread From: Charles Darcy @ 2001-01-12 23:42 UTC (permalink / raw) To: sourcenav Hi, I've just tried SN and found it is very impressive. I have, however, struck a problem when a build target contains files in multiple source directories. The make system claims there is no rule to build object files for any source files which exist in any directories after the first in VPATH (a definition in the SN generated snMakefile). So if I have source files in Dir1 and Dir2, VPATH will be something like: VPATH = c:/project/Dir1 c:/project/Dir2 Files in Dir1 compile OK, but with files in Dir2 the make system complains: make: *** No rule to make target `sample_file_in_Dir2.o', needed by `sample_lib.a'. Stop. I've found that if I replace the space between the directories in VPATH with a semicolon, rename snMakefile to makefile, and build using <external makefile> as the target, all file are compiled correctly. VPATH = c:/project/Dir1;c:/project/Dir2 This becomes a little tedious, however. I'm using the Cygwin compilation suite, under Windows ME. If anyone can suggest what might be the cause of my problem, I would be very grateful. My apologies if I have missed something obvious; I have only just started using Source Navigator and the Cygwin tools. regards, Charlie. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: VPATH problem in snMakefile (Windows ME) 2001-01-12 23:42 VPATH problem in snMakefile (Windows ME) Charles Darcy @ 2001-01-16 20:27 ` Charles Darcy 2001-01-17 1:16 ` Ben Elliston 0 siblings, 1 reply; 7+ messages in thread From: Charles Darcy @ 2001-01-16 20:27 UTC (permalink / raw) To: sourcenav Hi again, I've done a little reading and found that under Windows, directories must be separated with a semi-colon in VPATH. I don't understand why a space is being used as the separator in the Source Navigator generated snMakefile (in Windows). Is there anyway to change the separator to a semi-colon ? I'm using Cygwin and Source Navigator to familiarise myself with these tools as part of a general transition from Windows to Linux. My thanks to anyone who can offer advice. regards, Charlie. Charles Darcy wrote: > Hi, > > I've just tried SN and found it is very impressive. I have, however, > struck a problem when a build target contains files in multiple source > directories. The make system claims there is no rule to build object > files for any source files which exist in any directories after the > first in VPATH (a definition in the SN generated snMakefile). > > So if I have source files in Dir1 and Dir2, VPATH will be something > like: > > VPATH = c:/project/Dir1 c:/project/Dir2 > > Files in Dir1 compile OK, but with files in Dir2 the make system > complains: > > make: *** No rule to make target `sample_file_in_Dir2.o', needed by > `sample_lib.a'. Stop. > > I've found that if I replace the space between the directories in > VPATH with a semicolon, rename snMakefile to makefile, and build using > <external makefile> as the target, all file are compiled correctly. > > VPATH = c:/project/Dir1;c:/project/Dir2 > > This becomes a little tedious, however. > > I'm using the Cygwin compilation suite, under Windows ME. > > If anyone can suggest what might be the cause of my problem, I would > be very grateful. My apologies if I have missed something obvious; I > have only just started using Source Navigator and the Cygwin tools. > > regards, > > Charlie. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: VPATH problem in snMakefile (Windows ME) 2001-01-16 20:27 ` Charles Darcy @ 2001-01-17 1:16 ` Ben Elliston 2001-01-18 2:47 ` Charles Darcy 0 siblings, 1 reply; 7+ messages in thread From: Ben Elliston @ 2001-01-17 1:16 UTC (permalink / raw) To: Charles Darcy; +Cc: sourcenav G'day Charles, I've done a little reading and found that under Windows, directories must be separated with a semi-colon in VPATH. Really? What version of make are you using? I don't understand why a space is being used as the separator in the Source Navigator generated snMakefile (in Windows). Is there anyway to change the separator to a semi-colon ? Here is a snippet from the GNU Make manual: ``In the `VPATH' variable, directory names are separated by colons or blanks. The order in which directories are listed is the order followed by `make' in its search. (On MS-DOS and MS-Windows, semi-colons are used as separators of directory names in `VPATH', since the colon can be used in the pathname itself, after the drive letter.)'' So I'm not sure what the problem is with using blanks in the VPATH of generated Makefiles. Ben ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: VPATH problem in snMakefile (Windows ME) 2001-01-17 1:16 ` Ben Elliston @ 2001-01-18 2:47 ` Charles Darcy 2001-01-18 17:23 ` Ben Elliston 0 siblings, 1 reply; 7+ messages in thread From: Charles Darcy @ 2001-01-18 2:47 UTC (permalink / raw) To: Ben Elliston, sourcenav Hi Ben, Thanks for your reply. Comments follow below ... Ben Elliston wrote: > G'day Charles, > > I've done a little reading and found that under Windows, > directories must be separated with a semi-colon in VPATH. > > Really? What version of make are you using? GNU Make version 3.79.1, by Richard Stallman and Roland McGrath. Built for i686-pc-cygwin > > > I don't understand why a space is being used as the separator in > the Source Navigator generated snMakefile (in Windows). Is there > anyway to change the separator to a semi-colon ? > > Here is a snippet from the GNU Make manual: > > ``In the `VPATH' variable, directory names are separated by colons or > blanks. The order in which directories are listed is the order followed > by `make' in its search. (On MS-DOS and MS-Windows, semi-colons are > used as separators of directory names in `VPATH', since the colon can > be used in the pathname itself, after the drive letter.)'' > > So I'm not sure what the problem is with using blanks in the VPATH of > generated Makefiles. This snippet is what I based my "Must use semi-colon separators under Windows" claim. I assumed from the snippet that blanks, as well as colons, may not be used as the separator. Although the snippet does not explicitly state this, it seems to be implied, and the failure of Make to cope with blank separator's backs the assumption up. Thanks again for your interest, regards, Charlie. P.S. Enjoyed your salutation, very Ocker-like ( ;>). ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: VPATH problem in snMakefile (Windows ME) 2001-01-18 2:47 ` Charles Darcy @ 2001-01-18 17:23 ` Ben Elliston 2001-01-18 19:16 ` Eric Christopher 0 siblings, 1 reply; 7+ messages in thread From: Ben Elliston @ 2001-01-18 17:23 UTC (permalink / raw) To: Charles Darcy; +Cc: sourcenav Hi Charles, > ``In the `VPATH' variable, directory names are separated by colons or > blanks. The order in which directories are listed is the order followed > by `make' in its search. (On MS-DOS and MS-Windows, semi-colons are > used as separators of directory names in `VPATH', since the colon can > be used in the pathname itself, after the drive letter.)'' > So I'm not sure what the problem is with using blanks in the VPATH of > generated Makefiles. This snippet is what I based my "Must use semi-colon separators under Windows" claim. I assumed from the snippet that blanks, as well as colons, may not be used as the separator. Although the snippet does not explicitly state this, it seems to be implied, and the failure of Make to cope with blank separator's backs the assumption up. Are you sure? I read it that semi-colons must be used in the place of colons on MS-DOS and Windows, but that blanks are okay. Have you asked about the GNU make maintainer about it? It could be that your port of Make has been broken. Ben ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: VPATH problem in snMakefile (Windows ME) 2001-01-18 17:23 ` Ben Elliston @ 2001-01-18 19:16 ` Eric Christopher 2001-01-20 23:17 ` Charles Darcy 0 siblings, 1 reply; 7+ messages in thread From: Eric Christopher @ 2001-01-18 19:16 UTC (permalink / raw) To: Ben Elliston; +Cc: Charles Darcy, sourcenav Here's the info out of README.W32: GNU make handling of drive letters in pathnames (PATH, vpath, VPATH): There is a caveat that should be noted with respect to handling single character pathnames on Windows systems. When colon is used in PATH variables, make tries to be smart about knowing when you are using colon as a separator versus colon as a drive letter. Unfortunately, something as simple as the string 'x:/' could be interpreted 2 ways: (x and /) or (x:/). Make chooses to interpret a letter plus colon (e.g. x:/) as a drive letter pathname. If it is necessary to use single character directories in paths (VPATH, vpath, Path, PATH), the user must do one of two things: a. Use semicolon as the separator to disambiguate colon. For example use 'x;/' if you want to say 'x' and '/' are separate components. b. Qualify the directory name so that there is more than one character in the path(s) used. For example, none of these settings are ambiguous: ./x:./y /some/path/x:/some/path/y x:/some/path/x:x:/some/path/y Please note that you are free to mix colon and semi-colon in the specification of paths. Make is able to figure out the intended result and convert the paths internally to the format needed when interacting with the operating system. You are encouraged to use colon as the separator character. This should ease the pain of deciding how to handle various path problems which exist between platforms. If colon is used on both Unix and Windows systems, then no ifdef'ing will be necessary in the makefile source. -eric On Fri, 19 Jan 2001, Ben Elliston wrote: > Hi Charles, > > > ``In the `VPATH' variable, directory names are separated by colons or > > blanks. The order in which directories are listed is the order followed > > by `make' in its search. (On MS-DOS and MS-Windows, semi-colons are > > used as separators of directory names in `VPATH', since the colon can > > be used in the pathname itself, after the drive letter.)'' > > > So I'm not sure what the problem is with using blanks in the VPATH of > > generated Makefiles. > > This snippet is what I based my "Must use semi-colon separators > under Windows" claim. I assumed from the snippet that blanks, as well > as colons, may not be used as the separator. Although the snippet does > not explicitly state this, it seems to be implied, and the failure of > Make to cope with blank separator's backs the assumption up. > > Are you sure? I read it that semi-colons must be used in the place of > colons on MS-DOS and Windows, but that blanks are okay. Have you asked > about the GNU make maintainer about it? > > It could be that your port of Make has been broken. > > Ben > > > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: VPATH problem in snMakefile (Windows ME) 2001-01-18 19:16 ` Eric Christopher @ 2001-01-20 23:17 ` Charles Darcy 0 siblings, 0 replies; 7+ messages in thread From: Charles Darcy @ 2001-01-20 23:17 UTC (permalink / raw) To: Eric Christopher, Ben Elliston, sourcenav Well, I tried upgrading my Cygwin installation to the latest version, and lo and behold, my problem is fixed. Its looks like my make was indeed broken, as Ben suggested. Thanks for your help, and my apologies for taking your time with such a simple problem. regards, Charlie. Eric Christopher wrote: > Here's the info out of README.W32: > > GNU make handling of drive letters in pathnames (PATH, vpath, VPATH): > > There is a caveat that should be noted with respect to handling > single character pathnames on Windows systems. When colon is > used in PATH variables, make tries to be smart about knowing when > you are using colon as a separator versus colon as a drive > letter. Unfortunately, something as simple as the string 'x:/' > could be interpreted 2 ways: (x and /) or (x:/). > Make chooses to interpret a letter plus colon (e.g. x:/) as a > drive letter pathname. If it is necessary to use single > character directories in paths (VPATH, vpath, Path, PATH), the > user must do one of two things: > > a. Use semicolon as the separator to disambiguate colon. For > example use 'x;/' if you want to say 'x' and '/' are > separate components. > > b. Qualify the directory name so that there is more than > one character in the path(s) used. For example, none > of these settings are ambiguous: > > ./x:./y > /some/path/x:/some/path/y > x:/some/path/x:x:/some/path/y > > Please note that you are free to mix colon and semi-colon in the > specification of paths. Make is able to figure out the intended > result and convert the paths internally to the format needed > when interacting with the operating system. > You are encouraged to use colon as the separator character. > This should ease the pain of deciding how to handle various path > problems which exist between platforms. If colon is used on > both Unix and Windows systems, then no ifdef'ing will be > necessary in the makefile source. > > -eric > > On Fri, 19 Jan 2001, Ben Elliston wrote: > > > Hi Charles, > > > > > ``In the `VPATH' variable, directory names are separated by colons or > > > blanks. The order in which directories are listed is the order followed > > > by `make' in its search. (On MS-DOS and MS-Windows, semi-colons are > > > used as separators of directory names in `VPATH', since the colon can > > > be used in the pathname itself, after the drive letter.)'' > > > > > So I'm not sure what the problem is with using blanks in the VPATH of > > > generated Makefiles. > > > > This snippet is what I based my "Must use semi-colon separators > > under Windows" claim. I assumed from the snippet that blanks, as well > > as colons, may not be used as the separator. Although the snippet does > > not explicitly state this, it seems to be implied, and the failure of > > Make to cope with blank separator's backs the assumption up. > > > > Are you sure? I read it that semi-colons must be used in the place of > > colons on MS-DOS and Windows, but that blanks are okay. Have you asked > > about the GNU make maintainer about it? > > > > It could be that your port of Make has been broken. > > > > Ben > > > > > > ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2001-01-20 23:17 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2001-01-12 23:42 VPATH problem in snMakefile (Windows ME) Charles Darcy 2001-01-16 20:27 ` Charles Darcy 2001-01-17 1:16 ` Ben Elliston 2001-01-18 2:47 ` Charles Darcy 2001-01-18 17:23 ` Ben Elliston 2001-01-18 19:16 ` Eric Christopher 2001-01-20 23:17 ` Charles Darcy
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).