include qnx_tools_path.mak
include soc_configs.mk
include psdk_qnx_build.mk

.PHONY: all clean clean_all scrub
.PHONY: help print_build_vars psdk_qnx_version
.PHONY: qnx_libs qnx_libs_clean
.PHONY: qnx_bins qnx_bins_clean
.PHONY: qnx_codec qnx_codec_clean
.PHONY: examples examples_clean
.PHONY: unit_test unit_test_clean
.PHONY: qnx_codec_tests qnx_codec_tests_clean
.PHONY: utils utils_clean
.PHONY: bsp bsp_clean
.PHONY: pdk_deps pdk_deps_clean
.PHONY: sbl_echo_test sbl_echo_test_clean
.PHONY: sbl_echo_test_hs sbl_echo_test_clean_hs
.PHONY: sbl_echo_test_safertos sbl_echo_test_safertos_hs
.PHONY: echo_test_fw echo_test_fw_safertos echo_test_fw_clean
.PHONY: sbl_ethfw sbl_ethfw_clean
.PHONY: sbl_ethfw_hs sbl_ethfw_clean_hs
.PHONY: sbl_ethfw_safertos sbl_ethfw_safertos_hs
.PHONY: ethfw ethfw_safertos ethfw_clean
.PHONY: qnx_fs_create qnx_fs_clean
.PHONY: qnx_fs_copy_spl_uboot
.PHONY: qnx_fs_unit_test
.PHONY: sbl_echo_test_ospi sbl_echo_test_ospi_hs
.PHONY: sbl_ethfw_ospi sbl_ethfw_ospi_hs
.PHONY: sbl_echo_test_ospi_flashing sbl_echo_test_ospi_flashing_hs
.PHONY: sbl_ethfw_ospi_flashing sbl_ethfw_ospi_flashing_hs
.PHONY: qnx_prep_sdk qnx_spl_create_copy
.PHONY: qnx_vision_apps_create_copy qnx_vision_apps_hs_create_copy
.PHONY: qnx_sbl_echo_create_copy qnx_sbl_echo_hs_create_copy
.PHONY: qnx_tar_built_filesystems
.PHONY: qnx_create_all_platform_packages
.PHONY: dt-header dt-header-clean

ifeq ($(QNX_SDP_VERSION),$(filter $(QNX_SDP_VERSION), 710))
.PHONY: qnx_sbl_ethfw_create_copy qnx_sbl_ethfw_hs_create_copy
endif

## Supported PROFILE -> release, debug, all
export PROFILE ?= release

ifeq ($(BOARD_IS_SUPPORTED), false)
    $(error Unsupported BOARD enviornment variable! BOARD=$(BOARD), Supported BOARD are $(SUPPORTED_BOARDS). Please export one of the supported boards.)
endif

export PLATFORM = aarch64le
export PSDK_QNX_VERSION_REL = PSDKQNX_11_02_02
export PSDK_QNX_TAGID ?= QNX$(QNX_SDP_VERSION)_$(BOARD)

## flag to denote if it is a vision app build
export VISION_APPS_BUILD_FLAGS_MAK ?=0

ifeq ($(UNIT_TEST_BUILD_ENABLED), true)
	export UNIT_TEST_ENABLED = 1
else
	export UNIT_TEST_ENABLED = 0
endif

export psdkqa_dir_index := $(shell python -c 'print("$(PSDK_QNX_PATH)".split("/").index("psdkqa") - 1)')

