Hay un mecanismo en hacer a permitir por defecto global de reglas implícitas que están disponibles en cualquier lugar, de forma similar a la incorporada en las reglas?

Hacen proporciona algunos integrado inimplicit reglas para la compilación de C/C++/Fortran archivos, sin siquiera requerir un Makefile para casos sencillos. Sin embargo, cuando la compilación de otros idiomas (por ejemplo, Ir lenguaje de programación de archivos), un Makefile siempre es necesario. Me gustaría extender mi Makeenvironment tener reglas implícitas disponibles por defecto.

OriginalEl autor notnoop | 2010-06-14

3 Comentarios

  1. 6

    Normalmente, esto no es deseable, ya que haría que su Makefile para que sea menos portable; no iba a trabajar a otro de la máquina si no se ha configurado de esa manera.

    Sin embargo, si usted desea hacer esto, crear un «global» Makefile en algún lugar con sus reglas predeterminadas para Ir a los archivos, a continuación, añadir su camino a los MAKEFILES variable de entorno. Este mundial Makefile será procesada antes de cualquier archivo Makefile al ejecutar «make», como si se hubiera incluido su fuente en la parte superior del archivo.

    Gracias! De acuerdo con la precaución. Sin embargo, me gustaría compilar tirar de código sin necesidad de escribir los Makefiles de todos los tiempos.

    OriginalEl autor dmazzoni

  2. 3

    Estoy asumiendo que usted está refiriéndose al hecho de que usted puede hacer

    make hello.o

    y hacer que automáticamente saben cómo hacer que el .o de un .c archivo (o, de hecho, a partir de una .f o .p, si existe uno) – pero usted quiere hacer esto para tipos de archivos personalizados (es decir, la construcción de un .bar de un .foo.

    La mayoría de los portátiles forma de hacerlo es como sigue (en el archivo Makefile):

    .SUFFIXES: .foo .bar
    .foo.bar:
            foo2bar -in $> -out [email protected]

    La primera línea (.SUFFIXES) advierte hacer que usted va a ser el tratamiento de estos sufijos; la segunda línea dice: «he aquí una receta para hacer un .bar de un .foo. La tercera línea le da el comando para hacer esto – $> y [email protected] obtener cambiado por hacer para la entrada y salida de los nombres de archivo.

    NOTA: El guión de la tercera línea DEBE ser un carácter de tabulación.

    Una forma mucho más flexible método, que sólo funciona con GNU make, es el uso de su apoyo para reglas implícitas. Si usted puede garantizar que usted va a usar GNU make, entonces este es probablemente para ser recomendado.

    OriginalEl autor psmears

  3. 3

    Aunque estoy de acuerdo con dmazzoni, yo aunque me gustaría añadir mi receta para hacer un Ir Makefile:

    # Include default Golang Make magic
    include $(GOROOT)/src/Make.$(GOARCH)
    
    # Hack the following line    
    your_program: your_program.$O
        $(LD) -o [email protected] $^
    
    # Compiles .go-files into architecture-specific binaries
    %.$O: %.go
        $(GC) -o [email protected] $^
    
    clean:
        rm your_program *.$O

    (Nota: el $O DÓLARES + MAYÚSCULAS-o – no cero!!!)

    Aunque yo no los he probado en todas las máquinas que tengo disponible, creo que debe de puerto bastante bien.

    Ah, aún más sencillo: github.com/jlouis/go-blip/blob/master/Makefile (no lo he probado, aunque…)

    OriginalEl autor Morten Siebuhr

Dejar respuesta

Please enter your comment!
Please enter your name here