Files
MilkV-Duo/osdrv/Makefile
2024-07-02 23:08:37 +08:00

85 lines
1.8 KiB
Makefile

SHELL=/bin/bash
-include $(BUILD_PATH)/.config
#
export CVIARCH_L := $(shell echo $(CVIARCH) | tr A-Z a-z)
#
export CHIP_ARCH_L := $(shell echo $(CHIP_ARCH) | tr A-Z a-z)
ifeq ($(KERNEL_DIR), )
$(info Please set KERNEL_DIR global variable!!)
endif
ifeq ($(INSTALL_DIR), )
INSTALL_DIR = ko
endif
CUR_DIR = $(PWD)
$(info ** [ KERNEL_DIR ] ** = $(KERNEL_DIR))
$(info ** [ INSTALL_DIR ] ** = $(INSTALL_DIR))
MAKE_EXT_KO_CP :=
ifneq (${FLASH_SIZE_SHRINK},y)
define MAKE_EXT_KO_CP
find $(1) -name '*.ko' -print -exec cp {} $(INSTALL_DIR)/3rd/ \;;
endef
endif
define MAKE_EXT_KO
( cd $(1) && $(MAKE) KERNEL_DIR=$(KERNEL_DIR) all -j$(shell nproc))
$(call MAKE_EXT_KO_CP, $(1))
endef
SUBDIRS += $(shell find ./extdrv -maxdepth 1 -mindepth 1 -type d | grep -v "git")
exclude_dirs =
SUBDIRS := $(filter-out $(exclude_dirs), $(SUBDIRS))
# prepare ko list
KO_LIST = wiegand-gpio linux_drives
OTHERS :=
ifeq (y, ${CONFIG_CP_EXT_WIRELESS})
KO_LIST += wireless
OTHERS += cp_ext_wireless
endif
ifeq (, ${CONFIG_NO_TP})
KO_LIST += tp
OTHERS += cp_ext_tp
endif
$(info ** [ KO_LIST ] ** = $(KO_LIST))
export CROSS_COMPILE=$(patsubst "%",%,$(CONFIG_CROSS_COMPILE_KERNEL))
export ARCH=$(patsubst "%",%,$(CONFIG_ARCH))
.PHONY : prepare clean all
all: prepare $(KO_LIST) $(OTHERS)
prepare:
@mkdir -p $(INSTALL_DIR)/3rd
tp:
@$(call MAKE_EXT_KO, extdrv/${@})
wireless:
@$(call MAKE_EXT_KO, extdrv/${@})
wiegand-gpio:
@$(call MAKE_EXT_KO, extdrv/${@})
linux_drives:
@$(call MAKE_EXT_KO, extdrv/Linux_Drivers)
cp_ext_wireless:
@find extdrv/wireless -name '*.ko' -print -exec cp {} $(INSTALL_DIR)/3rd/ \;
cp_ext_tp:
@find extdrv/tp -name '*.ko' -print -exec cp {} $(INSTALL_DIR)/3rd/ \;
clean:
@for subdir in $(SUBDIRS); do cd $$subdir && $(MAKE) clean && cd $(CUR_DIR); done
@rm -f $(INSTALL_DIR)/*.ko
@rm -f $(INSTALL_DIR)/3rd/*.ko