Skip to contentSkip to conversation

Make doesn't abort on error

linux-lvm Russell Coker 2 participants 2 messages Dec 16, 2000 – Dec 17, 2000

lore
Share & tools
lore
#0 lore raw

ln -s liblvm.so.0.8final liblvm.so
ln: `liblvm.so': File exists
make[4]: *** [liblvm.so.0.8final] Error 1
make[4]: Leaving directory `/home/rjc/debian/LVM/lvm-0.8.1-0/tools/lib' make[3]: *** [all] Error 2
make[3]: Leaving directory /home/rjc/debian/LVM/lvm-0.8.1-0/tools/lib' make[3]: Entering directory /home/rjc/debian/LVM/lvm-0.8.1-0/tools/man8' make[4]: Entering directory `/home/rjc/debian/LVM/lvm-0.8.1-0/tools/man8'

Above is the error condition that make isn't detecting. I've changed the makefiles to use sonames so I can have multiple versions installed with ease (I'll send the patch here when it's working - hopefully within 24 hours otherwise maybe after Christmas).

Below is the code from make.tmpl. For some reason when the "make -c tools/lib all" fails it doesn't result in compilation aborting. Perhaps someone who knows make and shell scripting better than I can advise...

all:

        @for d in $(SUBDIRS); \
         do \
            if [ "$$d" = "." ]; \
            then \
               $(MAKE) all_this; \
            else \
               $(MAKE) -C $$d all; \
            fi; \
         done
Signature · 4 lines
http://www.coker.com.au/bonnie++/     Bonnie++ hard drive benchmark
http://www.coker.com.au/postal/       Postal SMTP/POP benchmark
http://www.coker.com.au/projects.html Projects I am working on
http://www.coker.com.au/~russell/     My home page
#1 lore raw
Quoted 4 lines · Russell Coker

Above is the error condition that make isn't detecting. I've changed the makefiles to use sonames so I can have multiple versions installed with ease (I'll send the patch here when it's working - hopefully within 24 hours otherwise maybe after Christmas).

i already posted such a patch

Quoted 5 lines

Below is the code from make.tmpl. For some reason when the "make -c tools/lib all" fails it doesn't result in compilation aborting. Perhaps someone who knows make and shell scripting better than I can advise...

all:

Quoted 9 lines
        @for d in $(SUBDIRS); \
         do \
            if [ "$$d" = "." ]; \
            then \
               $(MAKE) all_this; \
            else \
               $(MAKE) -C $$d all; \
            fi; \
         done

make checks output of the command it issues, in this case the shell that runs the for loop, since the for loop has no error checking make does not complain. If you want make to exit you should either recode the for loop or do something like this:

--- --- --- --- --- ---
all: $(SUBDIRS)

$(SUBDIRS): dummy

    $(MAKE) -C $@

dummy:
--- --- --- --- --- ---

L.

Signature · 6 lines
Luca Berra -- [email protected]
        Communication Media & Services S.r.l.
 /"\
 \ /     ASCII RIBBON CAMPAIGN
  X        AGAINST HTML MAIL
 / \