Hallo!
Ich hab ein Problem mit einer Makefile.
Und zwar soll die Makwfile mit jedem Unterverzeichniss "$(MAKE) -C <dir>" aufrufen.
So hab ich das bis jetzt probiert:
1.
$(shell for name in `ls -Axw1`; do test -d $$name && $(MAKE) -C $$name clean; done;)
Ausgabe:
make: Entering directory `/home/lubbr/dev/mods/core' make: Leaving directory `/home/lubbr/dev/mods/core' make: Entering directory `/home/lubbr/dev/mods/network' make: Leaving directory `/home/lubbr/dev/mods/network' make: Entering directory `/home/lubbr/dev/mods/primaryserver' make: Leaving directory `/home/lubbr/dev/mods/primaryserver'
/bin/sh: command substitution: line 1: unexpected EOF while looking for matching `''
/bin/sh: command substitution: line 2: syntax error: unexpected end of file
/bin/sh: command substitution: line 1: unexpected EOF while looking for matching `''
/bin/sh: command substitution: line 2: syntax error: unexpected end of file
/bin/sh: line 1: make:: command not found
make: *** [clean] Error 127
2. So hier:
$(shell for name in `ls -Axw1`; do test -d $$name && echo "$(MAKE) -C $$name clean"; done;)
make -C core clean make -C network clean make -C primaryserver clean
make: *** network: No such file or directory. Stop.
make: *** [clean] Error 2
Wie bekomm ich das hin so das es geht wie ich will.
Problem mit Makefile
Re: Problem mit Makefile
Hi!
Vielleicht ist das Semikolon nach dem "done" verkehrt - überflüssig ist es allemal.
So funktioniert es bei mir:
for i in $(SUBDIRS); do ($(MAKE) -C $$i all); done
Allerdings muß sichergestellt sein, daß SUBDIRS nicht leer ist, sonst gibt es einen Syntaxfehler. Das kann man erreichen mit:
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">ifeq ($(SUBDIRS),)
all: all-local
else
all: all-local all-recursive
endif
all-recursive:
for i in $(SUBDIRS); do ($(MAKE) -C $$i all); done
all-local: whatever
</font><hr></pre></blockquote>
Gruß,
hjb
Vielleicht ist das Semikolon nach dem "done" verkehrt - überflüssig ist es allemal.
So funktioniert es bei mir:
for i in $(SUBDIRS); do ($(MAKE) -C $$i all); done
Allerdings muß sichergestellt sein, daß SUBDIRS nicht leer ist, sonst gibt es einen Syntaxfehler. Das kann man erreichen mit:
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">ifeq ($(SUBDIRS),)
all: all-local
else
all: all-local all-recursive
endif
all-recursive:
for i in $(SUBDIRS); do ($(MAKE) -C $$i all); done
all-local: whatever
</font><hr></pre></blockquote>
Gruß,
hjb
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?
Re: Problem mit Makefile
Hallo!
Danke! Es geht jetzt!
Es ging auch nach meiner Methode, wenn ich das (shell ... weglasse.
Danke! Es geht jetzt!
Es ging auch nach meiner Methode, wenn ich das (shell ... weglasse.