The OctaForge build system
 
 
 
Go to file
Daniel Kolesa 1e4fa93847 add octabuild build file for octabuild itself 2015-11-12 21:23:56 +00:00
example don't use quotes where not needed 2015-11-06 19:40:09 +00:00
.gitignore add gitignore 2015-09-15 02:02:42 +01:00
COPYING.md initial commit 2015-07-29 00:51:47 +01:00
Makefile keep track of dependencies in octabuild makefile a bit 2015-10-22 21:44:50 +01:00
README.md add octabuild build file for octabuild itself 2015-11-12 21:23:56 +00:00
globs.cc extreplace is not part of globs system 2015-11-07 16:57:29 +00:00
globs.hh split glob matching into its own file 2015-09-10 18:55:49 +01:00
main.cc cleanups 2015-11-09 18:51:55 +00:00
obuild.cfg add octabuild build file for octabuild itself 2015-11-12 21:23:56 +00:00
tpool.hh split glob matching into its own file 2015-09-10 18:55:49 +01:00

README.md

octabuild

OctaBuild is a simple build system inspired by Make, but using the Cubescript language to write build definitions and not depending on a shell to function. It'll also feature things such as automatic dependency tracking and a large utility library abstracting away platform differences. Unlike Make, the program flow of OctaBuild is single threaded, offloading things such as compiler calls into a thread pool. Therefore, things such as standard output are unaffected by threading.

It can be used standalone at this point. Once everything is more done, a library form will be introduced.

It needs libcubescript to function, which you can fetch at https://git.octaforge.org/tools/libcubescript.git or at https://github.com/OctaForge/libcubescript as well as OctaSTD at https://git.octaforge.org/tools/octastd.git or at https://github.com/OctaForge/OctaSTD.

Features

  • A real scripting language
  • Similar to Make in many ways
  • Currently manual dependency tracking
  • Parallel builds
  • Glob matching
  • GNU Make style pattern rules

Upcoming features:

  • Automatic dependency tracking
  • Shell independence
  • Proper argument handling
  • Platform related utilities
  • Rule pre-callbacks

Usage

Use the provided Makefile to build - adjust the paths to OctaSTD and libcubescript if necessary. There is a provided example build script in example.

It's also possible to build OctaBuild with OctaBuild. There is a provided obuild.cfg in the main directory.

The octabuild binary supports the -h option to display help.

License

See COPYING.md.