Calling all make(1) gurus

David Elliott dce at hammer.UUCP
Sun Jan 29 14:49:44 AEST 1984


While looking around in the code for make (Vax 4.2BSD),
I noticed some strange things about the lexical analyzer.

The characters :, ;, space, tab, and newline are all considered
characters that delimit file names in the dependency line. I understand
this, but in addition, the characters >, &, and | are also considered
word terminators.

Does anyone have any idea why these three characters are considered as
terminators? If I put them in a dependency line, I get syntax errors.
The lexical analyzer is the only piece of code that looks at terminal
characters, and it seems to ignore & and |. It does process >, but
the parser doesn't know what it means and gives a syntax error.

Is this historical? Was there a time when those three characters were
not allowed in file names. Were there features of make which used
these three characters as special control characters? Any ideas?

			David Elliott
			tektronix!tekecs!dce



More information about the Comp.unix.wizards mailing list