Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-11-07 19:11:12 -0800 (Mon, 07 Nov 2005)
Revision: 8127
Log message:

      (Issue 543) Compute the full list of theories to build based on the
      inter-theory dependencies.
      
      Now that ITT is composed of a bunch of smaller subtheories, having to specify
      the full list of theories in mk/config became more annoying. This commit
      implements the notion of theory dependencies and uses it to compute the full
      list of theories to be compiled. Now setting THEORIES in mk/config to
      something like "poplmark/naive" should work, bringing in all the necessary
      dependencies.
      
      In order to work correctly, the theory/*/OMakefile:
      
      - MAY define or update the THEORY_DEPENCIES variable. This variable MUST
        contain an array of theory "names" (as before, the theory "name" is the
        directory name relative to $(ROOT)/theories). By default, THEORY_DEPENCIES
        is equal to "base"
      
      - SHOULD use either the Theory function (which takes a file list as an
        argument), or a VirtualTheory function (this takes a list of subdirectories
        as an argument and should be used for "virtual" theories that only bring
        together sub-theories, but do not contain any modules). Note that
        VirtualTheory overrides the THEORY_DEPENCIES variable, so any additonal
        modifications to THEORY_DEPENCIES in virtual theories (which usually
        shouldn't be necessary) need to go after the VirtualTheory call.
      
      - SHOULD NOT change the OCAMLINCLUDES variable (except for non-theory
        directories). The standard "Theory" function now sets OCAMLINCLUDES based on
        the value of THEORY_DEPENCIES, and if the resulting value is incorrect, it
        is usually a very good indication that THEORY_DEPENCIES is also incorrect.
      
      - SHOULD NOT use .SUBDIRS to bring in other theories; it should use
        THEORY_DEPENCIES or VirtualTheory mechanism instead.
      

Changes  Path
+53 -20 metaprl/OMakefile
+1 -1 metaprl/editor/ml/OMakefile
+2 -2 metaprl/mk/defaults
+8 -6 metaprl/mk/make_config
+1 -0 metaprl/theories/base/OMakefile
+0 -3 metaprl/theories/cic/OMakefile
+4 -6 metaprl/theories/czf/OMakefile
+0 -3 metaprl/theories/experimental/compile/OMakefile
+0 -12 metaprl/theories/experimental/mcc/fir/type/OMakefile
+2 -5 metaprl/theories/experimental/unity/OMakefile
+0 -6 metaprl/theories/fir/OMakefile
+2 -4 metaprl/theories/fol/OMakefile
+0 -3 metaprl/theories/hol/OMakefile
+3 -5 metaprl/theories/ilc/OMakefile
+1 -7 metaprl/theories/itt/OMakefile
+1 -7 metaprl/theories/itt/applications/OMakefile
+2 -4 metaprl/theories/itt/applications/algebra/OMakefile
+2 -4 metaprl/theories/itt/applications/datatypes/OMakefile
+3 -5 metaprl/theories/itt/applications/function_spaces/OMakefile
+2 -4 metaprl/theories/itt/applications/objects/OMakefile
+3 -5 metaprl/theories/itt/applications/supinf/OMakefile
+0 -3 metaprl/theories/itt/core/OMakefile
+3 -12 metaprl/theories/itt/extensions/OMakefile
+2 -4 metaprl/theories/itt/extensions/rfun/OMakefile
+1 -7 metaprl/theories/itt/reflection/OMakefile
+2 -4 metaprl/theories/itt/reflection/core/OMakefile
+3 -13 metaprl/theories/itt/reflection/experimental/OMakefile
+4 -6 metaprl/theories/itt/reflection/experimental/jyh/OMakefile
+4 -6 metaprl/theories/itt/reflection/obsolete/OMakefile
+3 -5 metaprl/theories/itt/tests/OMakefile
+2 -4 metaprl/theories/kat/OMakefile
+2 -4 metaprl/theories/mesa/OMakefile
+0 -3 metaprl/theories/ocaml_doc/OMakefile
+0 -3 metaprl/theories/ocaml_sos/OMakefile
+4 -7 metaprl/theories/poplmark/naive/OMakefile
+0 -3 metaprl/theories/s4lp/OMakefile
+2 -4 metaprl/theories/sil/OMakefile
+2 -4 metaprl/theories/tptp/OMakefile
+2 -4 metaprl/theories/tutorial/OMakefile