2012-02-14 12 views
6

Me gustaría validar mis archivos make hechos a mano, para asegurarme de que funcionen según lo previsto en una variedad de plataformas. ¿Hay alguna utilidad que pueda usar para advertirme sobre idiosincrasias que podrían obstaculizar el camino?¿Existe alguna utilidad para validar makefiles?

+1

¿Quieres una utilidad que te diga si un software funcionará * como se esperaba? * ¿Piensas darle el control de un arsenal nuclear? – Beta

+1

Lo más fácil sería escribir pruebas para Makefiles, es decir, colocarlas en un entorno específico y esperar un comportamiento predefinido. –

+0

make --dry-run? –

Respuesta

1

No estoy tan lejos como yo sepa.

Lo mejor que se puede hacer es respetar la regla anterior "puerto temprano; puerto a menudo". Intente crear su aplicación en otras plataformas lo antes posible y vuelva a realizarla siempre que tenga la oportunidad. Eso agitará los errores de portabilidad en su código y validará el Makefile como un efecto secundario.

Dicho esto, es aconsejable limitarse a las características conservadoras de Makefile tanto como sea posible. Es posible que desee mirar el POSIX make manpage (aunque le aconsejo que use las reglas %.foo: %.bar en lugar de las reglas nominalmente estándar .bar.foo:), y la sección portable make programming del manual de autoconf está llena de buenos consejos.

Ah, y usted sabe que autoconf es una buena cosa, ¿sí?

0

lo siento hermano, pero .... no estoy seguro de si podría haber un solo código de uso de código de todo el mundo, este es uno de los puntos más fuertes y más débiles de Unix .... hay tantos sabores diferentes del sistema operativo en sí y las implementaciones de Make Utility - GNU es solo una de ellas y también lo es la forma abierta de Solaris (pequeñas diferencias), pero comparten una serie de características comunes

hay funciones de GNU Make que están disponibles solo si usted invoca su descriptor de archivo MAKE con una marca GNU, es lo mismo para otros variadores del SO de utilidad también ... con restricciones como estas

"una prueba exhaustiva en todos los sistemas posibles que desea que funcione es la única solución que me viene a la mente "

Cuestiones relacionadas