compiler-construction - pinecone - make a programming language in java
¿Cómo sabe Makefile que un archivo cambió y luego lo vuelve a compilar? (2)
Mira la marca de tiempo del archivo, así de simple. Si una dependencia es más nueva que el destino, el destino se reconstruye.
Por curiosidad, ¿cómo sabe Makefile que un archivo cambió (y luego lo vuelve a compilar)? ¿Está por make
? ¿Depende del compilador? Si es así, ¿depende el lenguaje?
Realice trabajos inspeccionando información sobre archivos, no sobre sus contenidos.
Haga que funcionen las dependencias entre los objetivos y sus dependencias, y luego busque si los archivos existen. Si lo hacen, pregunta al sistema operativo la hora y la fecha en que se modificó el archivo por última vez. Esta es la ''marca de tiempo'' para este propósito, aunque el término puede tener otros significados.
Si un archivo de destino no existe, o existe y es anterior a su archivo dependiente, entonces Make vuelve a generar el destino desde el dependiente aplicando una regla.
Si el dependiente no existe, Make señala un error.
Una consecuencia de esto es que puede forzar una reconstrucción eliminando el objetivo o ''tocando'' al dependiente para que sea más tarde que el objetivo. Puedes evitar una reconstrucción ''tocando'' el objetivo. Tocar simplemente actualiza la marca de tiempo para ahora.