aboutsummaryrefslogtreecommitdiff
path: root/sys/conf/kmod.mk
diff options
context:
space:
mode:
Diffstat (limited to 'sys/conf/kmod.mk')
-rw-r--r--sys/conf/kmod.mk53
1 files changed, 18 insertions, 35 deletions
diff --git a/sys/conf/kmod.mk b/sys/conf/kmod.mk
index 284fe3f745be7..87451df3f915f 100644
--- a/sys/conf/kmod.mk
+++ b/sys/conf/kmod.mk
@@ -28,9 +28,6 @@
#
# KMODUNLOAD Command to unload a kernel module [/sbin/kldunload]
#
-# MFILES Optionally a list of interfaces used by the module.
-# This file contains a default list of interfaces.
-#
# PROG The name of the kernel module to build.
# If not supplied, ${KMOD}.ko is used.
#
@@ -72,7 +69,7 @@ OBJCOPY?= objcopy
.include <bsd.compiler.mk>
.include "config.mk"
-.SUFFIXES: .out .o .c .cc .cxx .C .y .l .s .S
+.SUFFIXES: .out .o .c .cc .cxx .C .y .l .s .S .m
# amd64 and mips use direct linking for kmod, all others use shared binaries
.if ${MACHINE_CPUARCH} != amd64 && ${MACHINE_CPUARCH} != mips
@@ -339,37 +336,6 @@ ${_src}:
# Respect configuration-specific C flags.
CFLAGS+= ${CONF_CFLAGS}
-MFILES?= dev/acpica/acpi_if.m dev/acpi_support/acpi_wmi_if.m \
- dev/agp/agp_if.m dev/ata/ata_if.m dev/eisa/eisa_if.m \
- dev/fb/fb_if.m dev/gpio/gpio_if.m dev/gpio/gpiobus_if.m \
- dev/iicbus/iicbb_if.m dev/iicbus/iicbus_if.m \
- dev/mbox/mbox_if.m dev/mmc/mmcbr_if.m dev/mmc/mmcbus_if.m \
- dev/mii/miibus_if.m dev/mvs/mvs_if.m dev/ofw/ofw_bus_if.m \
- dev/pccard/card_if.m dev/pccard/power_if.m dev/pci/pci_if.m \
- dev/pci/pci_iov_if.m dev/pci/pcib_if.m dev/ppbus/ppbus_if.m \
- dev/sdhci/sdhci_if.m dev/smbus/smbus_if.m dev/spibus/spibus_if.m \
- dev/sound/pci/hda/hdac_if.m \
- dev/sound/pcm/ac97_if.m dev/sound/pcm/channel_if.m \
- dev/sound/pcm/feeder_if.m dev/sound/pcm/mixer_if.m \
- dev/sound/midi/mpu_if.m dev/sound/midi/mpufoi_if.m \
- dev/sound/midi/synth_if.m dev/usb/usb_if.m isa/isa_if.m \
- kern/bus_if.m kern/clock_if.m \
- kern/cpufreq_if.m kern/device_if.m kern/serdev_if.m \
- libkern/iconv_converter_if.m opencrypto/cryptodev_if.m \
- pc98/pc98/canbus_if.m dev/etherswitch/mdio_if.m
-
-.for _srcsrc in ${MFILES}
-.for _ext in c h
-.for _src in ${SRCS:M${_srcsrc:T:R}.${_ext}}
-CLEANFILES+= ${_src}
-.if !target(${_src})
-${_src}: ${SYSDIR}/tools/makeobjops.awk ${SYSDIR}/${_srcsrc}
- ${AWK} -f ${SYSDIR}/tools/makeobjops.awk ${SYSDIR}/${_srcsrc} -${_ext}
-.endif
-.endfor # _src
-.endfor # _ext
-.endfor # _srcsrc
-
.if !empty(SRCS:Mvnode_if.c)
CLEANFILES+= vnode_if.c
vnode_if.c: ${SYSDIR}/tools/vnode_if.awk ${SYSDIR}/kern/vnode_if.src
@@ -388,6 +354,23 @@ vnode_if_typedef.h:
${AWK} -f ${SYSDIR}/tools/vnode_if.awk ${SYSDIR}/kern/vnode_if.src -q
.endif
+# Build _if.[ch] from _if.m, and clean them when we're done.
+.if !defined(_MPATH)
+__MPATH!=find ${SYSDIR:tA}/ -name \*_if.m
+_MPATH=${__MPATH:H:O:u}
+.endif
+.PATH.m: ${_MPATH}
+.for _s in ${SRCS:M*_if.[ch]}
+.if eixsts(${_s:R}.m})
+CLEANFILES+= ${_s}
+.endif
+.endfor # _s
+.m.c: ${SYSDIR}/tools/makeobjops.awk
+ ${AWK} -f ${SYSDIR}/tools/makeobjops.awk ${.IMPSRC} -c
+
+.m.h: ${SYSDIR}/tools/makeobjops.awk
+ ${AWK} -f ${SYSDIR}/tools/makeobjops.awk ${.IMPSRC} -h
+
.for _i in mii pccard
.if !empty(SRCS:M${_i}devs.h)
CLEANFILES+= ${_i}devs.h