{"id":22295094,"url":"https://github.com/droundy/fac","last_synced_at":"2025-05-06T23:46:16.696Z","repository":{"id":26785117,"uuid":"30243336","full_name":"droundy/fac","owner":"droundy","description":"Fac is a general-purpose build system that runs on Linux only, which automatically tracks dependencies by observing the build commands in operation.","archived":false,"fork":false,"pushed_at":"2022-02-17T19:01:40.000Z","size":1980,"stargazers_count":78,"open_issues_count":7,"forks_count":8,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-05-05T17:07:07.819Z","etag":null,"topics":["build-system","build-tool"],"latest_commit_sha":null,"homepage":"http://physics.oregonstate.edu/~roundyd/fac/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/droundy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-02-03T13:14:06.000Z","updated_at":"2025-02-07T20:02:22.000Z","dependencies_parsed_at":"2022-07-30T19:18:07.820Z","dependency_job_id":null,"html_url":"https://github.com/droundy/fac","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/droundy%2Ffac","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/droundy%2Ffac/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/droundy%2Ffac/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/droundy%2Ffac/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/droundy","download_url":"https://codeload.github.com/droundy/fac/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252788407,"owners_count":21804281,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["build-system","build-tool"],"created_at":"2024-12-03T17:40:28.087Z","updated_at":"2025-05-06T23:46:16.678Z","avatar_url":"https://github.com/droundy.png","language":"Rust","funding_links":[],"categories":["Build Systems"],"sub_categories":[],"readme":"# Fac\n\n\n\u003c!-- [![Build Status](https://travis-ci.org/droundy/fac.svg?branch=master)](https://travis-ci.org/droundy/fac) --\u003e\n\n[![Build Status](https://travis-ci.org/droundy/fac.svg?branch=master)](https://travis-ci.org/droundy/fac)\n[![Build status](https://ci.appveyor.com/api/projects/status/opg6nds3m9ahkqvj?svg=true)](https://ci.appveyor.com/project/droundy/fac)\n\nFac is a general-purpose build system inspired by make that utilizes\nptrace to ensure that all dependences are enumerated and that all\nsource files are added to a (git) repo.  An important feature of fac\nis that it automatically handles dependencies, rather than either\ncomplaining about them or giving an incorrect build.  Currently, fac\nonly runs on linux systems, but on those systems it is incredibly easy\nto use!\n\n* Fac automatically tracks build dependencies in a way that is\n  independent of programming language.  You are only required to\n  specify the minimum of dependencies for each rule, and fac works out\n  the rest for you.  If you fail to specify dependencies, fac should\n  still build successfully after enough tries, provided your build\n  rules fail when dependencies are missing (rather than simply\n  producing wrong output).  Once fac has successfully built your\n  project, it knows the dependencies of each command, and subsequent\n  builds in that source tree will be the same as if you had specified\n  all dependencies and all output.\n\n* Fac supports parallel builds.\n\n* You are forced to write your configuration in a language of your own\n  choice.  (Or conversely, you are not forced to use a language of\n  *my* choice, much less a custom-built language that I developed.)\n\n* Integrates with git, to keep you from forgetting to `git add` a file\n  that is needed for the build.\n\nTo find out more about fac, including benchmarks and complete\ndocumentation, please visit the fac web page at:\n\nhttp://physics.oregonstate.edu/~roundyd/fac\n\n## Build and install\n\nThe easy way to get fac is to first install rust on your computer,\nand then to type\n\n    cargo install fac\n\n## Build and install from a git clone\n\nTo build fac (and its documentation) just run\n\n    cargo build\n\nThis should build fac on an x86-64 linux system that has rust\ninstalled.  You can then build an\noptimized version by running\n\n    target/debug/fac fac\n\nTo use fac, you can copy the fac binary into some location in your\npath.\n\n### Build dependencies and details\n\nYou need to have [rust installed](https://rustup.rs).  In addition,\nbuilding fac with fac itself requires both `python2` and `python3` (something to fix), and\nbuilding the fac documentation (which is the default build target)\nrequires `sass` and `python-markdown`.\n\nFor more detail on building fac, see the\n[web page on building fac](http://physics.oregonstate.edu/~roundyd/fac/building.html),\nwhich is also in the fac repository as `web/building.md`.\n\n## License\n\nFac is free software, and is licensed under the GNU General Public\nLicense, version 2 or later.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdroundy%2Ffac","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdroundy%2Ffac","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdroundy%2Ffac/lists"}