/ / Uzyskaj zależności od innego Makefile - makefile

Uzyskaj zależności od innego pliku Makefile - makefile

Próbuję użyć wielu plików makefile takich jak to:

W ~/generator/Makefile:

foo.xml: foo-part1.xml foo-part2.xml foo-part3.xml
./generate $^ > $@

I w ~/some/other/dir/Makefile:

foo.xml:
$(MAKE) -C ~/generator $@
mv ~/generator/$@ $@

Problemem jest: kiedy idę do ~/some/other/dir/ i biegnij make foo.xml, nie ma listy zależności dla foo.xml, i make -C ~/generator foo.xml nie jest wywoływany nawet jeśli (na przykład) ~/generator/foo-part1.xml jest nowszy niż cel.

Jedynym rozwiązaniem, o którym myślałem, jest skopiowanie listy zależności z bezwzględnymi ścieżkami do ~/some/other/dir/Makefile, co jest dość okropne:

foo.xml: ~/generator/foo-part1.xml ~/generator/foo-part2.xml ~/generator/foo-part3.xml

Moje pytanie brzmi zatem: czy w makefile jest jakiś sposób, by o to zapytać inne makefile jakie są zależności od celu? Lub po prostu przekaż zapytanie foo.xml do tego makefile i zebrać wynik? Zasadniczo chcę, aby drugi plik makefile polegał na pierwszym, jeśli chodzi o decyzję, czy cel powinien zostać odbudowany, i jeśli chodzi o jego budowę.

Odpowiedzi:

0 dla odpowiedzi № 1

Rozwiązałem go, mając dwie reguły w drugim makefile:

I w ~/some/other/dir/Makefile:

.PHONY: ~/generator/foo.xml
~/generator/foo.xml:
$(MAKE) -C ~/generator $(notdir $@)

foo.xml: ~/generator/foo.xml
cp $< $@