public inbox for sourcenav@sourceware.org
 help / color / mirror / Atom feed
* 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).