####################
# help
####################
help:
	### Important build env varibles set:
	#
	# PROFILE is $(PROFILE)
	# 	Supported build PROFILE options for RTOS binaries are release (Default), debug, all
	# BOARD is $(BOARD)
	# 	Supported BOARD options are $(SUPPORTED_BOARDS)
	# SOC is $(SOC)
	# 	Supported SOC options are $(SUPPORTED_SOCS)
	# VISION_APPS_BUILD_FLAGS_MAK is $(VISION_APPS_BUILD_FLAGS_MAK)
	# 	Use Vision Apps make build flag ## 0 (Default), 1
	#
	### Use below make targets to build SDK and/or different components with the SDK
	#
	# make help                  # Show supported makefile target's
	# make print_build_vars      # Print the make environment variables being used
	# make all                   # Build all PSDK QNX components (qnx_libs qnx_bins qnx_codec bsp examples qnx_codec_tests utils)
	# make clean                 # Clean all PSDK QNX components. Same as "make scrub"
	# make clean_all             # Delete all generated files and folders in SDK including PSDK RTOS binaries.
	# make scrub                 # Delete all generated files and folders in SDK including PSDK RTOS binaries.
	#
	# make qnx_fs_create         # Install PSDK QNX binaries & libraries to the local stage folder
	# make qnx_fs_copy_spl_uboot # Install spl-uboot bootloader  to the local stage folder
	# make qnx_fs_clean          # Cleanup the local stage folder
	#
	# make bsp                   # Build QNX BSP
	# make bsp_clean             # Clean QNX BSP
	#
	# make qnx_libs              # Build QNX PDK libraries
	# make qnx_libs_clean        # Clean QNX PDK libraries
	#
	# make pdk_deps              # Generate the dependencies for pdk
	# make pdk_deps_clean        # Clean the files generated for pdk dependencies
	#
	# make qnx_bins              # Build PSDK QNX binaries (DEVNP, RMs)
	# make qnx_bins_clean        # Clean PSDK QNX binaries
	#
	# make examples              # Build PSDK QNX examples
	# make examples_clean        # Clean PSDK QNX examples
	#
	# make unit_test             # Build PSDK QNX unit tests
	# make unit_test_clean       # Clean PSDK QNX unit tests
	#
	# make utils                 # Build PSDK QNX utils (k3conf)
	# make utils_clean           # Clean PSDK QNX utils
	#
	# make qnx_codec             # Build PSDK QNX codec binary/libries
	# make qnx_codec_clean       # Clean PSDK QNX codec binary/libries
	# make qnx_codec_tests       # Build PSDK QNX codec tests
	# make qnx_codec_tests_clean # Clean PSDK QNX codec tests
	#
	# make ethfw                 # Build QNX version of EthFW remote core freertos images that can be use with Spl+Uboot
	# make ethfw_safertos        # Build QNX version of EthFW remote core safertos images that can be use with Spl+Uboot
	# make ethfw_clean           # Clean QNX version of EthFW remote core images
	# make echo_test_fw          # Build QNX version of IPC echo test remote core freertos images that can be use with Spl+Uboot
	# make echo_test_fw_safertos # Build QNX version of IPC echo test remote core safertos images that can be use with Spl+Uboot
	# make echo_test_fw_clean    # Clean QNX version of IPC echo test remote core images
	#
	### Use below make targets to build --> SBL + Boot image
	### NOTE: Need to call "make all" and "make qnx_fs_create" before call below:
	#
	# make sbl_echo_test                      # Build SBL + BootAPP + Echo test firmware freertos images + A72 App images
	# make sbl_echo_test_safertos             # Build SBL + BootAPP + Echo test firmware safertos images + A72 App images
	# make sbl_echo_test_clean                # Clean SBL + BootAPP + Echo test firmware freertos images + A72 App images
	# make sbl_ethfw                          # Build SBL + BootAPP + EthFw firmware freertos images + A72 App images
	# make sbl_ethfw_safertos                 # Build SBL + BootAPP + EthFw firmware safertos images + A72 App images
	# make sbl_ethfw_clean                    # Clean SBL + BootAPP + EthFw firmware freertos images + A72 App images
	# make sbl_echo_test_hs                   # Build SBL + BootAPP + Echo test firmware freertos images + A72 App images (Signed for HS device)
	# make sbl_echo_test_safertos_hs          # Build SBL + BootAPP + Echo test firmware safertos images + A72 App images (Signed for HS device)
	# make sbl_echo_test_clean_hs             # Clean SBL + BootAPP + Echo test firmware images + A72 App images
	# make sbl_ethfw_hs                       # Build SBL + BootAPP + EthFw firmware freertos images + A72 App images (Signed for HS device)
	# make sbl_ethfw_safertos_hs              # Build SBL + BootAPP + EthFw firmware safertos images + A72 App images (Signed for HS device)
	# make sbl_ethfw_clean_hs                 # Clean SBL + BootAPP + EthFw firmware freertos images + A72 App images
	#
	# make sbl_echo_test_ospi_flashing        # Flash SBL + BootAPP + Echo test firmware images + A72 App images to OSPI
	# make sbl_ethfw_ospi_flashing            # Flash SBL + BootAPP + EthFW firmware images + A72 App images to OSPI
	# make sbl_echo_test_ospi_flashing_hs     # Flash SBL + BootAPP + Echo test firmware images + A72 App images to OSPI (Signed for HS device)
	# make sbl_ethfw_ospi_flashing_hs         # Flash SBL + BootAPP + EthFW firmware images + A72 App images to OSPI (Signed for HS device)
	#
	#
	#
	### Use below make targets for automating the creation of QNX filesystems
	# make qnx_prep_sdk                       # Clean SPL binaries + Build QNXFS Partition
	# make qnx_spl_create_copy                # Build SPL based QNX Filesystem
	# make qnx_sbl_ethfw_create_copy          # Build SBL based QNX Filesystem for Ethernet Firmware
	# make qnx_sbl_ethfw_hs_create_copy       # Build SBL based QNX Filesystem for Ethernet Firmware with Signed binaries for HS devices
	# make qnx_sbl_echo_create_copy           # Build SBL based QNX Filesystem for IPC Echo Test
	# make qnx_sbl_echo_hs_create_copy        # Build SBL based QNX Filesystem for IPC Echo Test with Signed binaries for HS devices
	# make qnx_tar_built_filesystems          # Package SPL and SBL based QNX Filesystems for Supported Jacinto Platforms ($(SUPPORTED_SOCS))
	# make qnx_create_all_platform_packages   # Scrub All binaries + Build SPL and SBL based QNX Filesystems for Supported Jacinto Platforms ($(SUPPORTED_SOCS))
	#

print_build_vars:
	@echo PROFILE = $(PROFILE)
	@echo BOARD = $(BOARD)
	@echo SOC = $(SOC)
	@echo VISION_APPS_BUILD_FLAGS_MAK = $(VISION_APPS_BUILD_FLAGS_MAK)
	@echo PSDK_QNX_PATH = $(PSDK_QNX_PATH)
	@echo QNX_IOPKT_BSP = $(QNX_IOPKT_BSP)
	@echo PSDK_QNX_USE_LEGACY_HOST_CONFIG = $(PSDK_QNX_USE_LEGACY_HOST_CONFIG)
	@echo DTS_CONFIG_OVERLAY_PATH = $(DTS_CONFIG_OVERLAY_PATH)
	@echo DTS_CONFIG_OVERLAY = $(DTS_CONFIG_OVERLAY)

all: psdk_qnx_version qnx_libs qnx_bins qnx_codec bsp examples qnx_codec_tests utils unit_test

clean:
	$(MAKE) bsp_clean
	$(MAKE) qnx_libs_clean
	$(MAKE) qnx_bins_clean
	$(MAKE) examples_clean
	$(MAKE) unit_test_clean
	$(MAKE) utils_clean
	$(MAKE) qnx_codec_clean
	$(MAKE) qnx_codec_tests_clean
	$(MAKE) qnx_fs_clean
	rm -rf psdk_qnx_version.c
	rm -rf $(PSDK_QNX_STAGE)

clean_all: clean
	$(MAKE) sbl_echo_test_clean
ifeq ($(SOC),$(filter $(SOC), j721e j7200 j784s4 j742s2))
	$(MAKE) sbl_ethfw_clean
endif
ifeq ($(SOC),$(filter $(SOC), j721e j7200 j721s2 j784s4 j742s2))
endif
ifeq ($(SOC),$(filter $(SOC), j721e j7200 j784s4 j742s2))
endif
	rm -rf ../rootfs*
	rm -rf ../bootfs*

scrub: clean_all

####################
# psdk qnx packaging
####################

qnx_fs_create:
	mkdir -p $(QNX_BOOT_PATH)
	mkdir -p $(QNX_FS_PATH)
ifeq ($(QNX_SDP_VERSION), 710)
	$(MAKE) -f $(PSDK_QNX_PATH)/qnx/scripts/qnx_fs_create_qnx710.mk qnx_sdk  BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_ENABLE_GCOV=$(PSDK_QNX_ENABLE_GCOV)
