[U-Boot] U-Boot Makefile question
Michael Lawnick
nospam_lawnick at gmx.de
Tue Feb 17 16:03:03 CET 2009
Steven Zedeck said the following:
> For example, I'm having problems understanding what this means in a
> Makefile:
>
> COBJS-$(CONFIG_HAS_DATAFLASH) += at45.o
> COBJS-$(CONFIG_FLASH_CFI_DRIVER) += cfi_flash.o
> COBJS-$(CONFIG_HAS_DATAFLASH) += dataflash.o
> COBJS-$(CONFIG_FLASH_CFI_LEGACY) += jedec_flash.o
> COBJS-$(CONFIG_MW_EEPROM) += mw_eeprom.o
>
> COBJS := $(COBJS-y)
> SRCS := $(COBJS:.o=.c)
> OBJS := $(addprefix $(obj),$(COBJS))
>
> This is from drivers/mtd/Makefile.
>
> How does COBJS get initially defined upon entry into the Makefile?
>
> Does at45.o get added to the list of objects to be built only if the
> CONFIG_HAS_DATAFLASH flag is set?
>
> What does the "-" sign mean before the "$" ?
>
On start of compile, the file autoconf.mk is generated along your board
configuration #defines in board/<board>/<board-name>.h
It looks like this:
CONFIG_PPC=y
CONFIG_BOARD_EARLY_INIT_F=y
CONFIG_BOARD_EARLY_INIT_R=y
CONFIG_SYS_CLK_FREQ=100000000
CONFIG_CMD_ITEST=y
...
autoconf.mk is then used as a predefinition file for the rules of your
Makefile. So
COBJS-$(CONFIG_HAS_DATAFLASH) += at45.o
evaluates to either
COBJS-y += at45.o
or
COBJS- += at45.o
or
COBJS-n += at45.o
> What does this mean? COBJS := $(COBJS-y)
This is the assignment of the dynamically built string to the variable
that is then used for the gcc command.
HTH
--
Michael
More information about the U-Boot
mailing list