GNU Make y POSIX Haga que se comparta un núcleo común para que GNU Make comprenda los archivos MAK creados para POSIX y los interpreta de la misma manera, con muy pocas excepciones. Sin embargo, muchos Makefiles de GNU usan características que solo están disponibles en GNU Make. Algunas veces esto es deliberado y consciente; a veces no es (y "a veces no es" es un problema). Estoy menos familiarizado con Microsoft nmake; Creo que es probable que se acerque a la semántica de POSIX Make en su núcleo, pero tendrá su propio conjunto divergente de extensiones.
En términos generales, lo que los programas como autoconf producen están cerca de Makefiles portátiles.
Las principales cosas a tener en cuenta al usar GNU Make son todas las notaciones de funciones extendidas para mapear nombres de archivos (macros) en valores útiles. Si bien son indudablemente útiles, también son una trampa para la portabilidad.
Los '% .x' notaciones para las reglas de sufijo no se definen por POSIX - son reconocidos como una extensión común:
La interpretación de los objetivos que contienen los caracteres '%'
y '"'
es definido por la implementación.
Relacionado: [Restringir GNU-Make a POSIX Hacer comportamiento @ Unix.SE] (http://unix.stackexchange.com/q/144424/50602) Lamentablemente no parece haber forma de lograr eso, usted solo puede usar el objetivo especial '.POSIX' que todavía deja muchas extensiones habilitadas. – Palec