else ifeq ($(QNX_SDP_VERSION), 800)
	$(MAKE) -f $(PSDK_QNX_PATH)/qnx/scripts/qnx_fs_create_qnx800.mk qnx_sdk  BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_ENABLE_GCOV=$(PSDK_QNX_ENABLE_GCOV)
endif
ifdef FDT_BIN_NAME
ifeq ($(REMOTE_FIRMWARE_REPO), mcu_plus_sdk)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/scripts/sbl                     dtb_copy PSDK_RTOS_PATH=$(PSDK_RTOS_PATH) PDK_PATH=$(PDK_PATH) BOARD=$(BOARD) SOC=$(SOC) PROFILE=$(PROFILE) QNX_SDP_VERSION=$(QNX_SDP_VERSION) FIRMWARE_OS_TYPE=freertos
endif
endif
ifeq ($(UNIT_TEST_BUILD_ENABLED), true)
	$(MAKE) qnx_fs_unit_test
endif

qnx_fs_copy_spl_uboot:
	mkdir -p $(QNX_BOOT_PATH)
	mkdir -p $(QNX_FS_PATH)
ifeq ($(QNX_SDP_VERSION), 710)
	$(MAKE) -f $(PSDK_QNX_PATH)/qnx/scripts/qnx_fs_create_qnx710.mk copy_spl_uboot BOARD=$(BOARD) SOC=$(SOC)
else ifeq ($(QNX_SDP_VERSION), 800)
	$(MAKE) -f $(PSDK_QNX_PATH)/qnx/scripts/qnx_fs_create_qnx800.mk copy_spl_uboot BOARD=$(BOARD) SOC=$(SOC)
endif
ifdef FDT_BIN_NAME
	cp $(FDT_PATH)/$(FDT_BIN_NAME) $(QNX_BOOT_PATH)
endif

qnx_fs_unit_test:
ifeq ($(UNIT_TEST_BUILD_ENABLED), true)
ifeq ($(QNX_SDP_VERSION), 710)
	$(MAKE) -f $(PSDK_QNX_PATH)/qnx/scripts/qnx_fs_create_qnx710.mk qnx_unit_tests BOARD=$(BOARD) SOC=$(SOC)
else ifeq ($(QNX_SDP_VERSION), 800)
	$(MAKE) -f $(PSDK_QNX_PATH)/qnx/scripts/qnx_fs_create_qnx800.mk qnx_unit_tests BOARD=$(BOARD) SOC=$(SOC)
endif
else
	@echo "Skipping creating unit tests in qnxfs..."
endif

qnx_fs_clean:
	rm -rf $(QNX_BOOT_PATH)
	rm -rf $(QNX_FS_PATH)
	rm -rf $(QNX_AUX_FS_PATH)

####################
# firmware build
####################
ethfw:
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/scripts/sbl                    ethfw_image   PSDK_RTOS_PATH=$(PSDK_RTOS_PATH) PDK_PATH=$(PDK_PATH) ETHFW_PATH=$(ETHFW_PATH) BOARD=$(BOARD) SOC=$(SOC) PROFILE=$(PROFILE) FIRMWARE_OS_TYPE=freertos

ethfw_safertos:
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/scripts/sbl                    ethfw_image   PSDK_RTOS_PATH=$(PSDK_RTOS_PATH) PDK_PATH=$(PDK_PATH) ETHFW_PATH=$(ETHFW_PATH) BOARD=$(BOARD) SOC=$(SOC) PROFILE=$(PROFILE) FIRMWARE_OS_TYPE=safertos

ethfw_clean:
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/scripts/sbl                    ethfw_scrub   PSDK_RTOS_PATH=$(PSDK_RTOS_PATH) PDK_PATH=$(PDK_PATH) ETHFW_PATH=$(ETHFW_PATH) BOARD=$(BOARD) SOC=$(SOC) PROFILE=$(PROFILE)

echo_test_fw:
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/scripts/sbl                    echo_firmware PSDK_RTOS_PATH=$(PSDK_RTOS_PATH) PDK_PATH=$(PDK_PATH) BOARD=$(BOARD) SOC=$(SOC) PROFILE=$(PROFILE) FIRMWARE_OS_TYPE=freertos

echo_test_fw_safertos:
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/scripts/sbl                    echo_firmware PSDK_RTOS_PATH=$(PSDK_RTOS_PATH) PDK_PATH=$(PDK_PATH) BOARD=$(BOARD) SOC=$(SOC) PROFILE=$(PROFILE) FIRMWARE_OS_TYPE=safertos

echo_test_fw_clean:
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/scripts/sbl                    echo_firmware_scrub PSDK_RTOS_PATH=$(PSDK_RTOS_PATH) PDK_PATH=$(PDK_PATH) BOARD=$(BOARD) SOC=$(SOC) PROFILE=$(PROFILE)

######################################################
# sbl bootapp with Echo test freertos firmware build
######################################################
sbl_echo_test:
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/scripts/sbl                    all   PSDK_RTOS_PATH=$(PSDK_RTOS_PATH) PDK_PATH=$(PDK_PATH) BOARD=$(BOARD) SOC=$(SOC) PROFILE=$(PROFILE) QNX_SDP_VERSION=$(QNX_SDP_VERSION) FIRMWARE_OS_TYPE=freertos

sbl_echo_test_clean:
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/scripts/sbl                    clean PSDK_RTOS_PATH=$(PSDK_RTOS_PATH) PDK_PATH=$(PDK_PATH) BOARD=$(BOARD) SOC=$(SOC) PROFILE=$(PROFILE) QNX_SDP_VERSION=$(QNX_SDP_VERSION)

sbl_echo_test_hs:
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/scripts/sbl                    sbl_bootimage_hs   PSDK_RTOS_PATH=$(PSDK_RTOS_PATH) PDK_PATH=$(PDK_PATH) BOARD=$(BOARD) SOC=$(SOC) PROFILE=$(PROFILE) QNX_SDP_VERSION=$(QNX_SDP_VERSION) FIRMWARE_OS_TYPE=freertos

