Re: make fails (is this list still alive?) Brian Denheyer (briand@deldotd.com)
Tue, 13 Jul 1999 09:33:50 -0700 (PDT)

>>>>> "shapj" == shapj <shapj@us.ibm.com> writes:

  shapj> --0__=TtHIaktqz3YITLLCR2wLAK103sLZHqA7eipAPWjGki4Dd59uPybGPg0Y
  shapj> Content-type: text/plain; charset=us-ascii
  shapj> Content-Disposition: inline

shapj> Ron:

  shapj> It was meant to be a test for the non-empty value of that
  shapj> variable, so that the stuff inside the 'if' wouldn't get
  shapj> executed if the variable was empty.

shapj> Any suggestions for a better idiom for doing this recursion?

  shapj> It looks like the "[ -n "" ]" was meant to be be a test for
  shapj> the existence of a variable which was then used in the for
  shapj> loop. But if the variable doesn't exist you're left with a
  shapj> syntactically incorrect shell command.

The easy way to get around this problem is to simply enclose the $(DIRS) in quotes which will then yield the empty string and make bash happy (syntactically).

.e.g

recursive-all:

        @if [ -n "$(DIRS)" ]; then\
                for i in "$(DIRS)"; do \
                         ^^^^^^^^^

Of course, I did this and now make install doesn't do _anything_. I really love to hate make.

I know you folks are as short on time as everybody else, but before you get too far along redesigning the build process you might want to take a look at :

Recursive Make Considered Harmful
www.pcug.org.au/~millerp/rmch/recu-make-cons-harm.html

Brian