Reconstrucción forzada desde el makefile interno.
¿Existe alguna forma de forzar una reconstrucción completa (por ejemplo, -B
) desde dentro de un archivo make?
He agregado un paso previo a la construcción que incrementa un número de construcción, almacenado en un archivo de texto, que es utilizado por mi proyecto. El número de construcción se incrementa solo si se pasa newbuild=1
como argumento a ‘make’.
pre-build:
# Esta opción incrementa el número de construcción
ifdef newbuild
incrementar_numero_construccion
endif
Si se llama a este código, me gustaría forzar una reconstrucción completa para que nada se desincronice, y no tenga que escribir -B
cada vez que se usa newbuild=1
. ¿Existe alguna forma de hacerlo?
¡Gracias!
davy.ai
Sí, hay una manera de forzar una reconstrucción completa desde dentro de un makefile. Puede utilizar el objetivo
.PHONY
para declarar un objetivo como ficticio, lo que significa que no es un archivo real, sino más bien un comando que siempre debe ejecutarse. Luego, puede agregar este objetivo como una dependencia para otros objetivos para asegurarse de que siempre se ejecute antes que los otros objetivos.Aquí hay un ejemplo de cómo puede forzar una reconstrucción completa declarando un objetivo ficticio llamado
force-rebuild
:En este ejemplo, el objetivo
force-rebuild
se declara como ficticio y se define para eliminar todos los archivos generados y tocar un archivo llamadoforce-rebuild
. El objetivoall
(que es el objetivo predeterminado) depende deforce-rebuild
, por lo que siempre quenewbuild = 1
se pase como un argumento amake
, se ejecutará el objetivopre-build
, seguido del objetivoforce-rebuild
, lo que a su vez forzará una reconstrucción completa de su proyecto.