From 12f05b84463baacfada5a79eaed061a4899d98aa Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Fri, 3 Jul 2015 01:50:26 +0000 Subject: [PATCH] Kill MFILES and find things automatically. It turned out to be only lightly used. Find the proper .m file when we depend on *_if.[ch] in the srcs line, with seat-belts for false positive matches. This uses make's path mechanism. A further refinement would be to calculate this once, and then pass the resulting _MPATH to modules submakes. Differential Revision: https://reviews.freebsd.org/D2327 --- sys/conf/kmod.mk | 51 ++++++------------- sys/modules/agp/Makefile | 1 - .../geom/geom_part/geom_part_apm/Makefile | 2 - .../geom/geom_part/geom_part_bsd/Makefile | 2 - .../geom/geom_part/geom_part_bsd64/Makefile | 2 - .../geom/geom_part/geom_part_ebr/Makefile | 2 - .../geom/geom_part/geom_part_gpt/Makefile | 2 - .../geom/geom_part/geom_part_ldm/Makefile | 2 - .../geom/geom_part/geom_part_mbr/Makefile | 2 - .../geom/geom_part/geom_part_pc98/Makefile | 2 - .../geom/geom_part/geom_part_vtoc8/Makefile | 2 - sys/modules/geom/geom_raid/Makefile | 3 -- sys/modules/kgssapi/Makefile | 1 - sys/modules/kgssapi_krb5/Makefile | 1 - sys/modules/ksyms/Makefile | 2 - sys/modules/libiconv/Makefile | 1 - sys/modules/mvs/Makefile | 2 - sys/modules/nand/Makefile | 3 -- sys/modules/nandsim/Makefile | 2 - sys/modules/proto/Makefile | 6 --- sys/modules/puc/Makefile | 3 -- sys/modules/scc/Makefile | 3 -- sys/modules/uart/Makefile | 4 -- sys/modules/virtio/balloon/Makefile | 3 -- sys/modules/virtio/block/Makefile | 3 -- sys/modules/virtio/console/Makefile | 3 -- sys/modules/virtio/network/Makefile | 3 -- sys/modules/virtio/pci/Makefile | 3 -- sys/modules/virtio/random/Makefile | 3 -- sys/modules/virtio/scsi/Makefile | 3 -- sys/modules/virtio/virtio/Makefile | 3 -- 31 files changed, 16 insertions(+), 109 deletions(-) diff --git a/sys/conf/kmod.mk b/sys/conf/kmod.mk index 284fe3f745b..989d6813c18 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 .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,21 @@ 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. +__MPATH!=find ${SYSDIR:tA}/ -name \*_if.m +_MPATH=${__MPATH:H:O:u} +.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 diff --git a/sys/modules/agp/Makefile b/sys/modules/agp/Makefile index cbb05b74f11..bed6c290091 100644 --- a/sys/modules/agp/Makefile +++ b/sys/modules/agp/Makefile @@ -19,7 +19,6 @@ SRCS+= agp_apple.c .endif SRCS+= device_if.h bus_if.h agp_if.h pci_if.h SRCS+= opt_agp.h -MFILES= kern/device_if.m kern/bus_if.m dev/agp/agp_if.m dev/pci/pci_if.m EXPORT_SYMS= agp_find_device \ agp_state \ diff --git a/sys/modules/geom/geom_part/geom_part_apm/Makefile b/sys/modules/geom/geom_part/geom_part_apm/Makefile index 666cf92f445..afd9eb6bc8d 100644 --- a/sys/modules/geom/geom_part/geom_part_apm/Makefile +++ b/sys/modules/geom/geom_part/geom_part_apm/Makefile @@ -7,6 +7,4 @@ SRCS= g_part_apm.c SRCS+= bus_if.h device_if.h g_part_if.h -MFILES= kern/bus_if.m kern/device_if.m geom/part/g_part_if.m - .include diff --git a/sys/modules/geom/geom_part/geom_part_bsd/Makefile b/sys/modules/geom/geom_part/geom_part_bsd/Makefile index 9a6e76d3189..f6d323c766f 100644 --- a/sys/modules/geom/geom_part/geom_part_bsd/Makefile +++ b/sys/modules/geom/geom_part/geom_part_bsd/Makefile @@ -7,6 +7,4 @@ SRCS= g_part_bsd.c geom_bsd_enc.c SRCS+= bus_if.h device_if.h g_part_if.h -MFILES= kern/bus_if.m kern/device_if.m geom/part/g_part_if.m - .include diff --git a/sys/modules/geom/geom_part/geom_part_bsd64/Makefile b/sys/modules/geom/geom_part/geom_part_bsd64/Makefile index bc1bb55b5fd..abe153fe56b 100644 --- a/sys/modules/geom/geom_part/geom_part_bsd64/Makefile +++ b/sys/modules/geom/geom_part/geom_part_bsd64/Makefile @@ -7,6 +7,4 @@ SRCS= g_part_bsd64.c SRCS+= bus_if.h device_if.h g_part_if.h -MFILES= kern/bus_if.m kern/device_if.m geom/part/g_part_if.m - .include diff --git a/sys/modules/geom/geom_part/geom_part_ebr/Makefile b/sys/modules/geom/geom_part/geom_part_ebr/Makefile index a9fa117bd95..3b0d36bff48 100644 --- a/sys/modules/geom/geom_part/geom_part_ebr/Makefile +++ b/sys/modules/geom/geom_part/geom_part_ebr/Makefile @@ -8,6 +8,4 @@ SRCS= g_part_ebr.c SRCS+= bus_if.h device_if.h g_part_if.h SRCS+= opt_geom.h -MFILES= kern/bus_if.m kern/device_if.m geom/part/g_part_if.m - .include diff --git a/sys/modules/geom/geom_part/geom_part_gpt/Makefile b/sys/modules/geom/geom_part/geom_part_gpt/Makefile index 05f77c06d4f..26df04a09e1 100644 --- a/sys/modules/geom/geom_part/geom_part_gpt/Makefile +++ b/sys/modules/geom/geom_part/geom_part_gpt/Makefile @@ -7,6 +7,4 @@ SRCS= g_part_gpt.c SRCS+= bus_if.h device_if.h g_part_if.h -MFILES= kern/bus_if.m kern/device_if.m geom/part/g_part_if.m - .include diff --git a/sys/modules/geom/geom_part/geom_part_ldm/Makefile b/sys/modules/geom/geom_part/geom_part_ldm/Makefile index 01fcd179975..71f364d76fe 100644 --- a/sys/modules/geom/geom_part/geom_part_ldm/Makefile +++ b/sys/modules/geom/geom_part/geom_part_ldm/Makefile @@ -7,6 +7,4 @@ SRCS= g_part_ldm.c SRCS+= bus_if.h device_if.h g_part_if.h -MFILES= kern/bus_if.m kern/device_if.m geom/part/g_part_if.m - .include diff --git a/sys/modules/geom/geom_part/geom_part_mbr/Makefile b/sys/modules/geom/geom_part/geom_part_mbr/Makefile index 98ae1dad06e..3dfd72ecbd0 100644 --- a/sys/modules/geom/geom_part/geom_part_mbr/Makefile +++ b/sys/modules/geom/geom_part/geom_part_mbr/Makefile @@ -7,6 +7,4 @@ SRCS= g_part_mbr.c SRCS+= bus_if.h device_if.h g_part_if.h -MFILES= kern/bus_if.m kern/device_if.m geom/part/g_part_if.m - .include diff --git a/sys/modules/geom/geom_part/geom_part_pc98/Makefile b/sys/modules/geom/geom_part/geom_part_pc98/Makefile index 44732dff1bd..283809f3d6b 100644 --- a/sys/modules/geom/geom_part/geom_part_pc98/Makefile +++ b/sys/modules/geom/geom_part/geom_part_pc98/Makefile @@ -7,6 +7,4 @@ SRCS= g_part_pc98.c SRCS+= bus_if.h device_if.h g_part_if.h -MFILES= kern/bus_if.m kern/device_if.m geom/part/g_part_if.m - .include diff --git a/sys/modules/geom/geom_part/geom_part_vtoc8/Makefile b/sys/modules/geom/geom_part/geom_part_vtoc8/Makefile index 1f13bdfae76..085648ae220 100644 --- a/sys/modules/geom/geom_part/geom_part_vtoc8/Makefile +++ b/sys/modules/geom/geom_part/geom_part_vtoc8/Makefile @@ -7,6 +7,4 @@ SRCS= g_part_vtoc8.c SRCS+= bus_if.h device_if.h g_part_if.h -MFILES= kern/bus_if.m kern/device_if.m geom/part/g_part_if.m - .include diff --git a/sys/modules/geom/geom_raid/Makefile b/sys/modules/geom/geom_raid/Makefile index 2092a640928..d2c3e4d2c8d 100644 --- a/sys/modules/geom/geom_raid/Makefile +++ b/sys/modules/geom/geom_raid/Makefile @@ -13,7 +13,4 @@ SRCS+= md_ddf.c md_intel.c md_jmicron.c md_nvidia.c md_promise.c md_sii.c SRCS+= tr_concat.c tr_raid0.c tr_raid1.c tr_raid1e.c tr_raid5.c -MFILES= kern/bus_if.m kern/device_if.m -MFILES+= geom/raid/g_raid_md_if.m geom/raid/g_raid_tr_if.m - .include diff --git a/sys/modules/kgssapi/Makefile b/sys/modules/kgssapi/Makefile index 691763336b1..c2c8e1303f2 100644 --- a/sys/modules/kgssapi/Makefile +++ b/sys/modules/kgssapi/Makefile @@ -36,7 +36,6 @@ SRCS+= rpcsec_gss.c \ svc_rpcsec_gss.c SRCS+= kgss_if.h kgss_if.c -MFILES= kgssapi/kgss_if.m SRCS+= gssd.h gssd_xdr.c gssd_clnt.c CLEANFILES= gssd.h gssd_xdr.c gssd_clnt.c diff --git a/sys/modules/kgssapi_krb5/Makefile b/sys/modules/kgssapi_krb5/Makefile index 337402f64e6..dfa4b998a4e 100644 --- a/sys/modules/kgssapi_krb5/Makefile +++ b/sys/modules/kgssapi_krb5/Makefile @@ -12,7 +12,6 @@ SRCS= krb5_mech.c \ opt_inet6.h SRCS+= kgss_if.h gssd.h -MFILES= kgssapi/kgss_if.m CLEANFILES= gssd.h S= ${.CURDIR}/../.. diff --git a/sys/modules/ksyms/Makefile b/sys/modules/ksyms/Makefile index 94e91d8ed44..e5480b823dc 100644 --- a/sys/modules/ksyms/Makefile +++ b/sys/modules/ksyms/Makefile @@ -5,6 +5,4 @@ KMOD= ksyms SRCS= ksyms.c linker_if.h -MFILES= kern/linker_if.m - .include diff --git a/sys/modules/libiconv/Makefile b/sys/modules/libiconv/Makefile index 1b519707737..dd14046e328 100644 --- a/sys/modules/libiconv/Makefile +++ b/sys/modules/libiconv/Makefile @@ -6,7 +6,6 @@ KMOD= libiconv SRCS= iconv.c iconv_ucs.c iconv_xlat.c iconv_xlat16.c SRCS+= iconv.h SRCS+= iconv_converter_if.c iconv_converter_if.h -MFILES= libkern/iconv_converter_if.m EXPORT_SYMS= iconv_add \ iconv_open \ diff --git a/sys/modules/mvs/Makefile b/sys/modules/mvs/Makefile index 00b90de0159..5931492a329 100644 --- a/sys/modules/mvs/Makefile +++ b/sys/modules/mvs/Makefile @@ -5,6 +5,4 @@ KMOD= mvs SRCS= mvs.c mvs_pci.c mvs.h mvs_if.c mvs_if.h device_if.h bus_if.h pci_if.h opt_cam.h -MFILES= kern/bus_if.m kern/device_if.m dev/pci/pci_if.m dev/mvs/mvs_if.m - .include diff --git a/sys/modules/nand/Makefile b/sys/modules/nand/Makefile index 321388bc3c8..4f66295c773 100644 --- a/sys/modules/nand/Makefile +++ b/sys/modules/nand/Makefile @@ -7,7 +7,4 @@ SRCS= nand.c nand_bbt.c nand_cdev.c nand_generic.c nand_geom.c \ nand_id.c nandbus.c nandbus_if.c nand_if.c nfc_if.c \ nand_if.h device_if.h bus_if.h nfc_if.h nandbus_if.h -MFILES= kern/bus_if.m kern/device_if.m dev/nand/nfc_if.m \ - dev/nand/nand_if.m dev/nand/nandbus_if.m - .include diff --git a/sys/modules/nandsim/Makefile b/sys/modules/nandsim/Makefile index 1dc95014811..0a729eb1c08 100644 --- a/sys/modules/nandsim/Makefile +++ b/sys/modules/nandsim/Makefile @@ -5,7 +5,5 @@ KMOD= nandsim SRCS= nandsim.c nandsim_chip.c nandsim_swap.c nandsim_ctrl.c nandsim_log.c\ bus_if.h device_if.h vnode_if.h nfc_if.h nand_if.h -MFILES= kern/bus_if.m kern/device_if.m\ - dev/nand/nfc_if.m dev/nand/nand_if.m .include diff --git a/sys/modules/proto/Makefile b/sys/modules/proto/Makefile index 5db2dd83171..80a0050c1c9 100644 --- a/sys/modules/proto/Makefile +++ b/sys/modules/proto/Makefile @@ -15,10 +15,4 @@ SRCS+= \ isa_if.h \ pci_if.h -MFILES= \ - dev/pci/pci_if.m \ - isa/isa_if.m \ - kern/bus_if.m \ - kern/device_if.m - .include diff --git a/sys/modules/puc/Makefile b/sys/modules/puc/Makefile index 2b0fbfc9655..628a3b63daa 100644 --- a/sys/modules/puc/Makefile +++ b/sys/modules/puc/Makefile @@ -8,7 +8,4 @@ SRCS= puc.c puc_cfg.c puc_pci.c puc_pccard.c pucdata.c SRCS+= bus_if.h device_if.h serdev_if.c serdev_if.h \ card_if.h pci_if.h -MFILES= kern/bus_if.m kern/device_if.m kern/serdev_if.m \ - dev/pccard/card_if.m dev/pci/pci_if.m - .include diff --git a/sys/modules/scc/Makefile b/sys/modules/scc/Makefile index 062de31eb7d..b6cbd3be9f7 100644 --- a/sys/modules/scc/Makefile +++ b/sys/modules/scc/Makefile @@ -14,7 +14,4 @@ SRCS= ${scc_bfe} scc_core.c scc_if.c scc_if.h \ scc_dev_sab82532.c scc_dev_z8530.c SRCS+= bus_if.h device_if.h ofw_bus_if.h serdev_if.c serdev_if.h -MFILES= dev/ofw/ofw_bus_if.m dev/scc/scc_if.m \ - kern/bus_if.m kern/device_if.m kern/serdev_if.m - .include diff --git a/sys/modules/uart/Makefile b/sys/modules/uart/Makefile index 6e7e9caced5..6a93320447b 100644 --- a/sys/modules/uart/Makefile +++ b/sys/modules/uart/Makefile @@ -36,8 +36,4 @@ SRCS+= bus_if.h card_if.h device_if.h isa_if.h ${ofw_bus_if} pci_if.h \ power_if.h pccarddevs.h serdev_if.h SRCS+= opt_platform.h -MFILES= dev/pccard/card_if.m dev/pccard/power_if.m dev/pci/pci_if.m \ - dev/ofw/ofw_bus_if.m dev/uart/uart_if.m isa/isa_if.m kern/bus_if.m \ - kern/device_if.m kern/serdev_if.m - .include diff --git a/sys/modules/virtio/balloon/Makefile b/sys/modules/virtio/balloon/Makefile index dc14cbc7a96..39c8b1cd9ba 100644 --- a/sys/modules/virtio/balloon/Makefile +++ b/sys/modules/virtio/balloon/Makefile @@ -30,7 +30,4 @@ SRCS= virtio_balloon.c SRCS+= virtio_bus_if.h virtio_if.h SRCS+= bus_if.h device_if.h -MFILES= kern/bus_if.m kern/device_if.m \ - dev/virtio/virtio_bus_if.m dev/virtio/virtio_if.m - .include diff --git a/sys/modules/virtio/block/Makefile b/sys/modules/virtio/block/Makefile index 5df9eab0d19..5b73a6d02a2 100644 --- a/sys/modules/virtio/block/Makefile +++ b/sys/modules/virtio/block/Makefile @@ -30,7 +30,4 @@ SRCS= virtio_blk.c SRCS+= virtio_bus_if.h virtio_if.h SRCS+= bus_if.h device_if.h -MFILES= kern/bus_if.m kern/device_if.m \ - dev/virtio/virtio_bus_if.m dev/virtio/virtio_if.m - .include diff --git a/sys/modules/virtio/console/Makefile b/sys/modules/virtio/console/Makefile index 062e0499171..7490720fb24 100644 --- a/sys/modules/virtio/console/Makefile +++ b/sys/modules/virtio/console/Makefile @@ -30,7 +30,4 @@ SRCS= virtio_console.c SRCS+= virtio_bus_if.h virtio_if.h SRCS+= bus_if.h device_if.h -MFILES= kern/bus_if.m kern/device_if.m \ - dev/virtio/virtio_bus_if.m dev/virtio/virtio_if.m - .include diff --git a/sys/modules/virtio/network/Makefile b/sys/modules/virtio/network/Makefile index bc5de974060..6dc3d864c97 100644 --- a/sys/modules/virtio/network/Makefile +++ b/sys/modules/virtio/network/Makefile @@ -31,7 +31,4 @@ SRCS+= virtio_bus_if.h virtio_if.h SRCS+= bus_if.h device_if.h SRCS+= opt_inet.h opt_inet6.h -MFILES= kern/bus_if.m kern/device_if.m \ - dev/virtio/virtio_bus_if.m dev/virtio/virtio_if.m - .include diff --git a/sys/modules/virtio/pci/Makefile b/sys/modules/virtio/pci/Makefile index a58d64c2c41..4d85669d76c 100644 --- a/sys/modules/virtio/pci/Makefile +++ b/sys/modules/virtio/pci/Makefile @@ -30,7 +30,4 @@ SRCS= virtio_pci.c SRCS+= virtio_bus_if.h virtio_if.h SRCS+= bus_if.h device_if.h pci_if.h -MFILES= kern/bus_if.m kern/device_if.m dev/pci/pci_if.m \ - dev/virtio/virtio_bus_if.m dev/virtio/virtio_if.m - .include diff --git a/sys/modules/virtio/random/Makefile b/sys/modules/virtio/random/Makefile index fb5b9b0cb22..25954d03d25 100644 --- a/sys/modules/virtio/random/Makefile +++ b/sys/modules/virtio/random/Makefile @@ -30,7 +30,4 @@ SRCS= virtio_random.c SRCS+= virtio_bus_if.h virtio_if.h SRCS+= bus_if.h device_if.h -MFILES= kern/bus_if.m kern/device_if.m \ - dev/virtio/virtio_bus_if.m dev/virtio/virtio_if.m - .include diff --git a/sys/modules/virtio/scsi/Makefile b/sys/modules/virtio/scsi/Makefile index 640912f96bb..0363909f346 100644 --- a/sys/modules/virtio/scsi/Makefile +++ b/sys/modules/virtio/scsi/Makefile @@ -30,7 +30,4 @@ SRCS= virtio_scsi.c SRCS+= virtio_bus_if.h virtio_if.h SRCS+= bus_if.h device_if.h opt_scsi.h opt_cam.h -MFILES= kern/bus_if.m kern/device_if.m \ - dev/virtio/virtio_bus_if.m dev/virtio/virtio_if.m - .include diff --git a/sys/modules/virtio/virtio/Makefile b/sys/modules/virtio/virtio/Makefile index e8973c0bbe5..e99b52961f4 100644 --- a/sys/modules/virtio/virtio/Makefile +++ b/sys/modules/virtio/virtio/Makefile @@ -32,7 +32,4 @@ SRCS+= virtio_bus_if.c virtio_bus_if.h SRCS+= virtio_if.c virtio_if.h SRCS+= bus_if.h device_if.h -MFILES= kern/bus_if.m kern/device_if.m \ - dev/virtio/virtio_bus_if.m dev/virtio/virtio_if.m - .include