payloads/external/Makefile: Add missing dependency
[coreboot.git] / payloads / external / Makefile.inc
blob881b4e45b4ea55a04736fd4a564d77ed3a7b23ef
1 ################################################################################
2 ##
3 ## This file is part of the coreboot project.
4 ##
5 ## Copyright (C) 2009-2010 coresystems GmbH
6 ## Copyright (C) 2015 Google Inc.
7 ##
8 ## This program is free software; you can redistribute it and/or modify
9 ## it under the terms of the GNU General Public License as published by
10 ## the Free Software Foundation; version 2 of the License.
12 ## This program is distributed in the hope that it will be useful,
13 ## but WITHOUT ANY WARRANTY; without even the implied warranty of
14 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 ## GNU General Public License for more details.
18 ######################################################################
19 # set up payload config and version files for later inclusion
20 ifeq ($(CONFIG_PAYLOAD_SEABIOS),y)
21 PAYLOAD_CONFIG=payloads/external/SeaBIOS/seabios/.config
22 PAYLOAD_VERSION=payloads/external/SeaBIOS/seabios/out/autoversion.h
23 endif
24 ifeq ($(CONFIG_PAYLOAD_FILO),y)
25 PAYLOAD_CONFIG=payloads/external/FILO/filo/.config
26 PAYLOAD_VERSION=payloads/external/FILO/filo/build/version.h
27 endif
28 ifeq ($(CONFIG_PAYLOAD_DEPTHCHARGE),y)
29 PAYLOAD_CONFIG=payloads/external/depthcharge/depthcharge/.config
30 $(PAYLOAD_CONFIG): payloads/external/depthcharge/depthcharge/build/depthcharge.elf
31 #TODO: Figure out version
32 endif
34 ifeq ($(CONFIG_PAYLOAD_LINUX),y)
35 ifneq ($(strip $(call strip_quotes,$(CONFIG_LINUX_COMMAND_LINE))),)
36       ADDITIONAL_PAYLOAD_CONFIG+=-C $(CONFIG_LINUX_COMMAND_LINE)
37 endif
38 ifneq ($(strip $(call strip_quotes,$(CONFIG_LINUX_INITRD))),)
39       ADDITIONAL_PAYLOAD_CONFIG+=-I $(CONFIG_LINUX_INITRD)
40 endif
41 endif
42 ifneq ($(strip $(call strip_quotes,$(CONFIG_PAYLOAD_OPTIONS))),)
43       ADDITIONAL_PAYLOAD_CONFIG+=$(strip $(call strip_quotes,$(CONFIG_PAYLOAD_OPTIONS)))
44 endif
46 cbfs-files-y += $(CONFIG_CBFS_PREFIX)/payload
47 $(CONFIG_CBFS_PREFIX)/payload-file := $(CONFIG_PAYLOAD_FILE)
48 ifeq ($(CONFIG_PAYLOAD_IS_FLAT_BINARY),y)
49 $(CONFIG_CBFS_PREFIX)/payload-type := flat-binary
50 else
51 $(CONFIG_CBFS_PREFIX)/payload-type := payload
52 endif
53 $(CONFIG_CBFS_PREFIX)/payload-compression := $(CBFS_PAYLOAD_COMPRESS_FLAG)
54 $(CONFIG_CBFS_PREFIX)/payload-options := $(ADDITIONAL_PAYLOAD_CONFIG)
56 cbfs-files-$(CONFIG_INCLUDE_CONFIG_FILE) += payload_config
57 payload_config-file := $(PAYLOAD_CONFIG)
58 payload_config-type := raw
60 cbfs-files-$(CONFIG_INCLUDE_CONFIG_FILE) += payload_revision
61 payload_revision-file := $(PAYLOAD_VERSION)
62 payload_revision-type := raw
64 cbfs-files-$(CONFIG_GRUB2_INCLUDE_RUNTIME_CONFIG_FILE) += etc/grub.cfg
65 etc/grub.cfg-file := $(CONFIG_GRUB2_RUNTIME_CONFIG_FILE)
66 etc/grub.cfg-type := raw
67 etc/grub.cfg-required := the GRUB runtime configuration file ($(CONFIG_GRUB2_RUNTIME_CONFIG_FILE))
69 # SeaBIOS
71 SEABIOS_CC_OFFSET=$(if $(filter %ccache,$(HOSTCC)),2,1)
72 payloads/external/SeaBIOS/seabios/out/bios.bin.elf seabios: $(DOTCONFIG)
73         $(MAKE) -C payloads/external/SeaBIOS \
74                         HOSTCC="$(HOSTCC)" \
75                         CC=$(word $(SEABIOS_CC_OFFSET),$(CC_x86_32)) \
76                         CFLAGS="$(patsubst $(word $(SEABIOS_CC_OFFSET),$(CC_x86_32))%,,$(wordlist $(SEABIOS_CC_OFFSET),9999,$(CC_x86_32)))" \
77                         LD=$(word 1,$(LD_x86_32)) LDFLAGS="$(patsubst $(word 1,$(LD_x86_32))%,,$(LD_x86_32))" \
78                         OBJDUMP="$(OBJDUMP_x86_32)" \
79                         OBJCOPY="$(OBJCOPY_x86_32)" STRIP="$(STRIP_x86_32)" \
80                         AS="$(AS_x86_32)" IASL="$(IASL)" \
81                         CONFIG_SEABIOS_MASTER=$(CONFIG_SEABIOS_MASTER) \
82                         CONFIG_SEABIOS_STABLE=$(CONFIG_SEABIOS_STABLE) \
83                         CONFIG_SEABIOS_REVISION=$(CONFIG_SEABIOS_REVISION) \
84                         CONFIG_SEABIOS_REVISION_ID=$(CONFIG_SEABIOS_REVISION_ID) \
85                         CONFIG_PAYLOAD_CONFIGFILE=$(CONFIG_PAYLOAD_CONFIGFILE) \
86                         CONFIG_SEABIOS_THREAD_OPTIONROMS=$(CONFIG_SEABIOS_THREAD_OPTIONROMS) \
87                         CONFIG_SEABIOS_VGA_COREBOOT=$(CONFIG_SEABIOS_VGA_COREBOOT) \
88                         CONFIG_DRIVERS_UART_8250IO=$(CONFIG_DRIVERS_UART_8250IO) \
89                         CONFIG_DRIVERS_UART_8250MEM=$(CONFIG_DRIVERS_UART_8250MEM) \
90                         CONFIG_HUDSON_UART=$(CONFIG_HUDSON_UART) \
91                         CONFIG_CONSOLE_SERIAL=$(CONFIG_CONSOLE_SERIAL) \
92                         CONFIG_TTYS0_BASE=$(CONFIG_TTYS0_BASE) \
93                         CONFIG_SEABIOS_DEBUG_LEVEL=$(CONFIG_SEABIOS_DEBUG_LEVEL)
95 payloads/external/SeaBIOS/seabios/out/vgabios.bin: seabios
96 payloads/external/SeaBIOS/seabios/.config: payloads/external/SeaBIOS/seabios/out/bios.bin.elf
97 payloads/external/SeaBIOS/seabios/out/autoversion.h: payloads/external/SeaBIOS/seabios/out/bios.bin.elf
99 # add a SeaBIOS bootorder file
100 ifneq ($(strip $(CONFIG_SEABIOS_BOOTORDER_FILE)),)
101 cbfs-files-y += bootorder
102 bootorder-file := $(strip $(CONFIG_SEABIOS_BOOTORDER_FILE))
103 bootorder-type := raw
104 endif
106 # Depthcharge
108 payloads/external/depthcharge/depthcharge/build/depthcharge.elf depthcharge: $(DOTCONFIG) $(CBFSTOOL)
109         $(MAKE) -C payloads/external/depthcharge \
110                 BOARD=$(call ws_to_under,$(call strip_quotes,$(call tolower,$(CONFIG_MAINBOARD_PART_NUMBER)))) \
111                 MFLAGS= MAKEFLAGS= \
112                 DEPTHCHARGE_MASTER=$(CONFIG_DEPTHCHARGE_MASTER) \
113                 DEPTHCHARGE_STABLE=$(CONFIG_DEPTHCHARGE_STABLE) \
114                 DEPTHCHARGE_REVISION=$(CONFIG_DEPTHCHARGE_REVISION) \
115                 DEPTHCHARGE_REVISION_ID=$(CONFIG_DEPTHCHARGE_REVISION_ID) \
116                 OVERRIDE_DEFCONFIG=$(CONFIG_LP_DEFCONFIG_OVERRIDE)
118 # Tianocore
120 payloads/external/tianocore/tianocore/Build/UEFIPAYLOAD.fd tianocore: $(DOTCONFIG)
121         $(MAKE) -C payloads/external/tianocore all \
122                 HOSTCC="$(HOSTCC)" \
123                 CC="$(HOSTCC)" \
124                 CONFIG_TIANOCORE_MASTER=$(CONFIG_TIANOCORE_MASTER) \
125                 CONFIG_TIANOCORE_STABLE=$(CONFIG_TIANOCORE_STABLE) \
126                 CONFIG_TIANOCORE_REVISION=$(CONFIG_TIANOCORE_REVISION) \
127                 CONFIG_TIANOCORE_REVISION_ID=$(CONFIG_TIANOCORE_REVISION_ID) \
128                 CONFIG_TIANOCORE_DEBUG=$(CONFIG_TIANOCORE_DEBUG) \
129                 CONFIG_TIANOCORE_TARGET_IA32=$(CONFIG_TIANOCORE_TARGET_IA32) \
130                 GCC_CC_x86_32=$(GCC_CC_x86_32) \
131                 GCC_CC_x86_64=$(GCC_CC_x86_64) \
132                 GCC_CC_arm=$(GCC_CC_arm) \
133                 GCC_CC_arm64=$(GCC_CC_arm64) \
134                 OBJCOPY_x86_32=$(OBJCOPY_x86_32) \
135                 OBJCOPY_x86_64=$(OBJCOPY_x86_64) \
136                 OBJCOPY_arm=$(OBJCOPY_arm) \
137                 OBJCOPY_arm64=$(OBJCOPY_arm64) \
138                 MFLAGS= MAKEFLAGS=
140 # FILO
142 filo:
143         $(MAKE) -C payloads/external/FILO \
144                         HOSTCC="$(HOSTCC)" \
145                         CC="$(CC_x86_32)" LD="$(LD_x86_32)" OBJDUMP="$(OBJDUMP_x86_32)" \
146                         OBJCOPY="$(OBJCOPY_x86_32)" STRIP="$(STRIP_x86_32)" \
147                         CONFIG_FILO_MASTER=$(CONFIG_FILO_MASTER) \
148                         CONFIG_FILO_STABLE=$(CONFIG_FILO_STABLE)
150 payloads/external/FILO/filo/build/filo.elf: filo
151 payloads/external/FILO/filo/.config: filo
152 payloads/external/FILO/filo/build/version.h: filo
154 # Grub
156 grub2: $(obj)/config.h
157         $(MAKE) -C payloads/external/GRUB2 \
158                         HOSTCC="$(HOSTCC)" \
159                         CC="$(CC_x86_32)" LD="$(LD_x86_32)" \
160                         OBJCOPY="$(OBJCOPY_x86_32)" STRIP="$(STRIP_x86_32)" \
161                         CONFIG_DEP="$(abspath $(obj)/config.h)" \
162                         CONFIG_GRUB2_STABLE=$(CONFIG_GRUB2_STABLE) \
163                         CONFIG_GRUB2_MASTER=$(CONFIG_GRUB2_MASTER) \
164                         CONFIG_GRUB2_REVISION=$(CONFIG_GRUB2_REVISION) \
165                         CONFIG_GRUB2_REVISION_ID=$(CONFIG_GRUB2_REVISION_ID) \
166                         CONFIG_GRUB2_EXTRA_MODULES=$(CONFIG_GRUB2_EXTRA_MODULES)
168 payloads/external/GRUB2/grub2/build/default_payload.elf: grub2
170 # U-Boot
172 payloads/external/U-Boot/u-boot/u-boot-dtb.bin u-boot: $(DOTCONFIG)
173         $(MAKE) -C payloads/external/U-Boot \
174                         CONFIG_UBOOT_MASTER=$(CONFIG_UBOOT_MASTER) \
175                         CONFIG_UBOOT_STABLE=$(CONFIG_UBOOT_STABLE)
177 # TINT
179 payloads/external/tint/tint/tint.elf tint:
180         $(MAKE) -C payloads/external/tint
182 cbfs-files-$(CONFIG_TINT_SECONDARY_PAYLOAD) += img/tint
183 img/tint-file := payloads/external/tint/tint/tint.elf
184 img/tint-type := payload
186 # Memtest86+
188 cbfs-files-$(CONFIG_MEMTEST_SECONDARY_PAYLOAD) += img/memtest
189 img/memtest-file := payloads/external/Memtest86Plus/memtest86plus/memtest
190 img/memtest-type := payload
192 ifeq ($(CONFIG_CONSOLE_SERIAL)$(CONFIG_DRIVERS_UART_8250IO),yy)
193         MEMTEST_SERIAL_OPTIONS=SERIAL_CONSOLE_DEFAULT=1 \
194                 SERIAL_TTY=$(CONFIG_UART_FOR_CONSOLE) \
195                 SERIAL_BAUD_RATE=$(CONFIG_TTYS0_BAUD)
196 endif
198 payloads/external/Memtest86Plus/memtest86plus/memtest: $(DOTCONFIG)
199         $(MAKE) -C payloads/external/Memtest86Plus all \
200                 CC="$(CC_x86_32)" \
201                 LD="$(LD_x86_32)" \
202                 OBJCOPY="$(OBJCOPY_x86_32)" \
203                 AS="$(AS_x86_32)" \
204                 CONFIG_MEMTEST_MASTER=$(CONFIG_MEMTEST_MASTER) \
205                 CONFIG_MEMTEST_STABLE=$(CONFIG_MEMTEST_STABLE) \
206                 $(MEMTEST_SERIAL_OPTIONS) \
207                 MFLAGS= MAKEFLAGS=
209 # iPXE
211 PXE_ROM_PCI_ID:=$(subst $(comma),,$(CONFIG_PXE_ROM_ID))
213 ifeq ($(CONFIG_PXE_ROM),y)
214 PXE_ROM_FILE:=$(CONFIG_PXE_ROM_FILE)
215 endif
216 ifeq ($(CONFIG_BUILD_IPXE),y)
217 PXE_ROM_FILE:=payloads/external/iPXE/ipxe/ipxe.rom
218 endif
220 ifeq ($(CONFIG_CONSOLE_SERIAL)$(CONFIG_DRIVERS_UART_8250IO),yy)
221 IPXE_UART=COM$(call int-add,$(CONFIG_UART_FOR_CONSOLE) 1)
222 endif
224 cbfs-files-$(CONFIG_PXE_ROM)$(CONFIG_BUILD_IPXE) += pci$(CONFIG_PXE_ROM_ID).rom
225 pci$(CONFIG_PXE_ROM_ID).rom-file := $(PXE_ROM_FILE)
226 pci$(CONFIG_PXE_ROM_ID).rom-type := raw
228 payloads/external/iPXE/ipxe/ipxe.rom ipxe: $(DOTCONFIG)
229         $(MAKE) -C payloads/external/iPXE all \
230         CROSS_COMPILE="$(CROSS_COMPILE_$(ARCH-ramstage-y))" \
231         PXE_ROM_PCI_ID=$(PXE_ROM_PCI_ID) \
232         CONFIG_IPXE_MASTER=$(CONFIG_IPXE_MASTER) \
233         CONFIG_IPXE_STABLE=$(CONFIG_IPXE_STABLE) \
234         CONSOLE_SERIAL=$(CONFIG_CONSOLE_SERIAL)$(CONFIG_DRIVERS_UART_8250IO) \
235         IPXE_UART=$(IPXE_UART) \
236         CONFIG_TTYS0_BAUD=$(CONFIG_TTYS0_BAUD) \
237         MFLAGS= MAKEFLAGS=