One more reason to split: localize options (signature change).

Example: sys/conf/files has this:

        defflag opt_dkwedge.h   DKWEDGE_AUTODISCOVER
                                DKWEDGE_METHOD_BSDLABEL
                                DKWEDGE_METHOD_GPT
                                DKWEDGE_METHOD_MBR

Actually DKWEDGE_METHOD_* is not options, but modules.  They enable build of
dkwedge methods like:

        file    dev/dkwedge/dkwedge_bsdlabel.c  dkwedge_method_bsdlabel
        file    dev/dkwedge/dkwedge_gpt.c       dkwedge_method_gpt
        file    dev/dkwedge/dkwedge_mbr.c       dkwedge_method_mbr

DKWEDGE_AUTODISCOVER is an option, and change the signature of
sys/dev/dkwedge/dk.c like:

    850 #ifdef DKWEDGE_AUTODISCOVER
    851 int     dkwedge_autodiscover = 1;
    852 #else
    853 int     dkwedge_autodiscover = 0;
    854 #endif

This means that the option DKWEDGE_AUTODISCOVER is *local* to the module "dk"
(or "dkwedge"), which in turn means that the option doesn't affect outer
files.  So the line "defflag opt_dkwedge.h ..." is written in dk.conf so that
it's only visible to users who really use the dk module.

(We also need to sanitize defflag/defparam/opt_*.h too.)

Masao

-- 
Masao Uebayashi / Tombi Inc. / Tel: +81-90-9141-4635

Reply via email to