`build` - Compile the software of a project and prepare it for use   build … - The working directory must be the command directory. : see `^^working directory$` @ `^^shell commands$` @ http://reluk.ca/project/Java/action_plan.brec - The `project` argument gives the proper path of the project to build. / The proper path is the relative file path that identifies the project universally. E.g. for the present project, use `building/Makeshift` or `building/Makeshift/`. : see `^^proper path$` @ http://reluk.ca/project/lexicon.brec - Each `target` specifies a build target proper to the project. / All build targets should be documented in a source file of the project, conventionally named either `BuildTarget.java` or `builder/Target.java`. : see ../template/BuildTarget.java - Letter case is insignificant here. - Characters ‘-’ and ‘_’ are taken as equivalent. - Abbreviation is allowed: the given `target` may be any substring of the target name that appears in no other target name. ━━━━━━━━━━━━━━━━━━━ Scripting a build ─ How a project defines its builder ─────────────────── - For the common case of a Java project with a single package, typically all you need is `BuildTarget.java`. : see ../example/mixed_top/ >+ cd >+ cp building/Makeshift/template/BuildTarget.java / + Edit your `BuildTarget.java`. + Correct the package name. + Delete the name of any target inapplicable to your project. if( you need to customize the builds further ) / E.g. you have subpackages, or a build target unsupported by the default builder. + Code your own `Builder.java`. : see `a project may define its own builder` @ Builder.java : see ../example/ - Typically you would subclass the default builder, overriding a method or two. : re `default builder` see ../BuilderDefault.java ━━━━━━━━━━ Examples ────────── - A simple build, requiring no other project to be installed, is the `builder` target of the present project.   build building/Makeshift builder - A more typical form of build is:   build Breccia/Web/imager Java_class_files - Convenient equivalents of the above command are:   build Breccia/Web/imager java_class_files     build Breccia/Web/imager java-class-files     build Breccia/Web/imager cl : see `^^- Letter case is insignificant` : see `^^- Characters ‘-’ and ‘_’ are taken as equivalent` : see `^^- Abbreviation is allowed` ━━━━━━━━━━ See also ────────── • `clean` : see clean.brec \ Copyright © 2020 Michael Allan. Licence MIT.