[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: make-3.74-12 uploaded to master



Hi,

	
Ian Jackson <ian@chiark.chu.cam.ac.uk> writes:
Ian> srivasta@pilgrim.umass.edu writes ("make-3.74-12 uploaded to master"):

Manoj>          * Added patch to job.c to allow make to exec scripts
Manoj>            which do not have the #! magic as the first line.
Manoj>            This fixed Bug#1149 

Ian> Why should make execute scripts which don't have a #! line ?

	Ummm, 

	(a) I don't think it should be upto make to tell the user what
	    they could run or not run from their makefiles,  
	(b) there is prior art in the form of programs that expect
	    make to execute scripts which don't have a #!
	    line. (supposedly it is used to make the scripts directly
	    executable on platforms that do not support the
	    interpreter line). 
	(c) I would rather not go into the merits of programming
	    scripts like that, but I think I'd rather make was
	    permissive than otherwise.  
	(d) Also, the upstream maintainers seem to agree with this
	    view, since this fix will be included in the next version,
	    whenever that may be.
	(e) POSIX.1 seems to require it:
  In POSIX mode, make executes with POSIX compatibility, such that the SHELL
  environment variable is always ignored, SHELL is always overridden by
  MAKESHELL, the shell is always used to execute commands, and commands are
  echoed to standard out with a prefixed <tab>.
  ...
  The #! identifies the file as an executable text file.
  ...
  If the process image file is not a valid executable object, then the
  contents of that file are used as standard input to a command
  interpreter conforming to the system() function.  In this case, the
  command interpreter becomes the new process image. 

	manoj
======================================================================
"true" || eval 'exec /usr/local/bin/perl -S $0 $argv:q';
eval '(exit $?0)' && eval 'exec /usr/local/bin/perl -S $0 ${1+"$@"}'
    & eval 'exec /usr/local/bin/perl -S $0 $argv:q'
    if $running_under_some_shell;
======================================================================

--
It is wrong always, everywhere and for everyone to believe anything
upon insufficient evidence.  -- W. K. Clifford, British philosopher,
circa 1876 %%
Manoj Srivastava               Systems Research Programmer, Project Pilgrim,
Phone: (413) 545-3918                A143B Lederle Graduate Research Center,
Fax:   (413) 545-1249         University of Massachusetts, Amherst, MA 01003
<srivasta@pilgrim.umass.edu> <URL:http://www.pilgrim.umass.edu/%7Esrivasta/>

Reply to: