{"id":23095997,"url":"https://github.com/gigalasr/vhdlmake","last_synced_at":"2026-03-06T02:46:50.501Z","repository":{"id":163455856,"uuid":"635838741","full_name":"gigalasr/vhdlmake","owner":"gigalasr","description":"A build system for vhdl that can infer all dependencies automaticaly","archived":false,"fork":false,"pushed_at":"2025-06-02T18:26:07.000Z","size":168,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-05T13:35:28.579Z","etag":null,"topics":["build-system","cpp","vhdl"],"latest_commit_sha":null,"homepage":"","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/gigalasr.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-05-03T15:02:00.000Z","updated_at":"2025-06-02T18:26:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"8ca9bca9-923d-4362-933c-1a9ce6fc7311","html_url":"https://github.com/gigalasr/vhdlmake","commit_stats":null,"previous_names":["by-lars/vhdlmake","gigalasr/vhdlmake"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/gigalasr/vhdlmake","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gigalasr%2Fvhdlmake","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gigalasr%2Fvhdlmake/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gigalasr%2Fvhdlmake/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gigalasr%2Fvhdlmake/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gigalasr","download_url":"https://codeload.github.com/gigalasr/vhdlmake/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gigalasr%2Fvhdlmake/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30159969,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T22:39:40.138Z","status":"online","status_checked_at":"2026-03-06T02:00:08.268Z","response_time":250,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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","cpp","vhdl"],"created_at":"2024-12-16T22:32:54.298Z","updated_at":"2026-03-06T02:46:50.468Z","avatar_url":"https://github.com/gigalasr.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# vhdlmake\n\n\u003cdiv align=\"center\"\u003e\n\n![Graph](doc/graph.png)\n\nAn awesome build system made for my uni vhdl projects.\n\n\u003c/div\u003e\n\n\u003cbr\u003e\n\nThis build system automaticaly infers the dependencies between vhdl files\nand compiles only the necerssary files when a or multiple files were changed.\nIt builds a DAG and a partial DAG based on the updated files and uses these to\ndetermine which files need to be rebuilt/analysed. In comparison to make, vhdlmake\ninverts its DAG. Instead of \"listing\" the dependencies, each node lists its dependants.\nThis is useful, because now the edges point directly to the files\nthat need to be updated. Generating the correct compile commands is now as simple\nas building the partital DAG and running a topological sort on that.\nThis approach is inspired by the [Tup Build System](https://gittup.org/tup/build_system_rules_and_algorithms.pdf).\n\n### Usage\n```bash\nvhdlmake build [entity] - builds project and optionaly elaborates \u003centity\u003e\nvhdlmake run   \u003centity\u003e - builds project and runs \u003centity\u003e\nvhdlmake info  \u003centity\u003e - show info for \u003centity\u003e\nvhdlmake graph          - get dependency graph as mermaid url\nvhdlmake graph*         - get partial dependency graph as mermaid url (only updated files and deps)\nvhdlmake subset         - get list of changed files and their dependencies\n```\n\n### Clone and Build\n```bash\ngit clone --recursive https://github.com/gigalasr/vhdlmake.git\ncd vhdlmake\nmkdir build\ncd build\ncmake ..\nmake \n```\n\nIf you forgot to clone with ``--recursive`` you can run ``git submodule update --init`` to clone the submodules afterwards.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgigalasr%2Fvhdlmake","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgigalasr%2Fvhdlmake","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgigalasr%2Fvhdlmake/lists"}