sbl_echo_test_clean_hs:
	$(MAKE) sbl_echo_test_clean

######################################################
# sbl bootapp with Echo test safertos firmware build
######################################################
sbl_echo_test_safertos:
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/scripts/sbl                    all   PSDK_RTOS_PATH=$(PSDK_RTOS_PATH) PDK_PATH=$(PDK_PATH) BOARD=$(BOARD) SOC=$(SOC) PROFILE=$(PROFILE) QNX_SDP_VERSION=$(QNX_SDP_VERSION) FIRMWARE_OS_TYPE=safertos

sbl_echo_test_safertos_hs:
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/scripts/sbl                    sbl_bootimage_hs   PSDK_RTOS_PATH=$(PSDK_RTOS_PATH) PDK_PATH=$(PDK_PATH) BOARD=$(BOARD) SOC=$(SOC) PROFILE=$(PROFILE) QNX_SDP_VERSION=$(QNX_SDP_VERSION) FIRMWARE_OS_TYPE=safertos

########################################
# sbl bootapp with EthFw freertos build
########################################
sbl_ethfw:
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/scripts/sbl                    all   PSDK_RTOS_PATH=$(PSDK_RTOS_PATH) PDK_PATH=$(PDK_PATH) ETHFW_PATH=$(ETHFW_PATH) BOARD=$(BOARD) SOC=$(SOC) PROFILE=$(PROFILE) QNX_SDP_VERSION=$(QNX_SDP_VERSION) BUILD_ETHFW=1 FIRMWARE_OS_TYPE=freertos

sbl_ethfw_clean:
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/scripts/sbl                    clean PSDK_RTOS_PATH=$(PSDK_RTOS_PATH) PDK_PATH=$(PDK_PATH) ETHFW_PATH=$(ETHFW_PATH) BOARD=$(BOARD) SOC=$(SOC) PROFILE=$(PROFILE) QNX_SDP_VERSION=$(QNX_SDP_VERSION) BUILD_ETHFW=1

sbl_ethfw_hs:
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/scripts/sbl                    sbl_bootimage_hs   PSDK_RTOS_PATH=$(PSDK_RTOS_PATH) PDK_PATH=$(PDK_PATH) ETHFW_PATH=$(ETHFW_PATH) BOARD=$(BOARD) SOC=$(SOC) PROFILE=$(PROFILE) QNX_SDP_VERSION=$(QNX_SDP_VERSION) BUILD_ETHFW=1 FIRMWARE_OS_TYPE=freertos

sbl_ethfw_clean_hs:
	$(MAKE) sbl_ethfw_clean

########################################
# sbl bootapp with EthFw safertos build
########################################
sbl_ethfw_safertos:
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/scripts/sbl                    all   PSDK_RTOS_PATH=$(PSDK_RTOS_PATH) PDK_PATH=$(PDK_PATH) ETHFW_PATH=$(ETHFW_PATH) BOARD=$(BOARD) SOC=$(SOC) PROFILE=$(PROFILE) QNX_SDP_VERSION=$(QNX_SDP_VERSION) BUILD_ETHFW=1 FIRMWARE_OS_TYPE=safertos

sbl_ethfw_safertos_hs:
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/scripts/sbl                    sbl_bootimage_hs   PSDK_RTOS_PATH=$(PSDK_RTOS_PATH) PDK_PATH=$(PDK_PATH) ETHFW_PATH=$(ETHFW_PATH) BOARD=$(BOARD) SOC=$(SOC) PROFILE=$(PROFILE) QNX_SDP_VERSION=$(QNX_SDP_VERSION) BUILD_ETHFW=1 FIRMWARE_OS_TYPE=safertos


####################
# OSPI boot flashing
####################
sbl_echo_test_ospi:
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/scripts/sbl    sbl_bootimage_ospi      PSDK_RTOS_PATH=$(PSDK_RTOS_PATH) PDK_PATH=$(PDK_PATH) BOARD=$(BOARD) SOC=$(SOC) PROFILE=$(PROFILE)

sbl_echo_test_ospi_hs:
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/scripts/sbl    sbl_bootimage_ospi_hs   PSDK_RTOS_PATH=$(PSDK_RTOS_PATH) PDK_PATH=$(PDK_PATH) BOARD=$(BOARD) SOC=$(SOC) PROFILE=$(PROFILE)

sbl_ethfw_ospi:
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/scripts/sbl    sbl_bootimage_ospi      BUILD_ETHFW=1 PSDK_RTOS_PATH=$(PSDK_RTOS_PATH) PDK_PATH=$(PDK_PATH) BOARD=$(BOARD) SOC=$(SOC) PROFILE=$(PROFILE)

sbl_ethfw_ospi_hs:
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/scripts/sbl    sbl_bootimage_ospi_hs   BUILD_ETHFW=1 PSDK_RTOS_PATH=$(PSDK_RTOS_PATH) PDK_PATH=$(PDK_PATH) BOARD=$(BOARD) SOC=$(SOC) PROFILE=$(PROFILE)

sbl_echo_test_ospi_flashing:
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/scripts/sbl    sbl_bootimage_install_ospi   PSDK_RTOS_PATH=$(PSDK_RTOS_PATH) PDK_PATH=$(PDK_PATH) BOARD=$(BOARD) SOC=$(SOC) PROFILE=$(PROFILE)

sbl_echo_test_ospi_flashing_hs:
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/scripts/sbl    sbl_bootimage_install_ospi   PSDK_RTOS_PATH=$(PSDK_RTOS_PATH) PDK_PATH=$(PDK_PATH) BOARD=$(BOARD)_hs SOC=$(SOC) PROFILE=$(PROFILE) SBL_BOOTFILES_PATH=$(PSDK_QNX_PATH)/bootfs_sbl_echotest_hs_freertos

sbl_ethfw_ospi_flashing:
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/scripts/sbl    sbl_bootimage_install_ospi   PSDK_RTOS_PATH=$(PSDK_RTOS_PATH) PDK_PATH=$(PDK_PATH) ETHFW_PATH=$(ETHFW_PATH) BOARD=$(BOARD) SOC=$(SOC) PROFILE=$(PROFILE) BUILD_ETHFW=1

