Tengo un archivo BSDmakefile y GNUmakefile que son prácticamente idénticos excepto por la administración de dependencias.BSD Make y GNU Make makefile compatible
El GNUmakefile:
ifneq ($(MAKECMDGOALS), "clean")
-include $(dependencies)
endif
El BSDmakefile:
.for i in $(dependencies)
.sinclude "${i}"
.endfor
¿Hay una manera de hacerlo de modo que puedo detectar si estoy corriendo bajo gmake o bsdmake y luego ejecutar el apropiado incluye declaraciones basadas en eso? Recuerdo haber visto a alguien aprovecharse de una peculiaridad en ambos procesadores de archivos makefile para que pudieran lograr un efecto similar.
Alternativamente, si hay un mejor enfoque que este, me gustaría saberlo. (¡Cambiar a SCons o CMake no es apropiado!)
¡Gracias!
No estoy seguro de por qué quieres hacer esto: ¿por qué no solo necesitas 'gmake' o' bmake' ¿en todos lados? Si desea ser portátil, puede usar 'automake' y dejarle los detalles. Muchos proyectos tienen bastante tiempo para lograr un solo sistema de compilación correcto, y mucho menos 2. –