1
0
mirror of https://github.com/physwizz/a155-U-u1.git synced 2025-09-05 12:50:27 +00:00
Files
physwizz 99537be4e2 first
2024-03-11 06:53:12 +11:00

85 lines
1.8 KiB
Makefile

# SPDX-License-Identifier: GPL-2.0-only
ifneq ($(KERNELRELEASE),)
include Kbuild
else
# PATH
KROOT=$(shell expr match $(PWD) '\(.*/kernel-[0-9.]*/\)')
ROOT_DIR=$(realpath $(KROOT)/..)
OUT_DIR=$(PWD)/out
srctree=$(KROOT)
src=$(subst $(KROOT),,$(PWD))
# reference config file to fetch clang version
CONFIG=$(KROOT)build.config.common
CLANG_PREBUILT_BIN:=$(shell cat $(CONFIG) | grep CLANG_PREBUILT_BIN | cut -d'=' -f 2)
CLANG_PATH:=$(ROOT_DIR)/$(CLANG_PREBUILT_BIN:prebuilts-master%=prebuilts%)
#$(info CLANG_PREBUILT_BIN = $(CLANG_PREBUILT_BIN))
$(info CLANG_PATH = $(CLANG_PATH))
# Toolchain
TARGET_ARCH=arm64
CROSS_COMPILE:=aarch64-linux-gnu-
CROSS_COMPILE_COMPAT:=arm-linux-gnueabi-
CC=$(CLANG_PATH)/clang
LD=$(CLANG_PATH)/ld.lld
AR=$(CLANG_PATH)/llvm-ar
NM=$(CLANG_PATH)/llvm-nm
STRIP=$(CLANG_PATH)/llvm-strip
OBJCOPY=$(CLANG_PATH)/llvm-objcopy
OBJDUMP=$(CLANG_PATH)/llvm-objdump
READELF=$(CLANG_PATH)/llvm-readelf
HOSTCC=$(CLANG_PATH)/clang
HOSTAR=$(CLANG_PATH)/llvm-ar
HOSTLD=$(CLANG_PATH)/ld.lld
CFLAGS=-Wall LLVM=1 LLVM_IAS=1
### DEFINE ###
define kernel-make
+$(MAKE) -C $(KDIR) \
ARCH=$(TARGET_ARCH) \
CROSS_COMPILE=$(CROSS_COMPILE) \
CROSS_COMPILE_COMPAT=$(CROSS_COMPILE_COMPAT) \
CFLAGS=$(CFLAGS) \
CC=$(CC) \
LD=$(LD) \
AR=$(AR) \
STRIP=$(STRIP) \
OBJCOPY=$(OBJCOPY) \
OBJDUMP=$(OBJDUMP) \
READELF=$(READELF) \
HOSTCC=$(HOSTCC) \
HOSTAR=$(HOSTAR) \
HOSTLD=$(HOSTLD) \
M=$(PWD)
endef
.PHONY: all build clean check-env
all: check-env build install
build:
$(kernel-make) modules
install: build
$(kernel-make) modules_install INSTALL_MOD_STRIP=1 INSTALL_MOD_PATH=$(OUT_DIR)
clean:
$(kernel-make) clean
# clean *.lds
$(shell find -name "*.lds" -exec rm {} \;)
# clean out
$(shell rm -rf $(OUT_DIR))
check-env:
ifndef KDIR
$(error KDIR (prebuilt kernel path) is undefined)
endif
$(info prebuilt kernel = $(KDIR))
endif