123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- TARGET=../dist/bootbootcb.elf
- # get build environment
- ifndef LIBCONFIG_PATH
- LIBCONFIG_PATH := ../../coreboot/payloads/libpayload
- ifeq ($(wildcard $(LIBCONFIG_PATH)/*),)
- LIBCONFIG_PATH := ../../../../libpayload
- endif
- endif
- LIBPAYLOAD_DIR=$(CURDIR)/libpayload
- XCOMPILE=$(LIBPAYLOAD_DIR)/libpayload.xcompile
- # build libpayload and put .config file in $(CURDIR) instead of ../libpayload
- # to avoid pollute the libpayload source directory and possible conflicts
- LPOPTS=obj="$(CURDIR)/build" DESTDIR="$(CURDIR)" DOTCONFIG="$(CURDIR)/.config"
- CFLAGS += -Wall -Wvla -Werror -Os -ffreestanding -nostdinc -nostdlib
- all: $(TARGET)
- $(LIBPAYLOAD_DIR):
- @cp lib.config $(LIBCONFIG_PATH)/.config
- $(MAKE) -C $(LIBCONFIG_PATH) $(LPOPTS) oldconfig
- $(MAKE) -C $(LIBCONFIG_PATH) $(LPOPTS)
- $(MAKE) -C $(LIBCONFIG_PATH) $(LPOPTS) install
- ifneq ($(strip $(wildcard libpayload)),)
- include $(XCOMPILE)
- LPGCC = CC="$(GCC_CC_arm64)" "$(LIBPAYLOAD_DIR)/bin/lpgcc"
- $(TARGET):
- $(LPGCC) $(CFLAGS) -o $(TARGET) bootboot.c
- else
- # If libpayload is not found, first build libpayload,
- # then do the make, this time it'll find libpayload
- # and generate the elf target
- $(TARGET): $(LIBPAYLOAD_DIR)
- $(MAKE) all
- endif
- clean:
- rm -f $(TARGET)
- distclean: clean
- rm -rf build libpayload .config .config.old
- .PHONY: all clean distclean
|