A package configuration file is expected at the root of every package. The file is used to figure out the module path under which the package must be placed. This information is also useful for installation.

val pkg_file : string

Pacage configuration file name.

Configuration file format (using an example).

==== lambdapi.pkg ============ # only two required fields: package_name = my_package root_path = contrib.my_pack # comments not at end of line undefined = ignored ==============================

type config_data = {
package_name : string;
root_path : Common.Path.t;
}

Configuration data read from a file.

val read : string -> config_data

read fname reads configuration data from the file fname. The exception Fatal is raised in case of error (non-existing file, bad format).

val find_config : string -> string option

find_config fname looks for a configuration file above fname, which is typically a source file or an object file (it can also be a directory). If there is no configuration file in the same directory as fname, then we look in the parent directory and so on, up to the root or as long as no Sys_error is raised. Note that fname is first normalized with a call to Filename.realpath.

val apply_config : string -> unit

apply_config fname attempts to find a configuration file from the directory or file fname, and applies the corresponding configuration.