Chciałbym wykonać zadanie w kilku katalogach, ale do tej pory nie znalazłem rozwiązania "podobnego do pliku Makefile". Wiem, że jest to często zadawane pytanie i wiem, jak go rozwiązać dla sub-makfiles i tak dalej, ale szukam czegoś prostszego.Iterowanie listy katalogów w Makefile
Zamiast robić
copy:
cd module1 && mkdir foo
cd module2 && mkdir foo
cd module3 && mkdir foo
Chciałbym mieć coś takiego
directories = module1 module2 module3
copy: $(directories)
cd $< && mkdir foo
ale to nie działa, ponieważ receipe jest wywoływana tylko raz z pierwszego katalogu. Wpadłem na to rozwiązanie, które działa, ale prawdopodobnie nie jest w stylu Makefile:
directories = module1 module2 module3
copy:
for d in $(directories); do cd $$d && mkdir foo && cd ..; done
Jak mogę to zrobić ładniej?
Dzięki, to działa. Wybrałem rozwiązanie 2 (generuję cel 'copy' z pliku makefile), ponieważ nie jest ono powiązane z przypadkiem' mkdir'. Niestety, nie różni się zbytnio od używania pętli-for-loop, ale to nie ma znaczenia. – Robert