Code Monkey home page Code Monkey logo

fac's Introduction

Fac

Build Status Build status

Fac is a general-purpose build system inspired by make that utilizes ptrace to ensure that all dependences are enumerated and that all source files are added to a (git) repo. An important feature of fac is that it automatically handles dependencies, rather than either complaining about them or giving an incorrect build. Currently, fac only runs on linux systems, but on those systems it is incredibly easy to use!

  • Fac automatically tracks build dependencies in a way that is independent of programming language. You are only required to specify the minimum of dependencies for each rule, and fac works out the rest for you. If you fail to specify dependencies, fac should still build successfully after enough tries, provided your build rules fail when dependencies are missing (rather than simply producing wrong output). Once fac has successfully built your project, it knows the dependencies of each command, and subsequent builds in that source tree will be the same as if you had specified all dependencies and all output.

  • Fac supports parallel builds.

  • You are forced to write your configuration in a language of your own choice. (Or conversely, you are not forced to use a language of my choice, much less a custom-built language that I developed.)

  • Integrates with git, to keep you from forgetting to git add a file that is needed for the build.

To find out more about fac, including benchmarks and complete documentation, please visit the fac web page at:

http://physics.oregonstate.edu/~roundyd/fac

Build and install

The easy way to get fac is to first install rust on your computer, and then to type

cargo install fac

Build and install from a git clone

To build fac (and its documentation) just run

cargo build

This should build fac on an x86-64 linux system that has rust installed. You can then build an optimized version by running

target/debug/fac fac

To use fac, you can copy the fac binary into some location in your path.

Build dependencies and details

You need to have rust installed. In addition, building fac with fac itself requires both python2 and python3 (something to fix), and building the fac documentation (which is the default build target) requires sass and python-markdown.

For more detail on building fac, see the web page on building fac, which is also in the fac repository as web/building.md.

License

Fac is free software, and is licensed under the GNU General Public License, version 2 or later.

fac's People

Contributors

droundy avatar ngirard avatar ryderblue avatar pcn avatar paholg avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.