# Module BaseCompat.Compat_0_4.BaseSetup.Original

    module Original: BaseSetup

    type std_args_fun = ctxt:OASISContext.t -> OASISTypes.package -> OASISTypes.arg array -> unit

    type ('a, 'b) section_args_fun = OASISTypes.name *
           (ctxt:OASISContext.t ->
            OASISTypes.package ->
            OASISTypes.common_section * 'a -> OASISTypes.arg array -> 'b)

    type t = {

`` | `configure : `std_args_fun`;`
`` | `build : `std_args_fun`;`
`` | `doc : `(OASISTypes.doc, unit) section_args_fun list`;`
`` | `test : `(OASISTypes.test, float) section_args_fun list`;`
`` | `install : `std_args_fun`;`
`` | `uninstall : `std_args_fun`;`
`` | `clean : `std_args_fun list`;`
`` | `clean_doc : `(OASISTypes.doc, unit) section_args_fun list`;`
`` | `clean_test : `(OASISTypes.test, unit) section_args_fun list`;`
`` | `distclean : `std_args_fun list`;`
`` | `distclean_doc : `(OASISTypes.doc, unit) section_args_fun list`;`
`` | `distclean_test : `(OASISTypes.test, unit) section_args_fun list`;`
`` | `package : `OASISTypes.package`;`
`` | `oasis_fn : `string option`;` | `(*` | Filename of _oasis that matches the package field. | `*)`
`` | `oasis_version : `string`;` | `(*` | OASIS version that has generated this structure. | `*)`
`` | `oasis_digest : `Stdlib.Digest.t option`;` | `(*` | Digest of _oasis that matches the package field. | `*)`
`` | `oasis_exec : `string option`;` | `(*` | Name of oasis executable to use, only for testing. | `*)`
`` | `oasis_setup_args : `string list`;` | `(*` | Args to use when updating the setup.ml. | `*)`
`` | `setup_update : `bool`;` | `(*` | Are we allowed to update the setup.ml (eq. of -setup-update weak). | `*)`

`}`

    val configure : ctxt:OASISContext.t -> t -> OASISTypes.arg array -> unit

Run the configure step.

    val build : ctxt:OASISContext.t -> t -> OASISTypes.arg array -> unit

Run the build step.

    val doc : ctxt:OASISContext.t -> t -> OASISTypes.arg array -> unit

Run the doc step: build all documents.

    val test : ctxt:OASISContext.t -> t -> OASISTypes.arg array -> unit

Run the test step: run all tests.

    val install : ctxt:OASISContext.t -> t -> OASISTypes.arg array -> unit

Run the install step.

    val uninstall : ctxt:OASISContext.t -> t -> OASISTypes.arg array -> unit

Run the uninstall step.

    val clean : ctxt:OASISContext.t -> t -> OASISTypes.arg array -> unit

Run the clean step.

    val distclean : ctxt:OASISContext.t -> t -> OASISTypes.arg array -> unit

Run the distclean step.

    val reinstall : ctxt:OASISContext.t -> t -> OASISTypes.arg array -> unit

Run the reinstall step: deinstall and install.

    val all : ctxt:OASISContext.t -> t -> OASISTypes.arg array -> unit

Run all steps: configure, build, doc, test and install.

    val version : ctxt:OASISContext.t -> t -> OASISTypes.arg array -> unit

Display OASIS version used to generate this setup.ml.

    val setup : t -> unit

The first function called when running 'setup.ml'.

    val default_oasis_fn : OASISTypes.host_filename

Default filename for '_oasis'.

    val default_filename : OASISTypes.host_filename

Default filename for 'setup.ml'. Not exported

    val find : OASISPlugin.context_act -> OASISFileTemplate.template

Get template 'setup.ml' file out of the plugin context. Not exported.

    val of_package : ?ctxt:OASISContext.t ->
           ?oasis_fn:OASISTypes.host_filename ->
           ?oasis_exec:OASISTypes.host_filename ->
           ?oasis_setup_args:string list ->
           setup_update:bool ->
           OASISSetupUpdate.t ->
           OASISTypes.package -> OASISPlugin.context_act * t

Create `t` and plugin context from an OASIS package and the matching _oasis. Not exported.