- sin necesidad de detectar dependencias externas
configuración
- uso por defecto del compilador/enlazador
¿Por qué script entonces? Siempre que todos los archivos de origen del proyecto son *.cpp
y en el directorio actual:
all: $(notdir $(CURDIR))
$(notdir $(CURDIR)): $(subst .cpp,.o,$(wildcard *.cpp))
$(LINK.cpp) $^ $(LOADLIBES) $(LDLIBS) -o [email protected]
El Makefile construirían los todos los archivos de origen con la configuración por defecto del compilador/enlazador en un archivo ejecutable llamado así por el nombre del directorio actual.
De lo contrario, generalmente recomiendo a las personas que prueben SCons en lugar de hacerlo donde sea mucho más simple e intuitivo.Se agregó la bonificación de que no hay necesidad de codificar manualmente los objetivos clean
, la verificación de dependencia de origen/encabezado está incorporada, es recursiva de forma nativa y admite bibliotecas adecuadamente.
También tiene función comodín para encontrar archivos. –
+1 ¿Por qué no utilizar los nombres estándar para las cosas. Y las reglas estándar funcionarán para el objetivo sin necesidad de hacer nada especial. –
@Martin: Intenté usar una regla implícita para el objetivo pero no tuve éxito :) Parece posible solo si uno de los archivos fuente se llama '$ (TARGET) .cpp'. ¿Qué quieres decir con "los nombres estándar para las cosas"? – Job