View | Details | Raw Unified
Collapse All | Expand All

(-) kernel-mod.eclass.bak (-1 / +97 lines)
 Lines 8-13    Link Here 
# This eclass differs from kmod.eclass because it doesn't require modules
# This eclass differs from kmod.eclass because it doesn't require modules
# to be added to the kernel source tree first.
# to be added to the kernel source tree first.
# Variables you can use to change behavior
#
# KERNEL_MOD_SOURCES - space seperated list of source to unpack in kernel-mod_src_unpack()
#					   if you don't want ${A} unpacked
# KERNEL_MOD_KOUTPUT_PATCH - Patch to apply in src_unpack() if a seperate output directory
#							 is detected
# KERNEL_MOD_NORMAL26_PATCH - Patch to fix 2.6 compilation if KV_OUTPUT is /usr/src/linux 
#							  2.6 kernel.
ECLASS=kernel-mod
ECLASS=kernel-mod
INHERITED="$INHERITED $ECLASS"
INHERITED="$INHERITED $ECLASS"
S=${WORKDIR}/${P}
S=${WORKDIR}/${P}
 Lines 16-21    Link Here 
SRC_URI="${SRC_URI:-unknown - please fix me!!}"
SRC_URI="${SRC_URI:-unknown - please fix me!!}"
KERNEL_DIR="${KERNEL_DIR:-/usr/src/linux}"
KERNEL_DIR="${KERNEL_DIR:-/usr/src/linux}"
# KERNEL_MOD_SOURCES is used if you don't want to unpack just ${A}
if [ -z "${KERNEL_MOD_SOURCES}" ]
then
	KERNEL_MOD_SOURCES=${A}
fi
kernel-mod_getmakefilevar ()
kernel-mod_getmakefilevar ()
{
{
	grep $1 $2 | head -n 1 | cut -d = -f 2- | awk '{ print $1 }'
	grep $1 $2 | head -n 1 | cut -d = -f 2- | awk '{ print $1 }'
 Lines 61-66    Link Here 
	KV_MK_VERSION_FULL="$KV_MK_MAJOR.$KV_MK_MINOR.$KV_MK_PATCH$KV_MK_TYPE"
	KV_MK_VERSION_FULL="$KV_MK_MAJOR.$KV_MK_MINOR.$KV_MK_PATCH$KV_MK_TYPE"
	KV_MK_OUTPUT="`kernel-mod_getmakefilevar ^KBUILD_OUTPUT $KV_MK_FILE`"
	
	# Fix for if we found the default KBUILD_OUTPUT instead of a set one
	if [ "${KV_MK_OUTPUT}" = "\$(shell" ]; then
		KV_MK_OUTPUT=""
	fi
	if [ "$KV_MK_VERSION_FULL" != "$KV_DIR_VERSION_FULL" ]; then
	if [ "$KV_MK_VERSION_FULL" != "$KV_DIR_VERSION_FULL" ]; then
		ewarn
		ewarn
		ewarn "The kernel Makefile says that this is a $KV_MK_VERSION_FULL kernel"
		ewarn "The kernel Makefile says that this is a $KV_MK_VERSION_FULL kernel"
 Lines 82-88    Link Here 
	KV_PATCH="$KV_MK_PATCH"
	KV_PATCH="$KV_MK_PATCH"
	KV_TYPE="$KV_MK_TYPE"
	KV_TYPE="$KV_MK_TYPE"
	# if we found an output location, use that. otherwise use KERNEL_DIR.
	if [ ! -z "${KV_MK_OUTPUT}" ]
	then
		einfo "Setting to MK_OUTPUT"
		KV_OUTPUT="$KV_MK_OUTPUT"
	else
		einfo "Setting to KERNEL_DIR"
		KV_OUTPUT="$KERNEL_DIR"
	fi
	if [ "${KV_MINOR}" -gt "4" ]
	then
		KV_OBJ="ko"
	else
		KV_OBJ="o"
	fi
	if [ "${KV_MINOR}" -gt 4 ] && [ "${KV_OUTPUT}" = "/usr/src/linux" ]
	then
		KV_BUILD="${S}/kernel-build"
	else
		KV_BUILD="/usr/src/linux"
	fi
	einfo "Building for Linux ${KV_VERSION_FULL} found in ${KERNEL_DIR}"
	einfo "Building for Linux ${KV_VERSION_FULL} found in ${KERNEL_DIR}"
	if [ "${KV_MINOR}" -gt "4" ]
	then
		einfo "which outputs to ${KV_OUTPUT}"
		# Warn them if they aren't using a different output directory
		if [ "${KV_OUTPUT}" = "/usr/src/linux" ]; then
			ewarn "By not using the kernel's ability to output to an alternative"
			ewarn "directory, some external module builds may fail."
			ewarn "See <insert link to user doc here>"
		fi
	fi
}
}
kernel-mod_checkzlibinflate_configured ()
kernel-mod_checkzlibinflate_configured ()
 Lines 151-161    Link Here 
	die "Kernel doesn't include zlib support"
	die "Kernel doesn't include zlib support"
}
}
kernel-mod_src_unpack ()
{
	check_KV
	kernel-mod_getversion
	unpack ${KERNEL_MOD_SOURCES}
	if [ "${KV_MINOR}" -gt 4 ] 
	then
		cd ${S}
		if [ "${KV_OUTPUT}" = "/usr/src/linux" ]; then
			# Setup our build directory
			einfo "Creating temporary build directory in ${KV_BUILD} using files in ${KV_OUTPUT}"
			mkdir -p ${KV_BUILD}
			cd ${KV_BUILD}
			for link in ${KV_OUTPUT}/.config \
						${KV_OUTPUT}/.version \
						${KV_OUTPUT}/.tmp_versions \
						${KV_OUTPUT}/*;
			do
				ln -s "${link}" .
			done
			# Patch as needed
			if [ -n "${KERNEL_MOD_NORMAL26_PATCH}" ]; then
				einfo "Patching to fix 2.6 module compilation"
				epatch "${KERNEL_MOD_NORMAL26_PATCH}"
			fi
		elif [ -n "${KERNEL_MOD_KOUTPUT_PATCH}" ]; then
			einfo "Patching to enable koutput compatibility"
			epatch ${KERNEL_MOD_KOUTPUT_PATCH}
		fi
	fi
}
kernel-mod_src_compile ()
kernel-mod_src_compile ()
{
{
	emake KERNEL_DIR=${KERNEL_DIR} || die
	emake KERNEL_DIR=${KERNEL_DIR} || die
}
}
kernel-mod_pkg_postinst()
{
	depmod -a
}
kernel-mod_is_2_4_kernel() {
kernel-mod_is_2_4_kernel() {
	kernel-mod_getversion
	kernel-mod_getversion
 Lines 189-192    Link Here 
    fi
    fi
}
}
EXPORT_FUNCTIONS src_compile
EXPORT_FUNCTIONS src_unpack src_compile pkg_postinst