dependência Makefile para arquivos desconhecidos no diretório conhecido (para DocBook)

StackOverflow https://stackoverflow.com/questions/991841

  •  13-09-2019
  •  | 
  •  

Pergunta

Como parte da compilação Estou processando arquivo DocBook que produz vários arquivos HTML (um arquivo por capítulo).

Eu quero postprocess esses arquivos HTML e copiá-los em outro lugar. Esses arquivos dependem fonte DocBook, mas eu não posso saber nomes de arquivos com antecedência (nomes de arquivos dependem fonte DocBook também).

Eu tenho regra que espécie de obras se os arquivos já estão gerado:

www/manual/%.html: build/manual/%.html
   postprocess "$<" "$@"

mas eu não sei como dizer make para gerá-los, se eles não estão lá ainda. Se eu adicionar regra para www/manual/index.html, apenas que arquivo é pós-processada, não todos eles.

Eu suponho que eu preciso makedepend para DocBook ou talvez algum truque curinga bacana. Qual é a solução para isso?

Foi útil?

Solução

Eu vou assumir cegamente GNU Faça aqui; se não, técnicas semelhantes devem aplicar-se com a sintaxe ligeiramente alterada.

Se fosse comigo, eu iria usar uma regra semelhante ao seu acima, possivelmente com uma lista de arquivos gerados pelo função de curinga

E então eu ia colocar essa regra em uma sub-makefile separado, chamado recursivamente

Isto é, em sua principal Makefile,


  build:
    # do the docbook processing
    $(MAKE) -f htmlprocessmakefile

que Makefile vai ver a lista completa dos arquivos HTML que foram criadas.

Outras dicas

Você está tentando escrever uma regra como "Se não existem arquivos em tudo no diretório manual em seguida, executar o comando foo para gerá-los"?

Uma possibilidade fácil (um hack, dado que eu não sei o uso avançado makefile e não pretendo investir tempo aprendendo unecessarily) seria para esse comando foo especificado, não só para criar nomes de arquivos que você não conhece com antecedência, mas também para criar um arquivo (talvez vazio), cujo nome de arquivo que você sabe de antemão, e que você pode usar como seu marcador para se ou não a regra foi executado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top