click on the Biowiki logo to go to homepage
Edit Raw Print
Links Diffs RSS
About Stats Recent
Research Teaching | Blog
Main | JBrowse | TWiki
Biowiki > Main > Lab Meeting > Makefile Lab Meeting > MakeComparison

Search

Advanced search...

Topics

PageRank Checker

Quick comparison of automated build tools & related frameworks

Changelog:

Tool Language Declarative MD5 triggers SQL hooks Extensible Parallelism SGE compatible Implemented Thriving Concise Practical GNU-compatible Tried it?
GNU make C YES no no no (threads) no YES YES YES YES YES YES
omake C YES YES no no ? no YES YES YES YES YES no
distmake C YES no no no YES sort of YES YES YES YES YES YES
qmake C YES no no no YES YES YES YES YES YES YES not working yet
makepp Perl YES YES no YES (threads) no YES YES YES YES YES YES
Saps Modules Perl no no YES no YES no (PBS) YES YES no (Perl) YES no no
Post Make SQL/C YES no YES via Postgres ? no YES ? ? ? no no
Apache Ant XML/Java YES ? no YES YES no YES YES no (XML) YES no YES
SCons Python YES YES no YES YES no YES YES no YES no YES
Jam script/C YES no no ? YES no YES YES ? YES no no
Cook script/C YES YES no ? YES no YES YES ? YES no no
Ruby Make Ruby YES no no YES (threads) no YES YES YES YES no YES
Map Reduce C n/a n/a n/a n/a YES YES no Google (+others?) YES n/a not yet no no
Bio Make Prolog YES YES YES YES no in theory YES no no YES no no no
Erlang make Erlang YES YES no no no YES no no, hypothetical (make.erl?) YES n/a no no YES
Termite Scheme make Scheme YES YES no no no YES no no, hypothetical one guy n/a no no no
Taverna Java yes (GUI) no no no YES ? partially ? no (XML) no no YES
Ruffus Python YES ? ? probably YES ? YES early YES think so no hope to

Obviously some of the columns are very subjective. Here is an explanation of the meaning of some of them:

  • "Declarative" means that it uses concepts of Declarative programming (Wikipedia)
  • "SQL hooks" means that entries in relational database tables can be both targets and dependencies
  • "Parallelism" means built-in support for distributed processing (as opposed to being able to run multiple threads)
  • "MD5 triggers", "SQL hooks" and "Parallel" imply that the tool has such features built-in
    • as opposed to "Extensible" which means that it's possible to add such things
  • "Implemented" means that a "make"-type system is up & running in this framework
  • "Thriving" means that the framework itself is well-supported (so it can be true even if "Implemented" is false)
  • "Concise" is an unashamedly subjective call (let's just say that GNU make is, and XML isn't)
  • "Practical" means "practical for our purposes"

Miscellaneous notes

George Hartzell recommends Rose-DB as a Perl database interface.

Actions: Edit | Attach | New | Ref-By | Printable view | Raw view | Normal view | See diffs | Help | More...