Refactor the linux kernel compilation. Change-Id: Iea2e2c8a22a91bdd2e3f83cd3058426acec3eaba Signed-off-by: Marcello Sylvester Bauer <info@marcellobauer.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/30053 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Philipp Deppenwiese <zaolin.daisuki@gmail.com>
		
			
				
	
	
		
			76 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| ## This file is part of the coreboot project.
 | |
| ##
 | |
| ## Copyright (C) 2017 Facebook Inc.
 | |
| ## Copyright (C) 2018 9elements Cyber Security
 | |
| ##
 | |
| ## This program is free software; you can redistribute it and/or modify
 | |
| ## it under the terms of the GNU General Public License as published by
 | |
| ## the Free Software Foundation; version 2 of the License.
 | |
| ##
 | |
| ## This program is distributed in the hope that it will be useful,
 | |
| ## but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
| ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | |
| ## GNU General Public License for more details.
 | |
| ##
 | |
| 
 | |
| project_dir=linuxboot
 | |
| kernel_dir=$(project_dir)/kernel
 | |
| 
 | |
| unexport $(COREBOOT_EXPORTS)
 | |
| 
 | |
| all: linuxboot
 | |
| 
 | |
| u-root:
 | |
| 	$(MAKE) -f targets/u-root.mk
 | |
| 
 | |
| ifeq ($(CONFIG_LINUXBOOT_BUILD_INITRAMFS),y)
 | |
| ifeq ($(CONFIG_LINUXBOOT_UROOT),y)
 | |
| initramfs: u-root
 | |
| endif
 | |
| else
 | |
| ifneq ($(CONFIG_LINUXBOOT_INITRAMFS),)
 | |
| initramfs:
 | |
| 	if [[ ! -f "$(top)/$(CONFIG_LINUXBOOT_INITRAMFS)" ]]; then \
 | |
| 	echo "<< Linux initramfs '$(CONFIG_LINUXBOOT_INITRAMFS)' is missing. >>"; \
 | |
| 	exit 1; \
 | |
| 	fi
 | |
| endif
 | |
| endif
 | |
| 
 | |
| initramfs_compressed: initramfs
 | |
| ifeq ($(CONFIG_LINUXBOOT_INITRAMFS_COMPRESSION_XZ),y)
 | |
| 	xz --keep --force --check=crc32 --lzma2=dict=1MiB $(top)/$(CONFIG_LINUXBOOT_INITRAMFS)
 | |
| endif
 | |
| 
 | |
| ifeq ($(CONFIG_LINUXBOOT_COMPILE_KERNEL),y)
 | |
| ifeq ($(CONFIG_LINUXBOOT_ARCH),arm64)
 | |
| kernel: initramfs
 | |
| 	if [[ ! -f "$(top)/$(CONFIG_LINUXBOOT_DTB_FILE)" ]]; then \
 | |
| 	echo "<< Linux kernel devicetree is missing. >>"; \
 | |
| 	exit 1; \
 | |
| 	fi
 | |
| 	$(MAKE) -f targets/linux.mk
 | |
| else
 | |
| kernel:
 | |
| 	$(MAKE) -f targets/linux.mk
 | |
| endif
 | |
| else
 | |
| kernel:
 | |
| 	if [[ ! -f "$(top)/$(CONFIG_LINUXBOOT_KERNEL)" ]]; then \
 | |
| 	echo "<< Linux kernel '$(CONFIG_LINUXBOOT_KERNEL)' is missing. >>"; \
 | |
| 	exit 1; \
 | |
| 	fi
 | |
| endif
 | |
| 
 | |
| linuxboot: kernel initramfs_compressed
 | |
| 
 | |
| clean:
 | |
| 	if [ -d "$(kernel_dir)" ]; then rm -rf $(kernel_dir); fi
 | |
| 	rm -f $(project_dir)/u-root
 | |
| 	rm -f $(project_dir)/initramfs*
 | |
| 
 | |
| distclean:
 | |
| 	rm -rf $(project_dir)
 | |
| 
 | |
| .PHONY: linuxboot kernel initramfs_compressed initramfs u-root clean distclean
 |