From: kagel AT quasar DOT bloomberg DOT com Date: Fri, 15 Nov 1996 10:17:00 -0500 Message-Id: <9611151517.AA06351@quasar.bloomberg.com > To: tor AT sn DOT no Cc: djgpp AT delorie DOT com In-Reply-To: <328a1275.420624053@news.sn.no> (tor@sn.no) Subject: Re: Make problem with spaces instead of tabs Reply-To: kagel AT dg1 DOT bloomberg DOT com From: tor AT sn DOT no (Tor Sjowall) Date: Wed, 13 Nov 1996 18:38:21 GMT Eli Zaretskii wrote: > >On Wed, 13 Nov 1996, Tor Sjowall wrote: > >> I'm sure there is some historic argument for insisting on the tabulator as >> a prefix to make command lines, but I cannot see any problems with >> accepting a space too. > >The reason is compatibility with other Unix Make's. If Make accepts a >space, it lets you produce Makefiles that won't be useful with other >versions of Make on Unix. On the other hand, *all* versions of Make, >including those which come with DOS compilers, support a TAB as the first >character. It's true that 'spaced' makefiles would not work with Unix make programs. But then, the makefile from dos wouldn't work anyway because of the CR+LF incompatibility. Traditionally, in DOS tabulators were used to compress text files by replacing up to 8 spaces. Because of this, there are several different DOS text editors that treat tabulators as a compressed space and not as a character of it's own right. I don't know if tabulators were used the same way in Unix. There are always problems when moving from one system to another. I suggested to modify that specific copy of make to accept both space and tabulator as an easy fix for one users problems. I still think that this is a valid option. The alternative has been suggested: 'get a decent editor!' Yet another reason to NOT make a version that accepts spaces rather than tabs before dependent command lines is that while it is traditional to start a dependency at column 1 the language permits white space before dependencies so long as the first character is NOT A TAB and make distinguishes indented dependencies from indented dependent command lines be cause they can begin with any white space so long as the first character IS A TAB. Changing make to accept a space as the first character of a dependent command may break some (admittedly few), perfectly legal, makefiles. I'd go with: 'get a decent editor!' and 'it ain't broke so don't fix it!' -- Art S. Kagel, kagel AT quasar DOT bloomberg DOT com A proverb is no proverb to you 'till life has illustrated it. -- John Keats