sbl_ethfw_ospi_flashing_hs:
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/scripts/sbl    sbl_bootimage_install_ospi   PSDK_RTOS_PATH=$(PSDK_RTOS_PATH) PDK_PATH=$(PDK_PATH) ETHFW_PATH=$(ETHFW_PATH) BOARD=$(BOARD)_hs SOC=$(SOC) PROFILE=$(PROFILE) BUILD_ETHFW=1 SBL_BOOTFILES_PATH=$(PSDK_QNX_PATH)/bootfs_sbl_ethfw_hs_freertos


####################
####################






################################################
################################################



####################
# PSDK QNX version
####################
SOC_UPPER=SOC $(shell echo $(SOC) | tr a-z A-Z)
PSDK_QNX_VERSION=$(PSDK_QNX_VERSION_REL)
psdk_qnx_version:
	@echo 'char *buildSoc="$(SOC_UPPER)";' > psdk_qnx_version.c
	@echo 'char *buildDate="'`date`'";' >> psdk_qnx_version.c
	@echo 'char *buildVersion="'PSDKQNX_11_02_02'";' >> psdk_qnx_version.c
	mkdir -p $(PSDK_QNX_STAGE)
	@echo '########################################################'
	@echo 'SOC is $(SOC)'
	@echo 'BOARD is $(BOARD)'
	@echo 'QNX_SDP_VERSION is $(QNX_SDP_VERSION)'
	@echo QNX_IOPKT_BSP = $(QNX_IOPKT_BSP)
	@echo PSDK_QNX_USE_LEGACY_HOST_CONFIG = $(PSDK_QNX_USE_LEGACY_HOST_CONFIG)
	@echo DTS_CONFIG_OVERLAY_PATH = $(DTS_CONFIG_OVERLAY_PATH)
	@echo DTS_CONFIG_OVERLAY = $(DTS_CONFIG_OVERLAY)
	@echo '########################################################'
	@echo 'The PSDK QNX stage dir is $(PSDK_QNX_STAGE)'
	@echo 'The override is $(QCONF_OVERRIDE)'
	@echo '########################################################'

####################
# Device Tree Header Generation
####################

dt-header:
ifneq ($(DTS_CONFIG_OVERLAY), none)
	$(MAKE) -C utils/dt_configurator dt-header SOC=$(SOC) DTS_CONFIG_OVERLAY=$(DTS_CONFIG_OVERLAY) DTS_CONFIG_OVERLAY_PATH=$(DTS_CONFIG_OVERLAY_PATH)
else
	@echo "DTS_CONFIG_OVERLAY set to 'none' - skipping device tree header generation"
endif

dt-header-clean:
ifneq ($(DTS_CONFIG_OVERLAY), none)
	$(MAKE) -C utils/dt_configurator dt-header-clean SOC=$(SOC) DTS_CONFIG_OVERLAY_PATH=$(DTS_CONFIG_OVERLAY_PATH)
else
	@echo "DTS_CONFIG_OVERLAY set to 'none' - skipping device tree header cleanup"
endif

####################
# qnx bsp
####################
bsp: qnx_bins examples utils $(if $(filter-out none,$(DTS_CONFIG_OVERLAY)),dt-header)
ifdef FDT_BIN_NAME
	# Copying the default qnx-ifs build script to make a sbl+dtb compatiable qnx-ifs build script. This is valid only for SDP 800 BSPs
	sed "s/startup-$(SOC)-evm -u arg/startup-$(SOC)-evm -u reg/1" $(PSDK_QNX_PATH)/qnx/bsp/images/$(SOC)-evm-ti.build > $(PSDK_QNX_PATH)/qnx/bsp/images/$(SOC)-evm-ti-sbl.build
	-sed "s/startup-$(SOC)-evm -u arg/startup-$(SOC)-evm -u reg/1" $(PSDK_QNX_PATH)/qnx/bsp/images/$(SOC)-evm-ti-spl-nfs-with-asix.build > $(PSDK_QNX_PATH)/qnx/bsp/images/$(SOC)-evm-ti-sbl-nfs-with-asix.build
	-sed "s/startup-$(SOC)-evm -u arg/startup-$(SOC)-evm -u reg/1" $(PSDK_QNX_PATH)/qnx/bsp/images/$(SOC)-evm-ti-spl-nfs-with-cpsw.build > $(PSDK_QNX_PATH)/qnx/bsp/images/$(SOC)-evm-ti-sbl-nfs-with-cpsw.build
else
	# Copy spl build files to create sbl versions to ensure we have a sbl.raw for all bsps
	cp -fv $(PSDK_QNX_PATH)/qnx/bsp/images/$(SOC)-evm-ti.build $(PSDK_QNX_PATH)/qnx/bsp/images/$(SOC)-evm-ti-sbl.build
	-cp -fv $(PSDK_QNX_PATH)/qnx/bsp/images/$(SOC)-evm-ti-spl-nfs-with-asix.build $(PSDK_QNX_PATH)/qnx/bsp/images/$(SOC)-evm-ti-sbl-nfs-with-asix.build
	-cp -fv $(PSDK_QNX_PATH)/qnx/bsp/images/$(SOC)-evm-ti-spl-nfs-with-cpsw.build $(PSDK_QNX_PATH)/qnx/bsp/images/$(SOC)-evm-ti-sbl-nfs-with-cpsw.build
endif

# Update the configuration only for **io-sock sbl** builds
# u-boot boot flow does not support new host ID. Hence leave it as is.
ifneq ($(PSDK_QNX_USE_LEGACY_HOST_CONFIG), 1)
ifeq ($(QNX_IOPKT_BSP), 0)
ifeq ($(QNX_SDP_VERSION),$(filter $(QNX_SDP_VERSION), 800))
	sed -i 's/qnx.iolevel="2"/qnx.iolevel="1"/1' $(PSDK_QNX_PATH)/qnx/bsp/images/$(SOC)-evm-ti-sbl.build
	-sed -i 's/qnx.iolevel="2"/qnx.iolevel="1"/1' $(PSDK_QNX_PATH)/qnx/bsp/images/$(SOC)-evm-ti-sbl-nfs-with-asix.build
	-sed -i 's/qnx.iolevel="2"/qnx.iolevel="1"/1' $(PSDK_QNX_PATH)/qnx/bsp/images/$(SOC)-evm-ti-sbl-nfs-with-cpsw.build
