Depois de construir algo, make
quero mover todos os arquivos que terminam .cache.{js,woff}
para uma subpasta.
(cd $(PFROOT)/PVWR2/gwt/pdfwebviewer/; \
mkdir -p cache_files; \
mv *.cache.{js,woff} sub_folder)
O problema é que ao executar make
ele parece interpretar *.cache.{js,woff}
como um nome de arquivo e não como algo dinâmico e claro que não existe nenhum arquivo que tenha o nome explícito *.cache.{js,woff}
. Quando eu apenas navego até a pasta e a movo manualmente do shell com o comando acima, ela funciona sem problemas.
Eu entendo que tem a ver com globbing, mas não sei como consertar isso.
Responder1
{...}
é uma sintaxe específica do bash para expansão de chaves, mas usa /bin/sh
por padrão em vez de bash
.
De info make
, seção 5.3.2:
O programa usado como shell é retirado da variável
SHELL
. Se esta variável não estiver definida em seu makefile, o programa/bin/sh
será usado como shell.
Se quiser usar o bash para analisar construções de shell em seu Makefile, você pode adicionar o seguinte ao topo:
SHELL := /bin/bash