Using sh in makefiles
    Guy Harris 
    guy at sun.uucp
       
    Sun Jun 29 16:43:48 AEST 1986
    
    
  
> Would like advice on how to use shell commands (such as if...) in
> makefiles.  I know that it all has to be on one line, but the only way I
> can make a command work is through a kludge like:
> 
> test:
> 	echo "if x;then y;fi" | sh
> 
> which seems pretty roundabout.  Is this the only way to do it?
Nope.  If "make" recognizes any of a number of special characters in a
command line, it passes that command line to "sh" rather than running the
command itself.  ";" is one of those characters, so
	test:
		if x; then y; fi
is sufficient.
Furthermore, they must all be on one "line"; however, "make"s idea of a
"line" can be altered by using escaped newlines:
	test:
		if x; then \
			y; \
		fi
will work.
-- 
	Guy Harris
	{ihnp4, decvax, seismo, decwrl, ...}!sun!guy
	guy at sun.com (or guy at sun.arpa)
    
    
More information about the Comp.unix
mailing list