34 lines · 1.8 KB · Text
RawDownload
Provide tools to programmatically create and maintain a build system,and a library of small scripts to create a single file from its dependencies.Get rid of hand-written build descriptions (e.g. make files). Expose information the build tool uses to make decisions, so it is nothidden by or specific only to credo. Print executable commands as output.  For example, do scripts printthe primary commands they use to compile a target.  As anotherexample, credo with no targets runs lsdo, to list targets available inthe current directory, in the form of credo commands which may behighlighted and executed in Acme.  Similarly, dodep with no specifierruns catdo with no specifier, to lists all available specifiers fordodep and catdo, in the form of catdo commands, each of which printout the do script for a specifier. Do scripts can be any executable file.  Credo provides only oneparameter to the do script, the name of the target to create.Credo expects each do file $target.do to create a file $target, Credo leaves it up to the do script to create its target file, assumingnothing about its file descriptors.  Credo relays standard output andstandard error to the controlling terminal, and presents nothing onstandard input to the do script. Dodep assumes as much dependency information, for each type of fileproduction, as it can without being annoyingly wrong.  It expectshigher-level scripts to use other tools in the suite¹ to programremaining dependencies, and set values of shell variables specific tothe environment.² ¹ For example, adddep, rmdep, addenv, and rmenv. ² For example, $cc stores the path to the C compiler on a particularbuild machine.  $cflags records the compiler flags used whileproducing object files from a specific set of source code files.