imake
Más información
- Creador
- Todd Brunhoff
- Año
- Tipo
- Herramienta de construcción
- Licencia
- MIT
El sistema de construcción propio de X11, que hacía que el preprocesador de C escribiera los Makefiles a partir de un Imakefile: portable a todos los Unix y detestado en cada uno de ellos.
Todd Brunhoff, de Tektronix, escribió imake en 1987 para X11R1, cuando cada fabricante de Unix tenía su propio make, sus propias rutas de bibliotecas y sus propias opciones de compilador. La solución era escribir un pequeño Imakefile con invocaciones de reglas como ComplexProgramTarget(xclock) y dejar que cpp lo expandiera junto con una plantilla, un archivo de reglas y un archivo de plataforma por sistema (sun.cf, linux.cf) hasta obtener un Makefile terminado. La orden xmkmf lo hacía en un paso, y make World compilaba todo X.
El problema era que cpp nunca se había pensado para esto. Eliminaba todo lo que empezaba por #, así que los comentarios debían escribirse XCOMM; sustituía palabras predefinidas como unix y linux por 1, incluso dentro de rutas; y algunas versiones añadían o quitaban espacios hasta que make dejaba de reconocer sus tabuladores. Paul DuBois necesitó un libro entero de O'Reilly en 1993 para explicar el sistema. Aun así Motif, LessTif y casi todo el directorio contrib de X se construyeron así durante casi dos décadas, hasta que X11R7 dividió el árbol en módulos en 2005 y pasó a las autotools de GNU.