On Sat, 2004-10-09 at 15:50, Christian Boltz wrote:
SUBDIRS = subdir1 subdir2 subdir3
clean: @for d in $(SUBDIRS); do \ $(MAKE) -C $$d clean || exit $? ; \ done
(das "|| exit $?" ist wichtig, damit im Fehlerfall auch der make-Lauf abbricht) Für weitere Inspirationen kann ich Dir die Makefiles der Fontlinge empfehlen (bei Sourceforge im CVS zu betrachten).
Es ist immer wieder interessant zu lesen, was manche Leute als allgemeingültig zu verkaufen versuchen ;-) 2 Portabilitätsfehler aus deinem Beispiel: 1. "for d in $(SUBDIRS)" ist nicht portabel. 2. "make -C" ist nicht portabel. [Es hat seine Gründe, warum die von automake verwendeten Konstrukte scheinbar umständlich sind. Wenn dein Paket nur unter Linux/GNU übersetzbar sein soll, sind diese Konstrukte in Ordnung, sonst aber nicht. ]
Obiges Schnipsel ist eine vereinfachte Form aus fontlinge_rc/modules/Makefile. Recht interessant ist übrigens auch die Implementation von "make dist" auf Basis von CVS/Entries ;-) (fontlinge_rc/Makefile)
Manche Leute kommen auf Ideen ... :-() Ralf