else
	sed -i "s/iolevel=2/iolevel=1/1" $(PSDK_QNX_PATH)/qnx/bsp/images/$(SOC)-evm-ti-sbl.build
	-sed -i "s/iolevel=2/iolevel=1/1" $(PSDK_QNX_PATH)/qnx/bsp/images/$(SOC)-evm-ti-sbl-nfs-with-asix.build
	-sed -i "s/iolevel=2/iolevel=1/1" $(PSDK_QNX_PATH)/qnx/bsp/images/$(SOC)-evm-ti-sbl-nfs-with-cpsw.build
endif
endif
endif

ifeq ($(PSDK_QNX_ENABLE_GCOV),1)
	# Setting the GCOV export vars in the nfs build files
	# SPL build files
	-sed -i "s|___psdkqa_path_index___|$(psdkqa_dir_index)|"            $(PSDK_QNX_PATH)/qnx/bsp/images/$(SOC)-evm-ti-spl-nfs-with-asix.build
	-sed -i "s|___psdkqa_path_index___|$(psdkqa_dir_index)|"            $(PSDK_QNX_PATH)/qnx/bsp/images/$(SOC)-evm-ti-spl-nfs-with-cpsw.build
	-sed -i "s|#GCOV_PREFIX_STRIP=|GCOV_PREFIX_STRIP=|"   $(PSDK_QNX_PATH)/qnx/bsp/images/$(SOC)-evm-ti-spl-nfs-with-asix.build
	-sed -i "s|#GCOV_PREFIX_STRIP=|GCOV_PREFIX_STRIP=|"   $(PSDK_QNX_PATH)/qnx/bsp/images/$(SOC)-evm-ti-spl-nfs-with-cpsw.build
	-sed -i "s|#GCOV_PREFIX=|GCOV_PREFIX=|"               $(PSDK_QNX_PATH)/qnx/bsp/images/$(SOC)-evm-ti-spl-nfs-with-asix.build
	-sed -i "s|#GCOV_PREFIX=|GCOV_PREFIX=|"               $(PSDK_QNX_PATH)/qnx/bsp/images/$(SOC)-evm-ti-spl-nfs-with-cpsw.build

	# SBL build files
	-sed -i "s|___psdkqa_path_index___|$(psdkqa_dir_index)|"            $(PSDK_QNX_PATH)/qnx/bsp/images/$(SOC)-evm-ti-sbl-nfs-with-asix.build
	-sed -i "s|___psdkqa_path_index___|$(psdkqa_dir_index)|"            $(PSDK_QNX_PATH)/qnx/bsp/images/$(SOC)-evm-ti-sbl-nfs-with-cpsw.build
	-sed -i "s|#GCOV_PREFIX_STRIP=|GCOV_PREFIX_STRIP=|"   $(PSDK_QNX_PATH)/qnx/bsp/images/$(SOC)-evm-ti-sbl-nfs-with-asix.build
	-sed -i "s|#GCOV_PREFIX_STRIP=|GCOV_PREFIX_STRIP=|"   $(PSDK_QNX_PATH)/qnx/bsp/images/$(SOC)-evm-ti-sbl-nfs-with-cpsw.build
	-sed -i "s|#GCOV_PREFIX=|GCOV_PREFIX=|"               $(PSDK_QNX_PATH)/qnx/bsp/images/$(SOC)-evm-ti-sbl-nfs-with-asix.build
	-sed -i "s|#GCOV_PREFIX=|GCOV_PREFIX=|"               $(PSDK_QNX_PATH)/qnx/bsp/images/$(SOC)-evm-ti-sbl-nfs-with-cpsw.build
endif
# Build BSP with optional DTS_CONFIG_OVERLAY and DTS_CONFIG_OVERLAY_PATH parameters
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/bsp all SOC=$(SOC) DTS_CONFIG_OVERLAY_PATH=$(DTS_CONFIG_OVERLAY_PATH) DTS_CONFIG_OVERLAY=$(DTS_CONFIG_OVERLAY)

bsp_clean: $(if $(filter-out none,$(DTS_CONFIG_OVERLAY)),dt-header-clean)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/bsp SOC=$(SOC) DTS_CONFIG_OVERLAY_PATH=$(DTS_CONFIG_OVERLAY_PATH) DTS_CONFIG_OVERLAY=$(DTS_CONFIG_OVERLAY) clean

####################
# qnx pdk libs
####################
qnx_libs: psdk_qnx_version
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/pdk_libs/pdk                   install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/pdk_libs/sciclient             install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/pdk_libs/ipclld                install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/pdk_libs/udmalld               install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
ifneq "$(or $(filter 710, $(QNX_SDP_VERSION)), $(filter true, $(BUILD_ENETLLD_FOR_TRIM_PKG)))" ""
ifeq ($(SOC),$(filter $(SOC), j721e j7200 j721s2 j784s4 j742s2))
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/pdk_libs/enetlld               install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
endif
endif


qnx_libs_clean:
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/pdk_libs/pdk                   clean  PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/pdk_libs/sciclient             clean  PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/pdk_libs/ipclld                clean  PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/pdk_libs/udmalld               clean  PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/unit_test/base_ut              clean  PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
ifneq "$(or $(filter 710, $(QNX_SDP_VERSION)), $(filter true, $(BUILD_ENETLLD_FOR_TRIM_PKG)))" ""
ifeq ($(SOC),$(filter $(SOC), j721e j7200 j721s2 j784s4 j742s2))
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/pdk_libs/enetlld               clean  PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
endif
endif

####################
# pdk lib deps
####################
pdk_deps: psdk_qnx_version
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/pdk_libs/pdk                   install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID) GEN_PDKDEPS=1
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/pdk_libs/sciclient             install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID) GEN_PDKDEPS=1
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/pdk_libs/ipclld                install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID) GEN_PDKDEPS=1
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/pdk_libs/udmalld               install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID) GEN_PDKDEPS=1
ifeq ($(QNX_SDP_VERSION), 710)
ifeq ($(SOC),$(filter $(SOC), j721e j7200 j721s2 j784s4 j742s2))
ifeq ($(SOC),$(filter $(SOC), j742s2))
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/pdk_libs/enetlld               install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=j784s4_evm SOC=j784s4 PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID) GEN_PDKDEPS=1
else
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/pdk_libs/enetlld               install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID) GEN_PDKDEPS=1
endif
endif
endif

