dependencia makefile para los archivos desconocidos en el directorio conocido (por DocBook)

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

  •  13-09-2019
  •  | 
  •  

Pregunta

En el marco de la acumulación Estoy procesamiento de archivos DocBook que produce múltiples archivos HTML (un archivo por capítulo).

Quiero post-procesamiento de los archivos HTML y copiarlos en otros lugares. Esos archivos dependen de la fuente DocBook, pero no se puede saber de antemano los nombres de archivo (nombres de archivos dependen de la fuente DocBook también).

Tengo regla de ese tipo de obras si los archivos se generan ya:

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

pero no sé cómo decirle make para generarlos, si no están allí todavía. Si tan sólo añadir regla para www/manual/index.html, ese archivo se posprocesamiento, no todos ellos.

supongo que necesito makedepend para DocBook o quizás algún truco ingenioso comodín. ¿Cuál es la solución para esto?

¿Fue útil?

Solución

Me voy a asumir ciegamente GNU Make aquí; si no, técnicas similares deberían aplicarse con la sintaxis ligeramente alterado.

Si fuera yo, me gustaría usar una regla similar a la suya anterior, posiblemente con una lista de archivos generados por el función comodín

Y entonces me había puesto esa regla en un sub-makefile separada, llamada recursiva

Es decir, en el Makefile principal,


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

que Makefile verá la lista completa de los archivos HTML que se han creado.

Otros consejos

¿Estás tratando de escribir una regla como "Si no hay archivos en absoluto en el directorio manual continuación, ejecute el comando foo para generarlos"?

Una posibilidad fácil (un truco, dado que yo no sé el uso makefile avanzada y no propongo que invertir tiempo en aprender que innecesariamente) sería para ese comando especificado foo no sólo para crear nombres de archivo que usted no conoce de antemano, sino también para crear un archivo (tal vez vacío) cuyo nombre se conoce de antemano, y que luego se puede utilizar como marcador de si es o no la regla se ha ejecutado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top