Aqui, make
quero fazer com que todos os alvos no todo Makefile
dependam de um arquivo específico. ( Makefile
Na verdade, esse arquivo específico é porque é onde tenho todas as minhas fórmulas. Mas isso não vem ao caso.)
Aqui vemos que, como um idiota, adicionei meticulosamente a cada alvo,
$ grep Y Makefile
Y = Makefile
h32540000_zong.csv: $Y; $L | perl -pwle 'BEGIN{$$b=3; $$start=5;};$w; s/@\s+/\n/g;' > $@
h32540000_heng.csv: $Y; $L | perl -pwle \
h32540001_zong.csv: $Y; $L | perl -pwle 'BEGIN{$$start=8;};$w;$(\
h32540001_wall_zong.csv: $Y; $L | perl -wple \
h32540001_heng.csv: $Y; $L | perl -pwle \
h32540001_wall_heng.csv: $Y; $L | perl -pwle \
Existe alguma maneira mais inteligente?
Existe algum
.ALL_TARGETS: Makefile #or,
%: Makefile
etc. notação que eu poderia usar para obter o mesmo efeito?
Ou talvez apenas fazê-lo operar em todos os alvos que correspondem a um padrão específico?
Eu estava pensando em usar a %
notação, mas infelizmente isso iria reatribuir a lista de comandos de como criar cada alvo...
Pelo menos com o GNU Make você pode adicionar pré-requisitos adicionando uma regra sem uma receita:
Isso garante que todos os arquivos existentes sejam considerados
Makefile
como um pré-requisito. Isso tem o efeito colateral de alertar sobre a dependência circular deMakefile
em si mesmo, mas não tenho certeza se há uma maneira de contornar isso.No seu caso, você pode evitar isso limitando o curinga:
etc.