pdk_deps_clean:
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/pdk_libs/pdk                   clean  PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/pdk_libs/sciclient             clean  PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/pdk_libs/ipclld                clean  PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/pdk_libs/udmalld               clean  PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
ifeq ($(SOC),$(filter $(SOC), j721e j7200 j721s2 j784s4 j742s2))
ifeq ($(SOC),$(filter $(SOC), j742s2))
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/pdk_libs/enetlld               clean  PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=j784s4_evm SOC=j784s4 PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
else
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/pdk_libs/enetlld               clean  PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
endif
endif

####################
# qnx bins
####################
qnx_bins: psdk_qnx_version qnx_libs
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/sharedmemallocator                     install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID) VISION_APPS_BUILD_FLAGS_MAK=$(VISION_APPS_BUILD_FLAGS_MAK)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/resmgr/sciclient_qnx_rsmgr             install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/resmgr/ipc_qnx_rsmgr/resmgr            install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/resmgr/ipc_qnx_rsmgr/usr               install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/resmgr/udma_qnx_rsmgr/usr              install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/resmgr/udma_qnx_rsmgr/resmgr           install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/utils/ti-hwmon/resmgr                  install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
ifeq ($(QNX_IOPKT_BSP), 1)
ifeq ($(QNX_SDP_VERSION),$(filter $(QNX_SDP_VERSION), 710))
ifeq ($(SOC),$(filter $(SOC), j721e j7200 j721s2 j784s4))
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/devnp/cpsw2g                           install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
endif
ifeq ($(SOC),$(filter $(SOC), j721e j784s4))
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/devnp/ethremotecfg                     install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/devnp/cpsw9g                           install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
endif
ifeq ($(SOC),$(filter $(SOC), j7200))
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/devnp/ethremotecfg                     install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/devnp/cpsw5g                           install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
endif
ifeq ($(SOC),$(filter $(SOC), j721s2))
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/devnp/cpsw2g-main                      install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
endif
endif
endif

qnx_bins_clean:
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/sharedmemallocator                     clean
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/resmgr/sciclient_qnx_rsmgr             clean
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/resmgr/ipc_qnx_rsmgr/resmgr            clean
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/resmgr/ipc_qnx_rsmgr/usr               clean
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/resmgr/udma_qnx_rsmgr/usr              clean
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/resmgr/udma_qnx_rsmgr/resmgr           clean
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/utils/ti-hwmon/resmgr                  clean
ifeq ($(QNX_IOPKT_BSP), 1)
ifeq ($(QNX_SDP_VERSION),$(filter $(QNX_SDP_VERSION), 710))
ifeq ($(SOC),$(filter $(SOC), j721e j7200 j721s2 j784s4))
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/devnp                                  clean
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/devnp/ethremotecfg                     clean
endif
endif
endif

test_target:
	echo $(QNX_BASE)

####################
# qnx codec
####################
qnx_codec: qnx_libs
ifeq ($(SOC),$(filter $(SOC), j721e))
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/codec/img/qnx                  install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages PSDK_QNX_PATH=$(PSDK_QNX_PATH) BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
endif
ifeq ($(SOC),$(filter $(SOC), j721s2 j784s4 j742s2 j722s))
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/codec/vpu/tivpucodec/vpulib    install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/codec/vpu/resmgrlib            install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/codec/vpu/resmgr               install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/codec/vpu/OpenMAXIL            install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
endif

qnx_codec_clean:
ifeq ($(SOC),$(filter $(SOC), j721e))
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/codec/img/qnx                  clean
endif
ifeq ($(SOC),$(filter $(SOC), j721s2 j784s4 j742s2 j722s))
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/codec/vpu/tivpucodec/vpulib    clean
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/codec/vpu/OpenMAXIL            clean
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/codec/vpu/resmgrlib            clean
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/codec/vpu/resmgr               clean
endif

####################
# qnx examples
####################
examples: qnx_bins
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/examples/ipc/ipc_test_qnx              install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/examples/ipc/ipc_perf                  install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/examples/udma/udma_memcpy_test_qnx     install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/examples/udma/udma_crc_test            install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/examples/sciclient/sciclient_qnx_app   install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/examples/sciclient/sciclient_clk_test  install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/examples/osal/sem_test                 install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/examples/osal/clockp_test              install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/examples/gpio                          install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/examples/crypto/decrypt_app            install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
ifeq ($(QNX_SDP_VERSION),$(filter $(QNX_SDP_VERSION), 710))
ifeq ($(SOC),$(filter $(SOC), j721e j7200 j721s2 j784s4 j742s2))
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/examples/cpsw/ptp_test                 install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/examples/cpsw/cpsw_test                install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
endif
endif

examples_clean:
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/examples/ipc/ipc_test_qnx              clean
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/examples/ipc/ipc_perf                  clean
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/examples/udma/udma_memcpy_test_qnx     clean
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/examples/udma/udma_crc_test            clean
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/examples/sciclient/sciclient_qnx_app   clean
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/examples/sciclient/sciclient_clk_test  clean
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/examples/osal/sem_test                 clean
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/examples/osal/clockp_test              clean
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/examples/gpio                          clean
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/examples/crypto/decrypt_app            clean
ifeq ($(QNX_SDP_VERSION),$(filter $(QNX_SDP_VERSION), 710))
ifeq ($(SOC),$(filter $(SOC), j721e j7200 j721s2 j784s4 j742s2))
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/examples/cpsw/ptp_test                 clean
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/examples/cpsw/cpsw_test                clean
endif
endif

