Make es el estándar de facto en los sistemas Linux, por ejemplo. Es una herramienta muy compleja, y también una herramienta muy poderosa.
Es ideal para saber si está desarrollando C o C++, particularmente si se dirige a Linux/* nix.
Una de las características de make es que puede configurar las dependencias para cuándo reconstruir un archivo. P.ej. cada archivo c o C++ está construido en un archivo .obj y, al final, todos los archivos .obj están vinculados a un archivo ejecutable. Pero tal vez el ejecutable es una biblioteca estáticamente vinculada, que está vinculada a otro ejecutable con otros archivos .obj.
Make puede asegurarse de que el tiempo de compilación sea lo más breve posible, porque puede definir que un archivo c solo debe compilarse si el archivo .obj, o cualquier archivo de encabezado dependiente, es más nuevo. Por lo tanto, cualquier paso de compilación o vinculación solo se ejecuta si los archivos de origen actuales para el paso son más recientes que el archivo de destino.
Si está desarrollando, por ejemplo, C#, no necesita este tipo de comprobación de dependencia porque todos los archivos .cs se compilan a la vez en un único ejecutable.
Por lo tanto, la conclusión es que debe utilizar una herramienta de compilación adecuada para su elección de lenguaje de programación.
http://stackoverflow.com/questions/559216/what-is-your-experience-with-non-recursive-make es un buen enlace también, a pesar de que aparece en la página de google que mencionaste. –
Varios años después, me he aficionado bastante a [CMake] (http://www.cmake.org), y configuré un [paquete listo para usar] (http://rootdirectory.de/wiki/ JAWS) para iniciar un proyecto de C++ con CMake. Pero todavía digo "sí" a la pregunta: ¿Vale la pena aprender GNU Make? Definitivamente es. Eso no dice que no valdría la pena aprender, p. CMake * también *. – DevSolar