Files
SDK_SG200x_V2/osdrv/Makefile
sophgo-forum-service 80d4596c1b osdrv: weekly rls 2024.05.22
- 3fa71d3, [feat](saradc):Add pm api.
- cfc34b, [fix](pwm):Change pwm setting don't need to disable pwm.

Change-Id: If0f2ef94f163fd534ddcd8a07444081e7bc0fb5a
2024-05-31 14:58:30 +08:00

205 lines
4.3 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)
INTERDRV_PATH := interdrv/$(shell echo $(MW_VER))
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))
export INTRERDRV_FLAGS :=
ifeq ($(CONFIG_BUILD_FOR_DEBUG), y)
INTRERDRV_FLAGS += -DDRV_DEBUG -DDRV_TEST
endif
define MAKE_KO
( cd $(1) && $(MAKE) KERNEL_DIR=$(KERNEL_DIR) all -j$(shell nproc))
if [ $$(find $(1) -name '*.ko' | wc -l) -gt 0 ]; then \
cd $(1) && cp -f *.ko $(INSTALL_DIR); \
fi
endef
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 ./interdrv -maxdepth 2 -mindepth 2 -type d | grep -v "git")
SUBDIRS += $(shell find ./extdrv -maxdepth 1 -mindepth 1 -type d | grep -v "git")
exclude_dirs = ./interdrv/v1/include ./interdrv/v2/include
SUBDIRS := $(filter-out $(exclude_dirs), $(SUBDIRS))
# prepare ko list
KO_LIST = base vcodec jpeg pwm rtc wdt tpu mon clock_cooling saradc wiegand wiegand-gpio
ifneq ($(CONFIG_USB_OSDRV_CVITEK_GADGET),)
KO_LIST += usb
endif
ifeq ($(CHIP_ARCH), $(filter $(CHIP_ARCH), CV183X CV182X))
KO_LIST += vip
KO_LIST += spacc
FB_DEP = vip
endif
ifeq ($(CVIARCH), $(filter $(CVIARCH), CV181X))
KO_LIST += sys vi snsr_i2c cif vpss dwa rgn vo rtos_cmdqu fast_image cvi_vc_drv ive
BASE_DEP = sys
FB_DEP = vpss
else ifeq ($(CVIARCH), $(filter $(CVIARCH), CV180X))
KO_LIST += sys vi snsr_i2c cif vpss dwa rgn rtos_cmdqu fast_image cvi_vc_drv
BASE_DEP = sys
FB_DEP = vpss
endif
ifeq (, ${CONFIG_NO_FB})
KO_LIST += fb
endif
$(info ** [ KO_LIST ] ** = $(KO_LIST))
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
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
# osdrv/interdrv
fb: base $(FB_DEP)
@$(call MAKE_KO, ${INTERDRV_PATH}/${@})
base: $(BASE_DEP)
@$(call MAKE_KO, ${INTERDRV_PATH}/${@})
vcodec:
@$(call MAKE_KO, ${INTERDRV_PATH}/${@})
usb:
@$(call MAKE_KO, ${INTERDRV_PATH}/${@})
fast_image: rtos_cmdqu
@$(call MAKE_KO, ${INTERDRV_PATH}/${@})
jpeg:
@$(call MAKE_KO, ${INTERDRV_PATH}/${@})
pwm:
@$(call MAKE_KO, ${INTERDRV_PATH}/${@})
wdt:
@$(call MAKE_KO, ${INTERDRV_PATH}/${@})
spacc:
@$(call MAKE_KO, ${INTERDRV_PATH}/${@})
rtc:
@$(call MAKE_KO, ${INTERDRV_PATH}/${@})
vip: base
@$(call MAKE_KO, ${INTERDRV_PATH}/${@})
tpu:
@$(call MAKE_KO, ${INTERDRV_PATH}/${@})
mon:
@$(call MAKE_KO, ${INTERDRV_PATH}/${@})
clock_cooling:
@$(call MAKE_KO, ${INTERDRV_PATH}/${@})
saradc:
@$(call MAKE_KO, ${INTERDRV_PATH}/${@})
wiegand:
@$(call MAKE_KO, ${INTERDRV_PATH}/${@})
vi: base
@$(call MAKE_KO, ${INTERDRV_PATH}/${@})
snsr_i2c: base
@$(call MAKE_KO, ${INTERDRV_PATH}/${@})
cif: base
@$(call MAKE_KO, ${INTERDRV_PATH}/${@})
sys:
@$(call MAKE_KO, ${INTERDRV_PATH}/${@})
vpss: base
@$(call MAKE_KO, ${INTERDRV_PATH}/${@})
dwa: base
@$(call MAKE_KO, ${INTERDRV_PATH}/${@})
rgn: base vpss
@$(call MAKE_KO, ${INTERDRV_PATH}/${@})
vo: base
@$(call MAKE_KO, ${INTERDRV_PATH}/${@})
ive:
@$(call MAKE_KO, ${INTERDRV_PATH}/${@})
cvi_vc_drv: sys base vcodec jpeg
@$(call MAKE_KO, ${INTERDRV_PATH}/${@})
rtos_cmdqu:
@$(call MAKE_KO, ${INTERDRV_PATH}/${@})
# osdrv/extdrv
tp:
@$(call MAKE_EXT_KO, extdrv/${@})
wireless:
@$(call MAKE_EXT_KO, extdrv/${@})
wiegand-gpio:
@$(call MAKE_EXT_KO, extdrv/${@})
gyro_i2c:
@$(call MAKE_EXT_KO, extdrv/${@})
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