####################
# qnx unit tests
####################
ifeq ($(UNIT_TEST_BUILD_ENABLED), true)
unit_test: qnx_bins
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/unit_test/base_ut                      install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/unit_test/ipc_ut                       install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/unit_test/ipcdrv_ut                    install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/unit_test/ipcdrv_mock_ut               install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/unit_test/ipc_resmgr_ut                install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/unit_test/osal_ut                      install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/unit_test/sciclient_ut                 install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/unit_test/osal_mock_ut                 install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/unit_test/sciclient_proxy_ut           install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/unit_test/sciclient_rom_ut             install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/unit_test/sciclient_irq_ut             install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/unit_test/sciclient_stub_ut            install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/unit_test/sciclient_indirect_ut        install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/unit_test/sciclient_mock_ut            install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/unit_test/sciclientrsmgr_ut	       	   install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/unit_test/udma_ut                      install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/unit_test/udma_mock_ut                 install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/unit_test/udma_resmgr_ut               install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/unit_test/udma_timgr_ut                install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/unit_test/shmemallocator_ut            install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
else
unit_test:
	@echo "Skipping build for unit tests"
endif

unit_test_clean:
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/unit_test/ipc_ut                       clean
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/unit_test/ipcdrv_ut                    clean
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/unit_test/ipcdrv_mock_ut               clean
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/unit_test/ipc_resmgr_ut                clean
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/unit_test/osal_ut                      clean
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/unit_test/sciclient_ut                 clean
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/unit_test/osal_mock_ut                 clean
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/unit_test/sciclient_proxy_ut           clean
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/unit_test/sciclient_rom_ut             clean
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/unit_test/sciclient_irq_ut             clean
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/unit_test/sciclient_stub_ut            clean
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/unit_test/sciclient_indirect_ut        clean
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/unit_test/sciclient_mock_ut            clean
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/unit_test/sciclientrsmgr_ut            clean
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/unit_test/udma_ut                      clean
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/unit_test/udma_mock_ut                 clean
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/unit_test/udma_resmgr_ut               clean
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/unit_test/udma_timgr_ut                clean
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/unit_test/shmemallocator_ut            clean

####################
# qnx codec tests
####################
qnx_codec_tests: qnx_codec
ifeq ($(SOC),$(filter $(SOC), j721s2 j784s4 j742s2 j722s))
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/codec/vpu/tests/decoder_test            install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID) QNX_SDP_VERSION=$(QNX_SDP_VERSION)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/codec/vpu/tests/encoder_test            install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID) QNX_SDP_VERSION=$(QNX_SDP_VERSION)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/codec/vpu/tests/multi_inst_test         install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID) QNX_SDP_VERSION=$(QNX_SDP_VERSION)
endif

qnx_codec_tests_clean:
ifeq ($(SOC),$(filter $(SOC), j721s2 j784s4 j742s2 j722s))
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/codec/vpu/tests/decoder_test            clean
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/codec/vpu/tests/encoder_test            clean
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/codec/vpu/tests/multi_inst_test         clean
endif

####################
# qnx utils
####################
utils: qnx_bins
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/utils/ipc_trace_logger                  install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/utils/k3conf                           -f Makefile_qnx INSTALL_CMD=install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
ifeq ($(SOC),$(filter $(SOC), j721e j7200 j721s2 j784s4 j742s2 j722s))
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/utils/ddr_bw                            install-debug-strip PDK_INSTALL_PATH=$(PDK_QNX_PATH)/packages BOARD=$(BOARD) SOC=$(SOC) PSDK_QNX_VERSION_REL=$(PSDK_QNX_VERSION_REL) PSDK_QNX_TAGID=$(PSDK_QNX_TAGID)
endif

utils_clean:
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/utils/ipc_trace_logger                  clean
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/utils/k3conf                           -f Makefile_qnx clean
ifeq ($(SOC),$(filter $(SOC), j721e j7200 j721s2 j784s4 j742s2 j722s))
	$(MAKE) -C $(PSDK_QNX_PATH)/qnx/utils/ddr_bw                           clean
endif

####################
# qnx automated packaging
####################
ifeq ($(SOC),$(filter $(SOC), j7200 j721e j721s2 j784s4 j742s2 j722s))
qnx_prep_sdk:
	$(MAKE) -f $(PSDK_QNX_PATH)/qnx/scripts/automation/qnx_automation.mak   prep_sdk

qnx_spl_create_copy:
	$(MAKE) -f $(PSDK_QNX_PATH)/qnx/scripts/automation/qnx_automation.mak   spl_create_copy

qnx_vision_apps_create_copy:
ifeq ($(SOC),$(filter $(SOC), j721e j721s2 j784s4 j742s2 j722s))
	$(MAKE) -f $(PSDK_QNX_PATH)/qnx/scripts/automation/qnx_automation.mak   vision_apps_create_copy
endif

qnx_vision_apps_hs_create_copy:
ifeq ($(SOC),$(filter $(SOC), j721e j721s2 j784s4 j742s2 j722s))
	$(MAKE) -f $(PSDK_QNX_PATH)/qnx/scripts/automation/qnx_automation.mak   vision_apps_hs_create_copy
endif

ifeq ($(QNX_SDP_VERSION),$(filter $(QNX_SDP_VERSION), 710))
qnx_sbl_ethfw_create_copy:
ifeq ($(SOC),$(filter $(SOC), j7200 j721e j784s4 j742s2))
	$(MAKE) -f $(PSDK_QNX_PATH)/qnx/scripts/automation/qnx_automation.mak   sbl_ethfw_create_copy
endif

qnx_sbl_ethfw_hs_create_copy:
ifeq ($(SOC),$(filter $(SOC), j7200 j721e j784s4 j742s2))
	$(MAKE) -f $(PSDK_QNX_PATH)/qnx/scripts/automation/qnx_automation.mak   sbl_ethfw_hs_create_copy
endif
endif

qnx_sbl_echo_create_copy:
	$(MAKE) -f $(PSDK_QNX_PATH)/qnx/scripts/automation/qnx_automation.mak   sbl_echo_create_copy

qnx_sbl_echo_hs_create_copy:
	$(MAKE) -f $(PSDK_QNX_PATH)/qnx/scripts/automation/qnx_automation.mak   sbl_echo_hs_create_copy

qnx_tar_built_filesystems:
	$(MAKE) -f $(PSDK_QNX_PATH)/qnx/scripts/automation/qnx_automation.mak   tar_built_filesystems

qnx_create_all_platform_packages:
	$(MAKE) -f $(PSDK_QNX_PATH)/qnx/scripts/automation/qnx_automation.mak   create_all_platform_packages
endif
