{"id":20180125,"url":"https://github.com/leahneukirchen/redo-c","last_synced_at":"2025-04-10T04:52:41.190Z","repository":{"id":51825065,"uuid":"41742507","full_name":"leahneukirchen/redo-c","owner":"leahneukirchen","description":"An implementation of the redo build system in portable C with zero dependencies","archived":false,"fork":false,"pushed_at":"2023-09-29T13:22:37.000Z","size":35,"stargazers_count":102,"open_issues_count":11,"forks_count":12,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-05-10T00:27:54.522Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/leahneukirchen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-09-01T14:11:12.000Z","updated_at":"2024-04-05T02:20:28.000Z","dependencies_parsed_at":"2022-08-23T08:21:45.886Z","dependency_job_id":null,"html_url":"https://github.com/leahneukirchen/redo-c","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leahneukirchen%2Fredo-c","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leahneukirchen%2Fredo-c/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leahneukirchen%2Fredo-c/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leahneukirchen%2Fredo-c/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leahneukirchen","download_url":"https://codeload.github.com/leahneukirchen/redo-c/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224555445,"owners_count":17330794,"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":[],"created_at":"2024-11-14T02:29:23.087Z","updated_at":"2024-11-14T02:29:23.569Z","avatar_url":"https://github.com/leahneukirchen.png","language":"C","funding_links":[],"categories":["Process Manager"],"sub_categories":["Selfhosted"],"readme":"# redo-c\n\nredo-c is an implementation of the redo build system (designed by\nDaniel J. Bernstein) in portable C with zero external dependencies.\n\n## Documentation\n\nPlease refer to the documentation for\n[redo in Python](https://github.com/apenwarr/redo/blob/master/README.md),\nor the [tutorial by Jonathan de Boyne Pollard](http://jdebp.info/FGA/introduction-to-redo.html)\nfor usage instructions.\n\n## Notes about the redo-c implementation of redo\n\n* Without arguments, `redo` behaves like `redo all`.\n\n* `.do` files always are executed in their directory, arguments are\n  relative paths.\n\n* Standard output of `.do` files is only captured as build product if\n  `redo -s` is used, or the environment variable `REDO_STDOUT` is set to 1.\n  Else, standard output is simply displayed.\n\n* Non-executable `.do` files are run with `/bin/sh -e`.\n  `redo -x` can be utilized to use `/bin/sh -e -x` instead, for\n  debugging `.do` files or verbose builds.\n\n* Executable `.do` files are simply executed, and should have a shebang line.\n\n* When a target makes no output, no target file is created.  The target\n  is considered always out of date.\n\n* `default.do` files are checked in all parent directories up to `/`.\n\n* Parallel builds can be started with `redo -j N` (or `JOBS=N redo`),\n  this uses a job broker similar to but not compatible with GNU make.\n\n* To detect whether a file has changed, we first compare `ctime` and\n  in case it differs, a SHA2 hash of the contents.\n\n* Dependencies are tracked in `.dep.BASENAME` files all over the tree.\n  This is an implementation detail.\n\n* Builds can be started from every directory and should yield same results.\n\n* `redo -f` will consider all targets outdated and force a rebuild.\n\n* `redo -k` will keep going if a target failed to build.\n\n## Copying\n\nTo the extent possible under law, Leah Neukirchen \u003cleah@vuxu.org\u003e\nhas waived all copyright and related or neighboring rights to this work.\n\nhttp://creativecommons.org/publicdomain/zero/1.0/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleahneukirchen%2Fredo-c","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleahneukirchen%2Fredo-c","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleahneukirchen%2Fredo-c/lists"}