www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1996/11/15/10:36:04

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 <eliz AT is DOT elta DOT co DOT il> 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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019