{"id":16909535,"url":"https://github.com/yjdoc2/makefile-generator","last_synced_at":"2026-05-18T02:34:14.942Z","repository":{"id":100666894,"uuid":"227619668","full_name":"YJDoc2/Makefile-Generator","owner":"YJDoc2","description":"A simple makefile generator, which reads c and cpp header files, and generates a makefile which can compile and generate a binary for the c/cpp files ","archived":false,"fork":false,"pushed_at":"2020-03-01T12:51:19.000Z","size":105,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-04T22:37:46.277Z","etag":null,"topics":["c","cpp14","makefile"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/YJDoc2.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":"2019-12-12T13:58:41.000Z","updated_at":"2020-09-28T08:18:44.000Z","dependencies_parsed_at":null,"dependency_job_id":"fb6082dd-75f9-43b9-b617-dd9d62c05406","html_url":"https://github.com/YJDoc2/Makefile-Generator","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/YJDoc2/Makefile-Generator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YJDoc2%2FMakefile-Generator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YJDoc2%2FMakefile-Generator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YJDoc2%2FMakefile-Generator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YJDoc2%2FMakefile-Generator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/YJDoc2","download_url":"https://codeload.github.com/YJDoc2/Makefile-Generator/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YJDoc2%2FMakefile-Generator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33162651,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-17T22:39:12.733Z","status":"online","status_checked_at":"2026-05-18T02:00:06.436Z","response_time":71,"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":["c","cpp14","makefile"],"created_at":"2024-10-13T18:56:08.675Z","updated_at":"2026-05-18T02:34:14.927Z","avatar_url":"https://github.com/YJDoc2.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Makefile Genrator\n\nThis is a program that can be used to generate makefiles of C or C++ programs.\nThis is also my first attempt at Test Driven Developement.\n\n# Basic Usage\n\n### Compiling\n\nOn systems having g++ and make , one can create the executable by running make command. For other systems one can compile individual files and then fianl program as per the makefile.  \nThe Final compiled program is name mkgen by default.\n\n### Usage\n\nTo create a makefile of a project, copy this executable in the Project folder,and run :  \n./mkgen \u0026lt;main_file\u0026gt; [-e]\nWhere the main_file is the file containing the main method, or for which the makefile is to be generated.\n\nthe -e flag is optional and is used to change the default options :\n\n\u003cul\u003e\n\u003cli\u003eC Compiler (gcc)\u003c/li\u003e\n\u003cli\u003eC++ Compiler (g++)\u003c/li\u003e\n\u003cli\u003eCompiler Options (None)\u003c/li\u003e\n\u003cli\u003eName of Generated Makefile (makefile)\u003c/li\u003e\n\u003cli\u003eName of final executable output file (a.out)\u003c/li\u003e\n\u003cli\u003eAdd statement in makefile to remove all the .o files in the folder after creating final executable  (false)\u003c/li\u003e\n\u003c/ul\u003e\n\n## Other Points\n\nThis project was also an attempt at Test Driven Developement,thus various modules were developed using tests , which are in testfile folder, as well as their respective makefiles. To run a test, copy the .cpp and respective makefile outside the testfile folder, reanme the makefile to 'makefile' and run make.\n\nThis was also successful at generating its own makefile, which is the main makefile. The original makefile used to create the first executable of the program is in testfiles folder by name makefile_original.\n\n## Notes and Warnings\n\n\u003cul\u003e\n\u003cli\u003eThis is currently in its first version, so it only tracks the custom dependencies declared in .h or .hpp file, not .c or .cpp files,that is any non-standerd .h or .hpp file that is to be included should be included in the .h or .hpp of respective .c or .cpp files.\u003c/li\u003e\n\u003cli\u003eIn case of error of same class/function/other-thing being declared multiple times, one should check if the #include of same file is done multiple times in a dependency chain. Eg :  A includes B, A include C, but B also includes C. This can be Overcame by checking no duplicate includes are declared or by using #ifndef #define #endif in include files.\u003c/li\u003e\n\u003cli\u003e\u003cb\u003eThis cannot handle the #includes done from parent or subfolders well.\u003c/b\u003e So for best results put all dependencies in same folder and run mkgen.\u003c/li\u003e\n\u003c/ul\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyjdoc2%2Fmakefile-generator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyjdoc2%2Fmakefile-generator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyjdoc2%2Fmakefile-generator/lists"}