Login | Register
My pages Projects Community openCollabNet

fastmake
Project home

If you were registered and logged in, you could join this project.

Message from the owner(s)

stable release, gradual development
Summary fast extensible build tool with enhanced GNU make syntax
Category construction
License GNU General Public License
Owner(s) vitaly_grechko

 

Fastmake is a build tool optimized by speed to greatly decrease response time. Makefile syntax is close to GNU make's with many critical extensions (e.g. no TAB curse). Dependency scanner is integrated. It is multiplatform with good Windows support. Please visit fastmake home to find more info and download files.

Concepts

Functional/declarative style is more suitable and good-looking for build automation tasks that suppose dependency declarations and rules. Functional style is potentially better fastening and paralleling (Haskell is live example). Speed of incremental builds is critical in active development of large projects.

New features

  • working in the same process when respawning
  • integrated dependency scanner
  • cycles (.FOREACH statement)
  • No need to keep TAB before recipe. Indentation is enough
  • include - included in corner brackets includes file from this makefile location (not current directory)
  • Possibility to avoid keeping makefile via 'lookup' features
  • Extended function set
  • .COMBINE rules to specify multiple source files to the compiler. Useful for MSVC
  • .PARALLEL rules to specify run recipes in parallel. Useful for GCC
  • Target/prerequisite up to date criterion other then modification date (e.g. file content)
  • Infix operators. E.g. $(A:+.obj) - adds .obj at the end to each in $(A)
  • Possibility to configure a build system within one makefile without Makefile in each directory
  • In-recipe .CD operator to create a working directory scope for group of commands
  • Block comments

Planed tasks:

  • Better syntax
  • Further fastening
  • Better diagnostics (interactive interpreter like Python's)
  • Separate library from tool for embedding into other executables
  • Try to integrate with existing IDE
  • Alternative implementation on Haskell