dependencia makefile para los archivos desconocidos en el directorio conocido (por DocBook)
-
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?
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.