{"id":17309488,"url":"https://github.com/vulcalien/makefiles","last_synced_at":"2026-02-12T03:06:38.879Z","repository":{"id":158445760,"uuid":"362957784","full_name":"Vulcalien/makefiles","owner":"Vulcalien","description":"Useful makefiles","archived":false,"fork":false,"pushed_at":"2024-10-09T14:37:00.000Z","size":34,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-01T06:11:40.546Z","etag":null,"topics":["makefile"],"latest_commit_sha":null,"homepage":"","language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Vulcalien.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-04-29T22:00:42.000Z","updated_at":"2024-10-09T14:37:59.000Z","dependencies_parsed_at":"2024-02-25T23:34:50.252Z","dependency_job_id":"de1c3c42-d884-49d9-915f-29d40335c913","html_url":"https://github.com/Vulcalien/makefiles","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vulcalien%2Fmakefiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vulcalien%2Fmakefiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vulcalien%2Fmakefiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vulcalien%2Fmakefiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Vulcalien","download_url":"https://codeload.github.com/Vulcalien/makefiles/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245756750,"owners_count":20667216,"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":["makefile"],"created_at":"2024-10-15T12:29:13.259Z","updated_at":"2026-02-12T03:06:33.834Z","avatar_url":"https://github.com/Vulcalien.png","language":"Makefile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Makefiles\n\nVarious makefiles I've developed over the years: two makefiles for\nbuilding projects written in the C programming language and one for\ngenerating man pages from AsciiDoc files.\n\n## C makefiles\nThe two makefiles for C projects are `library.mk` and `executable.mk`.\n`library.mk` produces static and shared library files, while\n`executable.mk` produces an executable file.\n\nThese make targets are available:\n\n| Command           | Result                    | Library | Executable |\n| ----------------- | ----------------------------- | :-: | :--------: |\n| make              | Build the program/library     | x   | x          |\n| make clean        | Remove all build files        | x   | x          |\n| make run          | Execute the program           |     | x          |\n| make build-static | Build only the static library | x   |            |\n| make build-shared | Build only the shared library | x   |            |\n\n### Source subdirectories\nSubdirectories of the top-level source directory containing code to be\ncompiled need to be listed in the `SRC_SUBDIRS` variable.\n\nFor example, to compile files in `src`, `src/foo` and `src/foo/bar`\nwrite the following:\n```make\nSRC_DIR := src\n...\nSRC_SUBDIRS := foo foo/bar\n```\n\n### Cross-compilation\nBy passing the `TARGET=WINDOWS` argument to make, the makefiles will\nproduce output for Windows, provided that the appropriate cross-compiler\nis installed.\n\n## Man pages makefile\nThe `manuals.mk` makefile converts AsciiDoc files into man pages.\nSimilarly to the C makefiles, it supports source subdirectories.\n\n## License\nI release these makefiles under the [CC0 public domain\nlicense](https://creativecommons.org/publicdomain/zero/1.0/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvulcalien%2Fmakefiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvulcalien%2Fmakefiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvulcalien%2Fmakefiles/lists"}