CONFIG_SHELL := sh
KBUILD_DEFCONFIG := configs/defconfig
UNAME_RELEASE := $(shell uname -r)
-HAVE_DOTCONFIG := $(wildcard .config)
+DOTCONFIG ?= .config
+KCONFIG_CONFIG = $(DOTCONFIG)
+export KCONFIG_CONFIG
+HAVE_DOTCONFIG := $(wildcard $(DOTCONFIG))
MAKEFLAGS += -rR --no-print-directory
# Make is silent per default, but 'make V=1' will show all compiler calls.
strip_quotes = $(subst ",,$(subst \",,$(1)))
-ARCHDIR-$(CONFIG_ARCH_X86) := i386
+ARCHDIR-$(CONFIG_ARCH_X86) := x86
ARCHDIR-$(CONFIG_ARCH_POWERPC) := ppc
MAINBOARDDIR=$(call strip_quotes,$(CONFIG_MAINBOARD_DIR))
BUILD-y := src/lib src/boot src/console src/devices src/southbridge src/northbridge src/superio src/drivers
BUILD-y += util/cbfstool util/sconfig
BUILD-$(CONFIG_ARCH_X86) += src/pc80
+BUILD-y += src/vendorcode
ifneq ($(CONFIG_LOCALVERSION),"")
COREBOOT_EXTRA_VERSION := -$(call strip_quotes,$(CONFIG_LOCALVERSION))
romstage-srcs:=
driver-srcs:=
smm-srcs:=
+cbfs-files:=
ramstage-objs:=
romstage-objs:=
includemakefiles= \
$(foreach type,$(2), $(eval $(type)-y:=)) \
$(eval subdirs-y:=) \
+ $(eval cbfs-files-y:=) \
$(eval -include $(1)) \
$(foreach type,$(2), \
$(eval $(type)-srcs+= \
$$(subst $(top)/,, \
$$(abspath $$(addprefix $(dir $(1)),$$($(type)-y)))))) \
+ $(foreach file,$(cbfs-files-y), \
+ $(if $(wildcard $(dir $(1))$(file)), \
+ $(eval tmp-cbfs-file:= $(wildcard $(dir $(1))$(file))), \
+ $(eval tmp-cbfs-file:= $(file))) \
+ $(eval cbfs-files += $(tmp-cbfs-file)|$$($(file)-name)|$$($(file)-type)|$$($(file)-position)) \
+ $(eval $(file)-name:=) \
+ $(eval $(file)-type:=) \
+ $(eval $(file)-position:=)) \
$(eval subdirs+=$$(subst $(CURDIR)/,,$$(abspath $$(addprefix $(dir $(1)),$$(subdirs-y)))))
# For each path in $(subdirs) call includemakefiles
$(obj)/$(1).ramstage.o: src/$(1).asl
@printf " IASL $$(subst $(top)/,,$$(@))\n"
$(CPP) -D__ACPI__ -P -include $(abspath $(obj)/config.h) -I$(src) -I$(src)/mainboard/$(MAINBOARDDIR) $$< -o $$(basename $$@).asl
- iasl -p $$(obj)/$(1) -tc $$(basename $$@).asl > $$(basename $$@).asl.out
+ iasl -p $$(obj)/$(1) -tc $$(basename $$@).asl
mv $$(obj)/$(1).hex $$(basename $$@).c
$(CC) $$(CFLAGS) $$(if $$(subst dsdt,,$$(basename $$(notdir $(1)))), -DAmlCode=AmlCode_$$(basename $$(notdir $(1)))) -c -o $$@ $$(basename $$@).c
# keep %.o: %.c rule from catching the temporary .c file after a make clean
@echo allsrcs=$(allsrcs)
@echo DEPENDENCIES=$(DEPENDENCIES)
@echo LIBGCC_FILE_NAME=$(LIBGCC_FILE_NAME)
+ @echo cbfs-files:='$(cbfs-files)'
printcrt0s:
@echo crt0s=$(crt0s)
rm -f $(obj)/mainboard/$(MAINBOARDDIR)/bootblock.* $(obj)/mainboard/$(MAINBOARDDIR)/dsdt.*
rm -f $(obj)/cpu/x86/smm/smm_bin.c $(obj)/cpu/x86/smm/smm.* $(obj)/cpu/x86/smm/smm
rmdir -p $(alldirs) 2>/dev/null >/dev/null || true
+ $(MAKE) -C payloads/external/SeaBIOS clean
clean: clean-for-update
rm -f $(obj)/coreboot* .ccwrap
update:
dongle.py -c /dev/term/1 $(obj)/coreboot.rom EOF
+lint:
+ FAILED=0; LINTLOG=`mktemp`; \
+ for script in util/lint/lint-*; do \
+ echo; echo `basename $$script`; \
+ grep "^# DESCR:" $$script | sed "s,.*DESCR: *,," ; \
+ echo ========; \
+ $$script > $$LINTLOG; \
+ if [ `wc -l $$LINTLOG | cut -d' ' -f1` -eq 0 ]; then \
+ printf "success\n\n"; \
+ else \
+ echo test failed: ; \
+ cat $$LINTLOG; \
+ rm -f $$LINTLOG; \
+ FAILED=$$(( $$FAILED + 1 )); \
+ fi; \
+ echo ========; \
+ done; \
+ test $$FAILED -eq 0 || { echo "ERROR: $$FAILED test(s) failed." && exit 1; }; \
+ rm -f $$LINTLOG
+
# This include must come _before_ the pattern rules below!
# Order _does_ matter for pattern rules.
include util/kconfig/Makefile