#! /usr/bin/env sh
# Copyright (c) 2000-2018 Synology Inc. All rights reserved.

case ${MakeClean} in
    [Yy][Ee][Ss])
        make clean
		;;
esac

case ${CleanOnly} in
    [Yy][Ee][Ss])
        return
        ;;
esac

if ! SupportAppArmorPlatform; then
    SkipThisProject
    exit 0
fi

source SynoBuildConf/_helpers

echo '==========================='
echo '          synology         '
echo '==========================='
export KERNEL_VER="$(GetKernelVer)"
export PREFERRED_FEATURES=

echo "Linux kernel ver ${KERNEL_VER}"
if LinuxKernelVercomp "${KERNEL_VER}" "3.0.0" ; then
	echo "Error: AppArmor 2.9.x doesn't support Linux kernel ver ${KERNEL_VER}"
elif LinuxKernelVercomp "${KERNEL_VER}" "3.4.0" ; then
	export PREFERRED_FEATURES="network clear_diff_encode"
	echo "Linux-3.0 ~ linux-3.3 preferred features: ${PREFERRED_FEATURES}"
elif LinuxKernelVercomp "${KERNEL_VER}" "5.11.0" ; then
	export PREFERRED_FEATURES="network clear_diff_encode mount setload"
	echo "Linux-3.4 ~ linux-5.10 preferred features: ${PREFERRED_FEATURES}"
else
	echo "Error: AppArmor 2.9.x doesn't support Linux kernel ver ${KERNEL_VER}"
fi

if [ -z "${PREFERRED_FEATURES}" ]; then
	echo "Error: PREFERRED_FEATURES is empty"
	exit 1
fi

echo "Generating header file"
cat <<EOF | tee libraries/libapparmor/include/sys/synoaa.h
#define SYNO_PREFERRED_FEATURES "${PREFERRED_FEATURES}"
EOF
echo "Generating environment variable file"
cat <<EOF | tee libraries/libapparmor/include/sys/synoaa.env
PREFERRED_FEATURES="${PREFERRED_FEATURES}"
EOF

echo '==========================='
echo '       libapparmor         '
echo '==========================='
export PATH=$PATH:/usr/bin/core_perl

(
set -x
	cd libraries/libapparmor
	env CC=${CC} LD=${LD} LDFLAGS="${LDFLAGS}" CFLAGS="${CFLAGS} -DSYNO_APPARMOR_PATCH" \
		CPP="${CC} -E" AR=${AR} RANLIB=${RANLIB} ToolChainSysRoot=${ToolChainSysRoot}\
		./configure --prefix=/usr --sbindir=/usr/bin $ConfigOpt
	make ${MAKE_FLAGS}
)
