{"id":20898968,"url":"https://github.com/tsavola/make-go","last_synced_at":"2026-05-18T13:33:41.500Z","repository":{"id":57647465,"uuid":"443229429","full_name":"tsavola/make-go","owner":"tsavola","description":"Artifact build system for Go projects","archived":false,"fork":false,"pushed_at":"2024-10-05T15:22:50.000Z","size":19,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-11T02:09:34.946Z","etag":null,"topics":["build-system","go"],"latest_commit_sha":null,"homepage":"https://import.name/make","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tsavola.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2021-12-31T02:05:00.000Z","updated_at":"2024-10-05T15:22:15.000Z","dependencies_parsed_at":"2024-11-19T04:04:55.815Z","dependency_job_id":null,"html_url":"https://github.com/tsavola/make-go","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsavola%2Fmake-go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsavola%2Fmake-go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsavola%2Fmake-go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsavola%2Fmake-go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tsavola","download_url":"https://codeload.github.com/tsavola/make-go/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243285625,"owners_count":20266849,"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","go"],"created_at":"2024-11-18T11:12:48.133Z","updated_at":"2025-12-27T17:20:45.304Z","avatar_url":"https://github.com/tsavola.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"[import.name/make](https://pkg.go.dev/import.name/make) is a build system where\nyou specify tasks by writing Go code.  It is not intended for building Go code,\nas the Go toolchain already has that covered.  Instead, it can be used to build\nnon-Go artifacts of projects that already depend on the Go toolchain.\n\nAdd file `make.go` to your project root:\n\n```go\n//go:build ignore\n\npackage main\n\nimport (\n\t. \"import.name/make\"\n)\n\nfunc main() {\n\tMain(targets,\n\t\t\"make.go\", // These files are universal dependencies: if they\n\t\t\"go.mod\",  // are modified, all targets need to be rebuilt.\n\t)\n}\n\nfunc targets() (targets Tasks) {\n\tvar (\n\t\tCC = Getvar(\"CC\", \"gcc\")\n\t)\n\n\tsources := Globber(\"src/*.c\")\n\n\tmyTarget := targets.Add(Target(\"mytarget\",\n\t\tIf(Outdated(\"mytarget\", sources),\n\t\t\tCommand(CC, \"-c\", \"-o\", \"example.o\", sources),\n\t\t\tCommand(CC, \"-o\", \"mytarget\", \"example.o\"),\n\t\t),\n\t))\n\n\t// ...\n\n\treturn\n}\n```\n\nBuild your project by invoking:\n\n\tgo run make.go\n\tgo run make.go mytarget\n\tgo run make.go mytarget another-target FOO=bar BAZ=quux\n\nShow usage and list available targets and variables:\n\n\tgo run make.go -h\n\nSee a [practical example](https://github.com/gate-computer/gate/blob/main/make.go).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftsavola%2Fmake-go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftsavola%2Fmake-go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftsavola%2Fmake-go/lists"}