Abreviatura de sintaxis de Makefile

0 Formato básico

Objetivo:
instrucción dependiente (tabulador)

1 variable

Definición de variable: objetos = main.o comando.o utils.o
uso de la variable: $ (objetos)

2 objetivos falsos

.PHONY : clean // .PHONY表示 clean为伪目标
clean :
-rm edit $(objects) //"-"表示:也许某些文件出现问题,但不要管,继续做后面的事

En circunstancias normales, un pseudo objetivo no depende de otro objetivo. Sin embargo, cuando un pseudo objetivo es una
dependencia de un objetivo , se aplicará su cuerpo de comando.

Tales como: FUERZA

3 Makefile específico designado

Es mejor usar Makefile, pero no usar Makefile.

Al especificar un Makefile específico:
utilice los
parámetros "-f" y "-file" de make, como: make -f Make.Linux o make --file Make.AIX

4 Flujo de trabajo de Make

El proceso de ejecución de GUN make se divide en dos etapas.

  • La primera etapa: lea todos los archivos MAKE, incorpore todas las variables, reglas explícitas e implícitas,
    y establezca una lista estructural vinculada de dependencias entre todos los destinos y dependencias.
  1. Lea la lista de archivos MAKE definidos por la variable "MAKEFILES" uno por uno.
  2. Lea el archivo MAKE en el directorio de trabajo y busque en orden de acuerdo con el nombre del archivo: GNUmakefile,
    makefile, Makefile, lea el que se encuentre primero.
  3. Lea los archivos contenidos en el archivo MAKE del directorio de trabajo con el indicador "incluir" en secuencia.
  4. Buscar reconstruir todas las reglas del archivo MAKE se han leído (si hay un objetivo (objetivo) es cuando
    uno de los archivos MAKE antes de leer, esta regla se ejecuta reconstruir este archivo MAKE, para completar
    el primer paso en la re-ejecución de el comienzo).
  5. Inicialice los valores de las variables y expanda aquellas variables y funciones que necesitan expandirse inmediatamente, y
    bifurque según las condiciones preestablecidas .
  • La segunda etapa: Determine qué objetivos
    deben actualizarse de acuerdo con la lista enlazada de la estructura de dependencia y el objetivo final que se ha establecido en la primera etapa , y use las reglas correspondientes para reconstruir estos objetivos.
  1. Cree de forma recursiva una lista de dependencias basada en el objetivo final (predeterminado o especificado) y la dependencia.
  2. Ejecución de la lista de dependencias del objetivo final (el orden inverso al establecimiento de la lista de dependencias).
  3. Ejecute las reglas donde radica el objetivo final.

5 Ver reglas ocultas y variables ocultas

Salida a archivo, reglas, demasiadas variables.

make -p -f /dev/null | >> file

Después de verificar el CURDIR durante mucho tiempo, finalmente se encontró la variable MAKE

# environment
GDMSESSION = ubuntu
# environment
XMODIFIERS = @im=ibus
# makefile
CURDIR := /home/hedy/u-boot
# makefile
SHELL = /bin/sh
# environment
NM = arm-poky-linux-gnueabi-nm
...
# default
MAKE = $(MAKE_COMMAND)
...
# default
MAKE_COMMAND = make

5 reglas de modo

ARCH := $(CONFIG_SYS_ARCH:"%"=%)
CPU := $(CONFIG_SYS_CPU:"%"=%)

: "%" =% significa: eliminar las comillas "" de la variable CONFIG_SYS_ARCH

Supongo que te gusta

Origin blog.csdn.net/amwha/article/details/86351171
Recomendado
Clasificación