Chciałbym użyć jednego Makefile do generowania celów w setkach podkatalogów. Każdy podkatalog jest datownikiem/datą w następujący sposób: 20120119_153957
, który pasuje do następującego wzoru: ????????_??????
. Nie ma innych podkatalogów pasujących do tego wzorca.Jak automatycznie generować listę celów docelowych przez globowanie podkatalogów?
Jeden cel, który chciałbym wygenerować, nazywa się ????????_??????/graph.pdf
. Mam skrypt o nazwie make_graph
, który spowoduje, że wykres otrzyma nazwę podkatalogu. Nie jestem jednak pewien, jak napisać plik Makefile, który automatycznie globalizuje wszystkie podkatalogi i generuje te cele programowo.
Na przykład kod SUBDIRS:=????????_??????
wydaje się poprawnie globalnie wszystkie podkatalogi. Mogę skontaktować się z tą zasadą:
.PHONY: print
print:
echo $(SUBDIRS)
Jednak ta zmienna cesja
TARGETS:=$(SUBDIRS:%=%/graph.pdf)
nie wydaje się robić to, czego oczekuję i przypisać wiele, wiele celów. Zamiast tego poniższa reguła po prostu drukuje jeden cel.
.PHONY: print
print:
echo $(TARGETS)
Jest to bardzo kłopotliwe, że SUBDIRS
powinien posiadać odpowiednie podkatalogi ale TARGET
ma tylko jeden plik.
Czy jest to duplikat [Jak używać symbolu wieloznacznego przy tworzeniu znaku?] (Http://stackoverflow.com/questions/8937430/how-to-use-wildcard-with-make) –
Tak, to jest pełne pytanie. Przypadkowo wysłałem częściowe pytanie z tytułem "Jak używać symboli wieloznacznych przy użyciu make?". Próbowałem zamknąć lub usunąć to inne pytanie i skierować ludzi do tego. Westchnienie. –
Już odpowiedziałem na to pytanie. :( –