From 3f664fc6892888db9f66970291e62df95aaa03d5 Mon Sep 17 00:00:00 2001 From: Peter Wemm Date: Sat, 10 Jun 2000 22:13:40 +0000 Subject: [PATCH] A checkpoint of a part of a work-in-progress. Some more cleanups for config(8). This commit allows control of the creation of the #include "foo.h" files. We now only create them explicitly when needed. BTW; these are mostly bad because they usually imply static limits on numbers of units for devices. eg: struct mysoftc sc[NFOO]; These static limits have Got To Go. --- sys/conf/Makefile.alpha | 2 +- sys/conf/Makefile.i386 | 2 +- sys/conf/Makefile.pc98 | 2 +- sys/conf/Makefile.powerpc | 2 +- sys/conf/files | 70 +++++++++++++++++----------------- sys/conf/files.alpha | 17 +++++---- sys/conf/files.i386 | 71 ++++++++++++++++++----------------- sys/conf/files.pc98 | 73 ++++++++++++++++++------------------ usr.sbin/config/config.h | 4 +- usr.sbin/config/configvers.h | 2 +- usr.sbin/config/main.c | 3 -- usr.sbin/config/mkheaders.c | 54 +++++++++++--------------- usr.sbin/config/mkmakefile.c | 50 ++++++++++-------------- usr.sbin/config/mkoptions.c | 7 ++++ 14 files changed, 174 insertions(+), 185 deletions(-) diff --git a/sys/conf/Makefile.alpha b/sys/conf/Makefile.alpha index f73f864acb5..18a94ea608a 100644 --- a/sys/conf/Makefile.alpha +++ b/sys/conf/Makefile.alpha @@ -17,7 +17,7 @@ # # Which version of config(8) is required. -%VERSREQ= 400018 +%VERSREQ= 500001 # Can be overridden by makeoptions or /etc/make.conf KERNEL?= kernel diff --git a/sys/conf/Makefile.i386 b/sys/conf/Makefile.i386 index 8d0dcf8308d..81d2d74d2ce 100644 --- a/sys/conf/Makefile.i386 +++ b/sys/conf/Makefile.i386 @@ -17,7 +17,7 @@ # # Which version of config(8) is required. -%VERSREQ= 400018 +%VERSREQ= 500001 # Can be overridden by makeoptions or /etc/make.conf KERNEL?= kernel diff --git a/sys/conf/Makefile.pc98 b/sys/conf/Makefile.pc98 index f4394a33953..686dcef863e 100644 --- a/sys/conf/Makefile.pc98 +++ b/sys/conf/Makefile.pc98 @@ -19,7 +19,7 @@ # # Which version of config(8) is required. -%VERSREQ= 400018 +%VERSREQ= 500001 # Can be overridden by makeoptions or /etc/make.conf KERNEL?= kernel diff --git a/sys/conf/Makefile.powerpc b/sys/conf/Makefile.powerpc index 8d0dcf8308d..81d2d74d2ce 100644 --- a/sys/conf/Makefile.powerpc +++ b/sys/conf/Makefile.powerpc @@ -17,7 +17,7 @@ # # Which version of config(8) is required. -%VERSREQ= 400018 +%VERSREQ= 500001 # Can be overridden by makeoptions or /etc/make.conf KERNEL?= kernel diff --git a/sys/conf/files b/sys/conf/files index f532fb4edfc..c3336f9366e 100644 --- a/sys/conf/files +++ b/sys/conf/files @@ -34,7 +34,7 @@ cam/scsi/scsi_scan.c optional scan cam/scsi/scsi_ses.c optional ses cam/scsi/scsi_targ_bh.c optional targbh cam/scsi/scsi_target.c optional targ -coda/coda_fbsd.c optional vcoda +coda/coda_fbsd.c count vcoda coda/coda_namecache.c optional vcoda coda/coda_psdev.c optional vcoda coda/coda_subr.c optional vcoda @@ -81,7 +81,7 @@ dev/advansys/adw_pci.c optional adw pci dev/advansys/adwcam.c optional adw dev/advansys/adwlib.c optional adw dev/advansys/adwmcode.c optional adw -dev/aha/aha.c optional aha +dev/aha/aha.c count aha dev/aha/aha_isa.c optional aha isa dev/aha/aha_mca.c optional aha mca dev/ahb/ahb.c optional ahb eisa @@ -106,24 +106,24 @@ dev/awi/awi.c optional awi dev/awi/if_awi_pccard.c optional awi card dev/bktr/bktr_audio.c optional bktr pci dev/bktr/bktr_card.c optional bktr pci -dev/bktr/bktr_core.c optional bktr pci +dev/bktr/bktr_core.c count bktr pci dev/bktr/bktr_i2c.c optional bktr pci smbus dev/bktr/bktr_os.c optional bktr pci dev/bktr/bktr_tuner.c optional bktr pci -dev/buslogic/bt.c optional bt +dev/buslogic/bt.c count bt dev/buslogic/bt_eisa.c optional bt eisa dev/buslogic/bt_isa.c optional bt isa dev/buslogic/bt_mca.c optional bt mca dev/buslogic/bt_pci.c optional bt pci dev/cardbus/cardbus.c optional cardbus -dev/ccd/ccd.c optional ccd +dev/ccd/ccd.c count ccd dev/cs/if_cs.c optional cs #dev/dpt/dpt_control.c optional dpt dev/dpt/dpt_eisa.c optional dpt eisa dev/dpt/dpt_pci.c optional dpt pci dev/dpt/dpt_scsi.c optional dpt dev/ed/if_ed_pci.c optional ed pci -dev/en/midway.c optional en +dev/en/midway.c count en dev/ep/if_ep.c optional ep dev/ep/if_ep_eisa.c optional ep eisa dev/ep/if_ep_isa.c optional ep isa @@ -157,7 +157,7 @@ dev/ida/ida.c optional ida dev/ida/ida_disk.c optional ida dev/ida/ida_eisa.c optional ida eisa dev/ida/ida_pci.c optional ida pci -dev/ie/if_ie.c optional ie isa +dev/ie/if_ie.c count ie isa dev/iicbus/iicbb_if.m optional iicbb dev/iicbus/iicbus_if.m optional iicbus dev/iicbus/if_ic.c optional ic @@ -171,7 +171,7 @@ dev/isp/isp.c optional isp dev/isp/isp_freebsd.c optional isp dev/isp/isp_target.c optional isp dev/lmc/if_lmc.c optional lmc -dev/lnc/if_lnc.c optional lnc +dev/lnc/if_lnc.c count lnc dev/lnc/if_lnc_isa.c optional lnc isa dev/lnc/if_lnc_pc98.c optional lnc isa dev/lnc/if_lnc_pci.c optional lnc pci @@ -204,7 +204,7 @@ dev/pccard/power_if.m optional pccard dev/pcic/i82365.c optional pcic pccard dev/pcic/i82365_isa.c optional pcic pccard dev/pdq/if_fea.c optional fea eisa -dev/pdq/if_fpa.c optional fpa pci +dev/pdq/if_fpa.c count fpa pci dev/pdq/pdq.c optional fea eisa dev/pdq/pdq.c optional fpa pci dev/pdq/pdq_ifsubr.c optional fea eisa @@ -232,7 +232,7 @@ dev/si/si_pci.c optional si pci dev/smbus/smbus_if.m optional smbus dev/smbus/smb.c optional smb dev/smbus/smbconf.c optional smbus -dev/smbus/smbus.c optional smbus +dev/smbus/smbus.c count smbus dev/sn/if_sn.c optional sn dev/sn/if_sn_isa.c optional sn isa dev/sn/if_sn_pccard.c optional sn card @@ -305,7 +305,7 @@ dev/vinum/vinumrevive.c optional vinum dev/vinum/vinumstate.c optional vinum dev/vinum/vinumutil.c optional vinum dev/vn/vn.c optional vn -dev/vx/if_vx.c optional vx +dev/vx/if_vx.c count vx dev/vx/if_vx_eisa.c optional vx eisa dev/vx/if_vx_pci.c optional vx pci dev/xe/if_xe.c optional xe @@ -320,21 +320,21 @@ gnu/ext2fs/ext2_subr.c optional ext2fs gnu/ext2fs/ext2_vfsops.c optional ext2fs gnu/ext2fs/ext2_vnops.c optional ext2fs # device drivers -i4b/driver/i4b_trace.c optional i4btrc -i4b/driver/i4b_rbch.c optional i4brbch -i4b/driver/i4b_tel.c optional i4btel -i4b/driver/i4b_ipr.c optional i4bipr -i4b/driver/i4b_ctl.c optional i4bctl -i4b/driver/i4b_isppp.c optional i4bisppp -net/if_spppsubr.c optional sppp +i4b/driver/i4b_trace.c count i4btrc +i4b/driver/i4b_rbch.c count i4brbch +i4b/driver/i4b_tel.c count i4btel +i4b/driver/i4b_ipr.c count i4bipr +i4b/driver/i4b_ctl.c count i4bctl +i4b/driver/i4b_isppp.c count i4bisppp +net/if_spppsubr.c count sppp # needed by i4bipr net/slcompress.c optional i4bipr # tina-dd control driver -i4b/tina-dd/i4b_tina_dd.c optional tina +i4b/tina-dd/i4b_tina_dd.c count tina # support i4b/layer2/i4b_mbuf.c optional i4btrc # Q.921 handler -i4b/layer2/i4b_l2.c optional i4bq921 +i4b/layer2/i4b_l2.c count i4bq921 i4b/layer2/i4b_l2fsm.c optional i4bq921 i4b/layer2/i4b_uframe.c optional i4bq921 i4b/layer2/i4b_tei.c optional i4bq921 @@ -344,7 +344,7 @@ i4b/layer2/i4b_l2timer.c optional i4bq921 i4b/layer2/i4b_util.c optional i4bq921 i4b/layer2/i4b_lme.c optional i4bq921 # Q.931 handler -i4b/layer3/i4b_q931.c optional i4bq931 +i4b/layer3/i4b_q931.c count i4bq931 i4b/layer3/i4b_l3fsm.c optional i4bq931 i4b/layer3/i4b_l3timer.c optional i4bq931 i4b/layer3/i4b_l2if.c optional i4bq931 @@ -352,11 +352,11 @@ i4b/layer3/i4b_l4if.c optional i4bq931 i4b/layer3/i4b_q932fac.c optional i4bq931 # isdn device driver, interface to i4bd i4b/layer4/i4b_i4bdrv.c optional i4b -i4b/layer4/i4b_l4.c optional i4b +i4b/layer4/i4b_l4.c count i4b i4b/layer4/i4b_l4mgmt.c optional i4b i4b/layer4/i4b_l4timer.c optional i4b isa/isa_if.m optional isa -isa/isa_common.c optional isa +isa/isa_common.c count isa isa/isahint.c optional isa isa/joy.c optional joy isa/pnp.c optional isa @@ -446,7 +446,7 @@ kern/tty_compat.c standard kern/tty_conf.c standard kern/tty_cons.c standard kern/tty_pty.c optional pty -kern/tty_snoop.c optional snp +kern/tty_snoop.c count snp kern/tty_subr.c standard kern/tty_tty.c standard kern/uipc_domain.c standard @@ -535,7 +535,7 @@ msdosfs/msdosfs_lookup.c optional msdosfs msdosfs/msdosfs_vfsops.c optional msdosfs msdosfs/msdosfs_vnops.c optional msdosfs net/bpf.c standard -net/bpf_filter.c optional bpf +net/bpf_filter.c count bpf net/bridge.c optional bridge net/bsd_comp.c optional ppp_bsdcomp #net/hostcache.c standard @@ -544,18 +544,18 @@ net/if_atmsubr.c optional atm net/if_disc.c optional disc net/if_ef.c optional ef net/if_ethersubr.c optional ether -net/if_faith.c optional faith +net/if_faith.c count faith net/if_fddisubr.c optional fddi -net/if_gif.c optional gif +net/if_gif.c count gif net/if_iso88025subr.c optional token -net/if_loop.c optional loop +net/if_loop.c count loop net/if_media.c standard net/if_mib.c standard -net/if_ppp.c optional ppp +net/if_ppp.c count ppp net/if_sl.c optional sl net/if_spppsubr.c optional sppp net/if_tun.c optional tun -net/if_vlan.c optional vlan +net/if_vlan.c count vlan net/intrq.c standard net/net_osdep.c standard net/ppp_deflate.c optional ppp_deflate @@ -811,7 +811,7 @@ nwfs/nwfs_node.c optional nwfs nwfs/nwfs_subr.c optional nwfs nwfs/nwfs_vfsops.c optional nwfs nwfs/nwfs_vnops.c optional nwfs -pccard/pccard.c optional card +pccard/pccard.c count card pccard/pccard_beep.c optional card pccard/pccard_nbk.c optional card pccard/pcic.c optional pcic card @@ -822,10 +822,10 @@ pci/agp_via.c optional agp pci/agp_sis.c optional agp pci/agp_ali.c optional agp pci/agp_amd.c optional agp -pci/alpm.c optional alpm +pci/alpm.c count alpm pci/amd.c optional amd pci/cy_pci.c optional cy pci -pci/if_ar_p.c optional ar pci +pci/if_ar_p.c count ar pci pci/if_dc.c optional dc pci/if_de.c optional de pci/if_en_pci.c optional en pci @@ -846,11 +846,11 @@ pci/if_wx.c optional wx pci/if_xl.c optional xl pci/intpm.c optional intpm pci/isp_pci.c optional isp -pci/meteor.c optional meteor pci +pci/meteor.c count meteor pci pci/ncr.c optional ncr pci/ohci_pci.c optional ohci pci/pccbb.c optional pccbb cardbus -pci/pci.c optional pci +pci/pci.c count pci pci/pci_compat.c optional pci compat_oldpci \ warning "Old PCI driver compatability shims present." pci/pcic_p.c optional pcic pci diff --git a/sys/conf/files.alpha b/sys/conf/files.alpha index adc2f7d1b66..a8a5a069d92 100644 --- a/sys/conf/files.alpha +++ b/sys/conf/files.alpha @@ -143,24 +143,26 @@ alpha/pci/tsunami.c optional dec_st6600 alpha/pci/tsunami_pci.c optional dec_st6600 dev/advansys/adv_isa.c optional adv isa dev/aic/aic_isa.c optional aic isa -dev/ata/ata-all.c optional ata -dev/ata/ata-disk.c optional atadisk +dev/ata/ata-all.c count ata +dev/ata/ata-disk.c count atadisk dev/ata/ata-dma.c optional ata -dev/ata/atapi-all.c optional ata +dev/ata/atapi-all.c count atapicd +dev/ata/atapi-all.c count atapifd +dev/ata/atapi-all.c count atapist dev/ata/atapi-cd.c optional atapicd dev/ata/atapi-fd.c optional atapifd dev/ata/atapi-tape.c optional atapist dev/fb/fb.c optional fb dev/fb/fb.c optional vga -dev/fb/splash.c optional splash +dev/fb/splash.c count splash dev/fb/vga.c optional vga dev/kbd/atkbd.c optional atkbd -dev/kbd/atkbdc.c optional atkbdc +dev/kbd/atkbdc.c count atkbdc dev/kbd/kbd.c optional atkbd dev/kbd/kbd.c optional kbd dev/kbd/kbd.c optional sc dev/kbd/kbd.c optional ukbd -dev/syscons/schistory.c optional sc +dev/syscons/schistory.c count sc dev/syscons/scmouse.c optional sc dev/syscons/scterm.c optional sc dev/syscons/scterm-dumb.c optional sc @@ -173,9 +175,10 @@ dev/syscons/sysmouse.c optional sc isa/atkbd_isa.c optional atkbd isa/atkbdc_isa.c optional atkbdc isa/fd.c optional fd +isa/fd.c optional fdc isa/ppc.c optional ppc isa/psm.c optional psm -isa/sio.c optional sio +isa/sio.c count sio isa/syscons_isa.c optional sc isa/vga_isa.c optional vga kern/subr_diskmbr.c standard diff --git a/sys/conf/files.i386 b/sys/conf/files.i386 index 540083a97ee..48a9751b5e2 100644 --- a/sys/conf/files.i386 +++ b/sys/conf/files.i386 @@ -62,31 +62,31 @@ contrib/dev/oltr/trlldhm.c optional oltr contrib/dev/oltr/trlldmac.c optional oltr dev/advansys/adv_isa.c optional adv isa dev/aic/aic_isa.c optional aic isa -dev/ata/ata-all.c optional ata -dev/ata/ata-disk.c optional atadisk -dev/ata/ata-dma.c optional ata -dev/ata/atapi-all.c optional atapicd -dev/ata/atapi-all.c optional atapifd -dev/ata/atapi-all.c optional atapist +dev/ata/ata-all.c count ata +dev/ata/ata-disk.c count atadisk +dev/ata/ata-dma.c optional ata +dev/ata/atapi-all.c count atapicd +dev/ata/atapi-all.c count atapifd +dev/ata/atapi-all.c count atapist dev/ata/atapi-cd.c optional atapicd dev/ata/atapi-fd.c optional atapifd dev/ata/atapi-tape.c optional atapist dev/ed/if_ed.c optional ed dev/ed/if_ed_isa.c optional ed isa dev/ed/if_ed_pccard.c optional ed card -dev/eisa/eisaconf.c optional eisa +dev/eisa/eisaconf.c count eisa dev/fb/fb.c optional fb dev/fb/fb.c optional vga -dev/fb/splash.c optional splash +dev/fb/splash.c count splash dev/fb/vga.c optional vga dev/kbd/atkbd.c optional atkbd -dev/kbd/atkbdc.c optional atkbdc +dev/kbd/atkbdc.c count atkbdc dev/kbd/kbd.c optional atkbd dev/kbd/kbd.c optional kbd dev/kbd/kbd.c optional sc dev/kbd/kbd.c optional ukbd dev/kbd/kbd.c optional vt -dev/syscons/schistory.c optional sc +dev/syscons/schistory.c count sc dev/syscons/scmouse.c optional sc dev/syscons/scterm.c optional sc dev/syscons/scterm-dumb.c optional sc @@ -128,10 +128,10 @@ gnu/i386/fpemul/reg_u_mul.s optional gpl_math_emulate gnu/i386/fpemul/reg_u_sub.s optional gpl_math_emulate gnu/i386/fpemul/wm_shrx.s optional gpl_math_emulate gnu/i386/fpemul/wm_sqrt.s optional gpl_math_emulate -gnu/i386/isa/dgb.c optional dgb -gnu/i386/isa/dgm.c optional dgm +gnu/i386/isa/dgb.c count dgb +gnu/i386/isa/dgm.c count dgm gnu/i386/isa/sound/awe_wave.c optional awe -i386/apm/apm.c optional apm +i386/apm/apm.c count apm i386/i386/atomic.c standard \ compile-with "${CC} -c ${CFLAGS} ${DEFINED_PROF:S/^$/-fomit-frame-pointer/} ${.IMPSRC}" i386/i386/autoconf.c standard @@ -193,25 +193,25 @@ i386/ibcs2/ibcs2_util.c optional ibcs2 i386/ibcs2/ibcs2_xenix.c optional ibcs2 i386/ibcs2/ibcs2_xenix_sysent.c optional ibcs2 i386/ibcs2/imgact_coff.c optional ibcs2 -i386/isa/asc.c optional asc +i386/isa/asc.c count asc i386/isa/clock.c standard i386/isa/cronyx.c optional cx -i386/isa/ctx.c optional ctx -i386/isa/cx.c optional cx -i386/isa/cy.c optional cy +i386/isa/ctx.c count ctx +i386/isa/cx.c count cx +i386/isa/cy.c count cy i386/isa/elink.c optional ep i386/isa/elink.c optional ie i386/isa/gpib.c optional gp -i386/isa/gsc.c optional gsc +i386/isa/gsc.c count gsc i386/isa/if_ar.c optional ar i386/isa/if_cx.c optional cx -i386/isa/if_el.c optional el -i386/isa/if_fe.c optional fe -i386/isa/if_le.c optional le -i386/isa/if_rdp.c optional rdp -i386/isa/if_sr.c optional sr +i386/isa/if_el.c count el +i386/isa/if_fe.c count fe +i386/isa/if_le.c count le +i386/isa/if_rdp.c count rdp +i386/isa/if_sr.c count sr i386/isa/if_wi.c optional wi card -i386/isa/if_wl.c optional wl +i386/isa/if_wl.c count wl i386/isa/if_wlp.c optional wlp i386/isa/intr_machdep.c standard i386/isa/ipl_funcs.c standard \ @@ -221,11 +221,11 @@ i386/isa/isa_compat.c optional isa compat_oldisa \ warning "Old ISA driver compatability shims present." i386/isa/isa_dma.c optional isa i386/isa/istallion.c optional stli -i386/isa/labpc.c optional labpc +i386/isa/labpc.c count labpc i386/isa/loran.c optional loran -i386/isa/matcd/matcd.c optional matcd -i386/isa/mca_machdep.c optional mca -i386/isa/mcd.c optional mcd +i386/isa/matcd/matcd.c count matcd +i386/isa/mca_machdep.c count mca +i386/isa/mcd.c count mcd i386/isa/mse.c optional mse i386/isa/npx.c mandatory npx i386/isa/pcaudio.c optional pca @@ -238,9 +238,9 @@ i386/isa/pcvt/pcvt_out.c optional vt i386/isa/pcvt/pcvt_sup.c optional vt i386/isa/pcvt/pcvt_vtf.c optional vt i386/isa/prof_machdep.c optional profiling-routine -i386/isa/rc.c optional rc +i386/isa/rc.c count rc i386/isa/rp.c optional rp -i386/isa/scd.c optional scd +i386/isa/scd.c count scd i386/isa/sound/ad1848.c optional css i386/isa/sound/ad1848.c optional gus i386/isa/sound/ad1848.c optional gusxvi @@ -304,12 +304,12 @@ i386/isa/sound/sscape.c optional sscape i386/isa/sound/sys_timer.c optional snd i386/isa/sound/trix.c optional trix i386/isa/sound/uart6850.c optional uart -i386/isa/spigot.c optional spigot +i386/isa/spigot.c count spigot i386/isa/spkr.c optional speaker i386/isa/stallion.c optional stl -i386/isa/tw.c optional tw +i386/isa/tw.c count tw i386/isa/vesa.c optional vga vesa -i386/isa/wt.c optional wt +i386/isa/wt.c count wt i386/linux/imgact_linux.c optional compat_linux i386/linux/linux_dummy.c optional compat_linux i386/linux/linux_file.c optional compat_linux @@ -342,7 +342,7 @@ i4b/layer1/i4b_elsa_qs1i.c optional isic i4b/layer1/i4b_elsa_qs1p.c optional isic i4b/layer1/i4b_hscx.c optional isic i4b/layer1/i4b_isac.c optional isic -i4b/layer1/i4b_isic.c optional isic +i4b/layer1/i4b_isic.c count isic i4b/layer1/i4b_isic_isa.c optional isic #i4b/layer1/i4b_isic_pcmcia.c optional isic i4b/layer1/i4b_isic_pnp.c optional isic @@ -358,9 +358,10 @@ i4b/layer1/i4b_usr_sti.c optional isic isa/atkbd_isa.c optional atkbd isa/atkbdc_isa.c optional atkbdc isa/fd.c optional fd +isa/fd.c optional fdc isa/ppc.c optional ppc isa/psm.c optional psm -isa/sio.c optional sio +isa/sio.c count sio isa/syscons_isa.c optional sc isa/vga_isa.c optional vga kern/subr_diskmbr.c standard diff --git a/sys/conf/files.pc98 b/sys/conf/files.pc98 index 6d8e5895d5f..8a6326045ac 100644 --- a/sys/conf/files.pc98 +++ b/sys/conf/files.pc98 @@ -59,24 +59,24 @@ contrib/dev/oltr/trlldhm.c optional oltr contrib/dev/oltr/trlldmac.c optional oltr #dev/advansys/adv_isa.c optional adv isa dev/aic/aic_cbus.c optional aic isa -dev/ata/ata-all.c optional ata -dev/ata/ata-disk.c optional atadisk +dev/ata/ata-all.c count ata +dev/ata/ata-disk.c count atadisk dev/ata/ata-dma.c optional ata -dev/ata/atapi-all.c optional atapicd -dev/ata/atapi-all.c optional atapifd -dev/ata/atapi-all.c optional atapist +dev/ata/atapi-all.c count atapicd +dev/ata/atapi-all.c count atapifd +dev/ata/atapi-all.c count atapist dev/ata/atapi-cd.c optional atapicd dev/ata/atapi-fd.c optional atapifd dev/ata/atapi-tape.c optional atapist -dev/eisa/eisaconf.c optional eisa +dev/eisa/eisaconf.c count eisa dev/fb/fb.c optional fb dev/fb/fb.c optional gdc -dev/fb/splash.c optional splash +dev/fb/splash.c count splash dev/kbd/kbd.c optional kbd dev/kbd/kbd.c optional sc dev/kbd/kbd.c optional ukbd dev/kbd/kbd.c optional pckbd -dev/syscons/schistory.c optional sc +dev/syscons/schistory.c count sc dev/syscons/scmouse.c optional sc dev/syscons/scterm.c optional sc dev/syscons/scterm-dumb.c optional sc @@ -113,10 +113,10 @@ gnu/i386/fpemul/reg_u_mul.s optional gpl_math_emulate gnu/i386/fpemul/reg_u_sub.s optional gpl_math_emulate gnu/i386/fpemul/wm_shrx.s optional gpl_math_emulate gnu/i386/fpemul/wm_sqrt.s optional gpl_math_emulate -gnu/i386/isa/dgb.c optional dgb -gnu/i386/isa/dgm.c optional dgm +gnu/i386/isa/dgb.c count dgb +gnu/i386/isa/dgm.c count dgm gnu/i386/isa/sound/awe_wave.c optional awe -i386/apm/apm.c optional apm +i386/apm/apm.c count apm i386/i386/atomic.c standard \ compile-with "${CC} -c ${CFLAGS} ${DEFINED_PROF:S/^$/-fomit-frame-pointer/} ${.IMPSRC}" i386/i386/autoconf.c standard @@ -180,24 +180,24 @@ i386/isa/bs/bs.c optional bs i386/isa/bs/bsfunc.c optional bs i386/isa/bs/bshw.c optional bs i386/isa/bs/bsif.c optional bs -i386/isa/asc.c optional asc +i386/isa/asc.c count asc i386/isa/cronyx.c optional cx -i386/isa/ctx.c optional ctx -i386/isa/cx.c optional cx -i386/isa/cy.c optional cy +i386/isa/ctx.c count ctx +i386/isa/cx.c count cx +i386/isa/cy.c count cy i386/isa/elink.c optional ep i386/isa/elink.c optional ie i386/isa/gpib.c optional gp -i386/isa/gsc.c optional gsc +i386/isa/gsc.c count gsc i386/isa/if_ar.c optional ar i386/isa/if_cx.c optional cx -i386/isa/if_el.c optional el -i386/isa/if_fe.c optional fe -i386/isa/if_le.c optional le -i386/isa/if_rdp.c optional rdp -i386/isa/if_sr.c optional sr +i386/isa/if_el.c count el +i386/isa/if_fe.c count fe +i386/isa/if_le.c count le +i386/isa/if_rdp.c count rdp +i386/isa/if_sr.c count sr i386/isa/if_wi.c optional wi card -i386/isa/if_wl.c optional wl +i386/isa/if_wl.c count wl i386/isa/intr_machdep.c standard i386/isa/ipl_funcs.c standard \ compile-with "${CC} -c ${CFLAGS} ${DEFINED_PROF:S/^$/-fomit-frame-pointer/} ${.IMPSRC}" @@ -205,11 +205,11 @@ i386/isa/isa.c optional isa i386/isa/isa_compat.c optional isa compat_oldisa \ warning "Old ISA driver compatability shims present." i386/isa/istallion.c optional stli -i386/isa/labpc.c optional labpc +i386/isa/labpc.c count labpc i386/isa/loran.c optional loran -i386/isa/matcd/matcd.c optional matcd -i386/isa/mca_machdep.c optional mca -i386/isa/mcd.c optional mcd +i386/isa/matcd/matcd.c count matcd +i386/isa/mca_machdep.c count mca +i386/isa/mcd.c count mcd i386/isa/pcf.c optional pcf i386/isa/pcibus.c optional pci i386/isa/pcvt/pcvt_drv.c optional vt @@ -219,9 +219,9 @@ i386/isa/pcvt/pcvt_out.c optional vt i386/isa/pcvt/pcvt_sup.c optional vt i386/isa/pcvt/pcvt_vtf.c optional vt i386/isa/prof_machdep.c optional profiling-routine -i386/isa/rc.c optional rc +i386/isa/rc.c count rc i386/isa/rp.c optional rp -i386/isa/scd.c optional scd +i386/isa/scd.c count scd i386/isa/sound/ad1848.c optional css i386/isa/sound/ad1848.c optional gus i386/isa/sound/ad1848.c optional gusxvi @@ -286,10 +286,10 @@ i386/isa/sound/sscape.c optional sscape i386/isa/sound/sys_timer.c optional snd i386/isa/sound/trix.c optional trix i386/isa/sound/uart6850.c optional uart -i386/isa/spigot.c optional spigot +i386/isa/spigot.c count spigot i386/isa/stallion.c optional stl -i386/isa/tw.c optional tw -i386/isa/wt.c optional wt +i386/isa/tw.c count tw +i386/isa/wt.c count wt i386/linux/imgact_linux.c optional compat_linux i386/linux/linux_dummy.c optional compat_linux i386/linux/linux_file.c optional compat_linux @@ -322,7 +322,7 @@ i4b/layer1/i4b_elsa_qs1i.c optional isic i4b/layer1/i4b_elsa_qs1p.c optional isic i4b/layer1/i4b_hscx.c optional isic i4b/layer1/i4b_isac.c optional isic -i4b/layer1/i4b_isic.c optional isic +i4b/layer1/i4b_isic.c count isic i4b/layer1/i4b_isic_isa.c optional isic #i4b/layer1/i4b_isic_pcmcia.c optional isic i4b/layer1/i4b_isic_pnp.c optional isic @@ -348,6 +348,7 @@ pc98/pc98/atapi.c optional wdc pc98/pc98/clock.c standard pc98/pc98/diskslice_machdep.c standard pc98/pc98/fd.c optional fd +pc98/pc98/fd.c optional fdc pc98/pc98/if_ed.c optional ed pc98/pc98/isa_dma.c optional isa pc98/pc98/mse.c optional mse @@ -361,12 +362,12 @@ pc98/pc98/ppc.c optional ppc pc98/pc98/scgdcrndr.c optional sc gdc pc98/pc98/scterm-sck.c optional sc pc98/pc98/scvtbpc98.c optional sc -pc98/pc98/sio.c optional sio +pc98/pc98/sio.c count sio pc98/pc98/spkr.c optional speaker pc98/pc98/syscons.c optional sc pc98/pc98/syscons_pc98.c optional sc -pc98/pc98/wd.c optional wdc -pc98/pc98/wd.c optional wd +pc98/pc98/wd.c count wdc +pc98/pc98/wd.c count wd pc98/pc98/wd_cd.c optional wcd wdc pc98/pc98/wfd.c optional wfd wdc pc98/pc98/wst.c optional wst wdc @@ -387,4 +388,4 @@ svr4/svr4_sysent.c optional compat_svr4 svr4/svr4_sysvec.c optional compat_svr4 svr4/svr4_termios.c optional compat_svr4 svr4/svr4_ttold.c optional compat_svr4 -#pci/ide_pci.c optional wd +#pci/ide_pci.c optional wdc pci diff --git a/usr.sbin/config/config.h b/usr.sbin/config/config.h index 5d1ff4834df..41a00b13973 100644 --- a/usr.sbin/config/config.h +++ b/usr.sbin/config/config.h @@ -71,6 +71,8 @@ struct file_list { #define NO_IMPLCT_RULE 2 #define NO_OBJ 4 #define BEFORE_DEPEND 8 +#define NEED_COUNT 16 +#define ISDUP 32 struct device { int d_type; /* DEVICE, bus adaptor */ @@ -169,8 +171,6 @@ extern int debugging; extern int maxusers; -extern int old_config_present; /* Old config/build directory still there */ - extern char *PREFIX; /* Config file name - for error messages */ extern char srcdir[]; /* root of the kernel source tree */ diff --git a/usr.sbin/config/configvers.h b/usr.sbin/config/configvers.h index fad0cae2f08..99226d952cc 100644 --- a/usr.sbin/config/configvers.h +++ b/usr.sbin/config/configvers.h @@ -8,4 +8,4 @@ * * $FreeBSD$ */ -#define CONFIGVERS 400018 +#define CONFIGVERS 500001 diff --git a/usr.sbin/config/main.c b/usr.sbin/config/main.c index fa6fe9fce67..4a0748efdf6 100644 --- a/usr.sbin/config/main.c +++ b/usr.sbin/config/main.c @@ -73,7 +73,6 @@ char destdir[MAXPATHLEN]; char srcdir[MAXPATHLEN]; static int no_config_clobber = TRUE; -int old_config_present; int debugging; int profiling; @@ -162,8 +161,6 @@ main(argc, argv) if (mkdir(p, 0777)) err(2, "%s", p); } - else - old_config_present = 1; dtab = NULL; if (yyparse()) diff --git a/usr.sbin/config/mkheaders.c b/usr.sbin/config/mkheaders.c index 8bbcfbf269a..5ba6503e554 100644 --- a/usr.sbin/config/mkheaders.c +++ b/usr.sbin/config/mkheaders.c @@ -50,8 +50,8 @@ static const char rcsid[] = #include "config.h" #include "y.tab.h" -static void do_header __P((char *, char *, int)); -static void do_count __P((char *, char *, int)); +static void do_header __P((char *, int)); +static void do_count __P((char *)); static char *toheader __P((char *)); static char *tomacro __P((char *)); @@ -61,9 +61,20 @@ headers() register struct file_list *fl; struct device *dp; - for (fl = ftab; fl != 0; fl = fl->f_next) - if (fl->f_needs != 0) - do_count(fl->f_needs, fl->f_needs, 1); + for (fl = ftab; fl != 0; fl = fl->f_next) { + if (fl->f_needs != 0) { + for (dp = dtab; dp != 0; dp = dp->d_next) { + if (eq(dp->d_name, fl->f_needs)) { + if ((dp->d_type & TYPEMASK) == PSEUDO_DEVICE) + dp->d_type |= DEVDONE; + else if ((dp->d_type & TYPEMASK) == DEVICE) + dp->d_type |= DEVDONE; + } + } + if (fl->f_flags & NEED_COUNT) + do_count(fl->f_needs); + } + } for (dp = dtab; dp != 0; dp = dp->d_next) { if ((dp->d_type & TYPEMASK) == PSEUDO_DEVICE) { if (!(dp->d_type & DEVDONE)) @@ -83,27 +94,17 @@ headers() * whatever the device is connected to */ static void -do_count(dev, hname, search) - register char *dev, *hname; - int search; +do_count(dev) + register char *dev; { register struct device *dp; register int count, hicount; - char *mp; /* * After this loop, "count" will be the actual number of units, * and "hicount" will be the highest unit declared. do_header() * must use this higher of these values. */ - for (dp = dtab; dp != 0; dp = dp->d_next) { - if (eq(dp->d_name, dev)) { - if ((dp->d_type & TYPEMASK) == PSEUDO_DEVICE) - dp->d_type |= DEVDONE; - else if ((dp->d_type & TYPEMASK) == DEVICE) - dp->d_type |= DEVDONE; - } - } for (hicount = count = 0, dp = dtab; dp != 0; dp = dp->d_next) { if (dp->d_unit != -1 && eq(dp->d_name, dev)) { if ((dp->d_type & TYPEMASK) == PSEUDO_DEVICE) { @@ -119,25 +120,14 @@ do_count(dev, hname, search) */ if (dp->d_unit + 1 > hicount) hicount = dp->d_unit + 1; - if (search) { - mp = dp->d_conn; - if (mp != 0 && dp->d_connunit < 0) - mp = 0; - if (mp != 0 && eq(mp, "nexus")) - mp = 0; - if (mp != 0) { - do_count(mp, hname, 0); - search = 0; - } - } } } - do_header(dev, hname, count > hicount ? count : hicount); + do_header(dev, count > hicount ? count : hicount); } static void -do_header(dev, hname, count) - char *dev, *hname; +do_header(dev, count) + char *dev; int count; { char *file, *name, *inw; @@ -145,7 +135,7 @@ do_header(dev, hname, count) FILE *inf, *outf; int inc, oldcount; - file = toheader(hname); + file = toheader(dev); name = tomacro(dev); inf = fopen(file, "r"); oldcount = -1; diff --git a/usr.sbin/config/mkmakefile.c b/usr.sbin/config/mkmakefile.c index 0dc5d036a31..516b225e59a 100644 --- a/usr.sbin/config/mkmakefile.c +++ b/usr.sbin/config/mkmakefile.c @@ -140,7 +140,6 @@ makefile() FILE *ifp, *ofp; char line[BUFSIZ]; struct opt *op; - int warn_make_clean = 0; int versreq; read_files(); @@ -164,17 +163,6 @@ makefile() printf("cpu type must be specified\n"); exit(1); } - for (op = opt; op; op = op->op_next) { - if (!op->op_ownfile) { - warn_make_clean++; - if (op->op_value) - fprintf(ofp, " -D%s=%s", op->op_name, op->op_value); - else - fprintf(ofp, " -D%s", op->op_name); - printf("%s:%d: unknown option \"%s\"\n", - PREFIX, op->op_line, op->op_name); - } - } fprintf(ofp, "\n"); for (op = mkopt; op; op = op->op_next) fprintf(ofp, "%s=%s\n", op->op_name, op->op_value); @@ -228,14 +216,7 @@ makefile() (void) fclose(ofp); moveifchanged(path("Makefile.new"), path("Makefile")); - if (warn_make_clean != 0 && old_config_present) { - printf( - "Unknown option%s used - it is VERY important that you do\n", - (warn_make_clean > 1 ? "s" : "")); - printf(" make clean && make depend\n"); - printf("before recompiling\n"); - } else - printf("Don't forget to do a ``make depend''\n"); + printf("Don't forget to do a ``make depend''\n"); } /* @@ -254,7 +235,7 @@ read_files() char fname[80]; int ddwarned = 0; int nreqs, first = 1, configdep, isdup, std, filetype, - imp_rule, no_obj, before_depend, mandatory; + imp_rule, no_obj, needcount, before_depend, mandatory; ftab = 0; save_dp = NULL; @@ -269,7 +250,8 @@ openit: err(1, "%s", fname); next: /* - * filename [ standard | mandatory | optional ] [ config-dependent ] + * filename [ standard | mandatory | optional | count] + * [ config-dependent ] * [ dev* | profiling-routine ] [ no-obj ] * [ compile-with "compile rule" [no-implicit-rule] ] * [ dependency "dependency-list"] [ before-depend ] @@ -312,7 +294,7 @@ next: exit(1); } if ((pf = fl_lookup(this)) && (pf->f_type != INVISIBLE || pf->f_flags)) - isdup = 1; + isdup = ISDUP; else isdup = 0; tp = 0; @@ -335,19 +317,23 @@ next: std = mandatory = 0; imp_rule = 0; no_obj = 0; + needcount = 0; before_depend = 0; filetype = NORMAL; - if (eq(wd, "standard")) + if (eq(wd, "standard")) { std = 1; /* * If an entry is marked "mandatory", config will abort if it's * not called by a configuration line in the config file. Apart * from this, the device is handled like one marked "optional". */ - else if (eq(wd, "mandatory")) + } else if (eq(wd, "mandatory")) { mandatory = 1; - else if (!eq(wd, "optional")) { - printf("%s: %s must be optional, mandatory or standard\n", + needcount = 1; + } else if (eq(wd, "count")) { + needcount = 1; + } else if (!eq(wd, "optional")) { + printf("%s: %s must be count, optional, mandatory or standard\n", fname, this); exit(1); } @@ -478,7 +464,9 @@ invis: tp->f_fn = this; tp->f_type = INVISIBLE; tp->f_needs = needs; - tp->f_flags = isdup; + tp->f_flags |= isdup; + if (needcount) + tp->f_flags |= NEED_COUNT; tp->f_special = special; tp->f_depends = depends; tp->f_clean = clean; @@ -503,7 +491,7 @@ doneparam: tp = new_fent(); tp->f_fn = this; tp->f_type = filetype; - tp->f_flags = 0; + tp->f_flags &= ~ISDUP; if (configdep) tp->f_flags |= CONFIGDEP; if (imp_rule) @@ -516,13 +504,15 @@ doneparam: tp->f_flags |= NO_IMPLCT_RULE; if (no_obj) tp->f_flags |= NO_OBJ; + if (needcount) + tp->f_flags |= NEED_COUNT; tp->f_needs = needs; tp->f_special = special; tp->f_depends = depends; tp->f_clean = clean; tp->f_warn = warn; if (pf && pf->f_type == INVISIBLE) - pf->f_flags = 1; /* mark as duplicate */ + pf->f_flags |= ISDUP; /* mark as duplicate */ goto next; } diff --git a/usr.sbin/config/mkoptions.c b/usr.sbin/config/mkoptions.c index d53affd01b3..f66333108b6 100644 --- a/usr.sbin/config/mkoptions.c +++ b/usr.sbin/config/mkoptions.c @@ -112,6 +112,13 @@ options() read_options(); for (ol = otab; ol != 0; ol = ol->o_next) do_option(ol->o_name); + for (op = opt; op; op = op->op_next) { + if (!op->op_ownfile) { + printf("%s:%d: unknown option \"%s\"\n", + PREFIX, op->op_line, op->op_name); + exit(1); + } + } } /*