#!/bin/bash
# Copyright (c) 2000-2015 Synology Inc. All rights reserved.
. ${ScriptsDir}/include/exports
case "$BUILD_TARGET" in
	X64|BROMOLOW|GRANTLEY|CEDARVIEW|BROMOLOWESM|BROADWELL|AVOTON|BRASWELL|APOLLOLAKE|KVMX64|KVMX64SOFS|KVMX64V2|DENVERTON|BROADWELLNK|PURLEY|COFFEELAKE|BROADWELLNTB|GEMINILAKE|GEMINILAKENK|SKYLAKED|V1000|V1000NK|V1000SOFS|BROADWELLNTBAP|KVMCLOUD|EPYC7002|EPYC7002SOFS|R1000|R1000NK|ICELAKED|BROADWELLNKV2|RYZEN5K|GEMINILAKEVS|EPYC7003NTB|RAPTORLAKES|RAPTORLAKEU)
		SkipThisProject
		return
		STRIP=${STRIP64}
		;;
	ALPINE|STM_MONACO|MARVELL_ARMADA38X|REALTEK_RTD1296|MARVELL_ARMADA37XX|REALTEK_RTD1619)
		SkipThisProject
		return
		STRIP=${STRIP}
		;;
	DOCKERX64|HISILICON_HI3536)
		SkipThisProject
		return
		;;
	*) # platforms not kernel 3.10 should build compat-wireless
		SkipThisProject
		return
		;;
esac

source "${ScriptsDir}/include/exports"

if [ "linux-5.10.x" = "${SYNO_KERNEL_VERSION}" ]; then
		SkipThisProject
		return
fi

BACKPORTS_VERSION=`cat /source/backports/VERSION`
if [ "linux-4.4.x" = "${SYNO_KERNEL_VERSION}" -o \
	 "linux-4.4.x-glk" = "${SYNO_KERNEL_VERSION}" ]; then
	BACKPORTS_VERSION="v4.4.x"
fi
cd ${BACKPORTS_VERSION}

UDEV_DEVICE_TABLE_DIR="${TmpInstDir}/lib/udev/devicetable"

if [ ! -d "${UDEV_DEVICE_TABLE_DIR}" ]; then
	mkdir -p ${UDEV_DEVICE_TABLE_DIR};
fi


DESTDIR="${TmpInstDir}/lib/modules"
[ -d "${DESTDIR}" ] || mkdir -p "${DESTDIR}"
echo "STRIP=${STRIP}"
make remoteinstall \
	KLIB_BUILD="/source/${SYNO_KERNEL_VERSION}" \
	DESTDIR="${DESTDIR}" \
	kBUILD_TARGET="${BUILD_TARGET}" \
	STRIP=${STRIP} -f Makefile.syno

if [ "linux-4.4.x" != "${SYNO_KERNEL_VERSION}" ] && \
	[ "linux-4.4.x-glk" != "${SYNO_KERNEL_VERSION}" ] && \
	[ "STM_MONACO" != "${BUILD_TARGET}" ]; then
	# Both Linux-4.4.x and STM_MONACO use DVB drivers from kernel, not from backports.
	UDEV_DEVICE_TABLE_DIR_FOR_DVB="${UDEV_DEVICE_TABLE_DIR}/backports_dvb"
	UDEV_DEVICE_SCRIPT_DIR="${TmpInstDir}/lib/udev/script"
	UDEV_DEVICE_SCRIPT_DIR_FOR_DVB="${UDEV_DEVICE_SCRIPT_DIR}/backports_dvb"
	USB_DVB_DEP_TABLE="DVB/usb.DVB.dep.table"
	USB_DVB_VIDPID_TABLE="DVB/usb.DVB.VIDPID.table"
	USB_DVB_SCRIPT="DVB/usb-dvb-util-backports.sh"
	DVB_ADMIN_SCRIPT="DVB/syno_dvb_admin.sh"
	DVB_ADMIN_DIR="${TmpInstDir}/usr/syno/sbin"
	MANUAL_HOTPLUG_GEN_SCRIPT="DVB/manual_gen_hotplug_backports.sh"

	if [ ! -d "${UDEV_DEVICE_TABLE_DIR_FOR_DVB}" ]; then
		mkdir -p ${UDEV_DEVICE_TABLE_DIR_FOR_DVB};
	fi
	if [ -f "${USB_DVB_DEP_TABLE}" ]; then
		install -c ${USB_DVB_DEP_TABLE} ${UDEV_DEVICE_TABLE_DIR_FOR_DVB};
	fi

	if [ -f "${USB_DVB_VIDPID_TABLE}" ]; then
		install -c ${USB_DVB_VIDPID_TABLE} ${UDEV_DEVICE_TABLE_DIR_FOR_DVB};
	fi

	if [ ! -d "${UDEV_DEVICE_SCRIPT_DIR_FOR_DVB}" ]; then
		mkdir -p ${UDEV_DEVICE_SCRIPT_DIR_FOR_DVB};
	fi

	if [ -f "${USB_DVB_SCRIPT}" ]; then
		install -m755 -c ${USB_DVB_SCRIPT} ${UDEV_DEVICE_SCRIPT_DIR_FOR_DVB};
	fi

	if [ -f "${DVB_ADMIN_SCRIPT}" ]; then
		mkdir -p ${DVB_ADMIN_DIR};
		install -m755 -c ${DVB_ADMIN_SCRIPT} ${DVB_ADMIN_DIR};
	fi

	if [ -f "${MANUAL_HOTPLUG_GEN_SCRIPT}" ]; then
		install -m755 -c ${MANUAL_HOTPLUG_GEN_SCRIPT} ${UDEV_DEVICE_SCRIPT_DIR_FOR_DVB};
	fi
fi

cd ../
