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

Re: Makefile



* Markus Schulz <msc@antzsystem.de> wrote:
> Am Donnerstag, 10. November 2005 16:47 schrieb Roland M. Kruggel:
> > ich bin gerade dabei einen Makfile zu erstelle. Klappt soweit auch,
> > bis auf eine kleinigkeit die ich nicht hin bekomme.
> >
> > Ich will aus dem 'Hauptmakefile' den nächsten Makefile in einem
> > Unterverzeichniss aufrufen. Kriegs nicht hin. Kann mir bitte mal
> > jemand einen Tip geben.
> 
> noch eine Variante:
> 
> SUBDIRS         = dir1 dir2 dir3
> 
> %:
>         @echo -n "Making... ";
>         @echo $(SUBDIRS)
>         @set -e; for i in $(SUBDIRS); do $(MAKE) -C $$i $@ ;done

Wo wir gerade so schön dabei sind. Hat jemand von Euch 'ne Ahnung, wie
ich ein Schleifenkonstrukt ählich obigem hinbekomme, bei dem im do-Teil
auftretende Fehler ignoriert werden?

$ ls
bar  Makefile

$ cat bar
bar

$ cat Makefile
all:
        @-set -e; for i in foo bar; do cat $$i; done

$ make
cat: foo: Datei oder Verzeichnis nicht gefunden
make: [all] Fehler 1 (ignoriert)

Hier sagt er zwar schön er hat den Fehler ignoriert, aber hat die
Ausführung der Schleife de facto nach dem ersten Durchlauf abgebrochen.
Da das ganze auf der Shell funktioniert

$ for i in foo bar; do cat $i; done
cat: foo: Datei oder Verzeichnis nicht gefunden
bar

muss es wohl eine Intelligenz von make sein, die bei Beispiel 2
interveniert, den Fehler abfängt und die weitere Ausführung verhindert.
Wie kann man das unterdrücken?

- sebastian



Reply to: