`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/editorial_guidelines.brec - Two or more positional arguments are required: / The proper path of the project: the relative file path that identifies it universally. E.g. for the present project, use `building/Makeshift` or `building/Makeshift/`. : see `^*proper path$` @ http://reluk.ca/project/glossary.brec - Tells which project to build. … / The name or names of one or more build targets, each proper to the project. - Tells which target or targets of the project to build. / A project’s targets are declared in a source file conventionally named either `BuildTarget.java` or `builder/Target.java`. : see e.g. ../template/BuildTarget.java - Letter case is insignificant. - Characters ‘-’ and ‘_’ are taken as equivalent. - Abbreviation is allowed: a viable name is any substring that identifies the target precisely, appearing in the name of no other target. ━━━━━━━━━━━━━━━━━━━ 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-2022 Michael Allan. Licence MIT.