Makefile arquivos em loop com padrão

0

No bash, posso fazer isso:

for name in sqls/*.{schema,migration}.sql; do
    echo $name; # some operation on the file name
done

O resultado seria algo assim:

sqls/0001.schema.sql
sqls/0002.schema.sql
sqls/0003.migration.sql
sqls/0004.schema.sql
sqls/0006.schema.sql
sqls/0007.schema.sql

No entanto, se eu colocar o mesmo loop em um Makefile, a saída se tornará:

sqls/*.{schema,migration}.sql

Como posso fazer a mesma coisa em um Makefile?

    
por Koala Yeung 23.02.2017 / 10:37

1 resposta

2

Você precisa entender que o {...} é uma construção bash, enquanto o Makefiles geralmente lança o sh que não suporta o recurso de expansão de chaves.

No entanto, nem tudo está perdido; se você está com o GNU Make, então você pode dizer ao Make usar o bash colocando essa pequena linha SHELL := bash no topo do seu Makefile.

    
por 23.02.2017 / 10:50

Tags