aboutsummaryrefslogtreecommitdiffstats
path: root/Mk
diff options
context:
space:
mode:
authorrene <rene@FreeBSD.org>2013-10-31 19:34:46 +0800
committerrene <rene@FreeBSD.org>2013-10-31 19:34:46 +0800
commit70f0652ff148b4d3c7349945dca6724487b8b796 (patch)
tree0c8b91d026b7e7bf38868d6b7ff02544242b6a8f /Mk
parent537203c90564c78825aef654d676e4c79bb1e4c0 (diff)
downloadfreebsd-ports-graphics-70f0652ff148b4d3c7349945dca6724487b8b796.tar.gz
freebsd-ports-graphics-70f0652ff148b4d3c7349945dca6724487b8b796.tar.zst
freebsd-ports-graphics-70f0652ff148b4d3c7349945dca6724487b8b796.zip
Add a new USES for kernel module ports.
USES=kmod takes no arguments and: - adds kld to CATEGORIES - sets SSP_UNSAFE - sets IGNORE if the kernel sources are not found - defines KMODDIR to /boot/modules by default, add it to PLIST_SUB and MAKE_ENV, and create it upon installation - handles cross-referencing kernel modules upon installation and deinstallation Approved by: bapt
Diffstat (limited to 'Mk')
-rw-r--r--Mk/Uses/kmod.mk47
1 files changed, 47 insertions, 0 deletions
diff --git a/Mk/Uses/kmod.mk b/Mk/Uses/kmod.mk
new file mode 100644
index 00000000000..b85513e921f
--- /dev/null
+++ b/Mk/Uses/kmod.mk
@@ -0,0 +1,47 @@
+# $FreeBSD$
+#
+# Handles dependency on kernel sources
+#
+# MAINTAINER: rene@FreeBSD.org
+#
+# Feature: kmod
+# Usage: USES=kmod
+# Valid ARGS: none
+#
+.if !defined(_INCLUDE_USES_KMOD_MK)
+_INCLUDE_USES_KMOD_MK= yes
+
+.if defined(kmod_ARGS)
+IGNORE= USES=kmod takes no arguments
+.endif
+
+.if !exists(${SRC_BASE}/sys/Makefile)
+IGNORE= requires kernel source files in ${SRC_BASE}
+.endif
+
+CATEGORIES+= kld
+
+SSP_UNSAFE= kernel module does not support SSP
+
+KMODDIR?= /boot/modules
+PLIST_SUB+= KMODDIR="${KMODDIR:C,^/,,}"
+MAKE_ENV+= KMODDIR="${KMODDIR}" SYSDIR="${SRC_BASE}/sys"
+
+pre-install: kmod-pre-install
+kmod-pre-install:
+.if defined(NO_STAGE)
+ ${MKDIR} ${KMODDIR}
+.else
+ ${MKDIR} ${STAGEDIR}${KMODDIR}
+.endif
+
+post-install: kmod-post-install
+kmod-post-install:
+ ${ECHO_CMD} "@exec /usr/sbin/kldxref ${KMODDIR}" >> ${TMPPLIST}
+ ${ECHO_CMD} "@unexec /usr/sbin/kldxref ${KMODDIR}" >> ${TMPPLIST}
+ ${ECHO_CMD} "@dirrmtry ${KMODDIR}" >> ${TMPPLIST}
+.if defined(NO_STAGE)
+ /usr/sbin/kldxref ${KMODDIR}
+.endif
+
+.endif