Espansione automatica del modello
Domanda
Vorrei includere molti file in un file Makefile.am
nella parte xxx_SOURCES = ...
. Esiste un modo per utilizzare le espansioni tipiche di una shell lì? Quello che sto cercando è un equivalente funzionante per:
xxx_SOURCES = xxx.c $(top_builddir)/src/{aaa,bbb,ccc}.c
Soluzione
1) Non c'è modo di farlo nella sintassi portatile di Make (la risposta di effemeride funzionerà solo con GNU Make) 2) Non c'è modo di farlo nemmeno usando Automake. (Sebbene la funzione non dovrebbe essere troppo difficile da implementare da qualcuno che ne ha bisogno ...)
Personalmente non vedo davvero il vantaggio di usare
foo_SOURCES = subdir/{foo,bar,baz}.c
su
foo_SOURCES = \ subdir/foo.c \ subdir/bar.c \ subdir/baz.c
Trovo che il primo sia più enigmatico e non sia plausibile (ad esempio per rispondere alla domanda " quale Makefile
menziona foo.c
? ").
Altri suggerimenti
Non so se sia il modo migliore, ma è quello che ho sempre fatto:
xxx_SOURCES = xxx.c $(shell echo $(top_builddir)/src/{aaa,bbb,ccc}.c)