{"id":21306289,"url":"https://github.com/brlin-tw/hello-gnu-build-system","last_synced_at":"2026-01-02T13:55:26.643Z","repository":{"id":143329545,"uuid":"105017475","full_name":"brlin-tw/Hello-GNU-Build-System","owner":"brlin-tw","description":"This is a starter project for learning GNU Build System and its features and constraints.","archived":false,"fork":false,"pushed_at":"2017-09-29T16:10:14.000Z","size":21,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-22T08:46:02.808Z","etag":null,"topics":["autoconf","autoheader","automake","gnu-build-system","limitations","tutorial"],"latest_commit_sha":null,"homepage":null,"language":"M4","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/brlin-tw.png","metadata":{"files":{"readme":"README.markdown","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}},"created_at":"2017-09-27T12:48:34.000Z","updated_at":"2017-09-29T11:24:37.000Z","dependencies_parsed_at":"2023-05-15T16:30:24.745Z","dependency_job_id":null,"html_url":"https://github.com/brlin-tw/Hello-GNU-Build-System","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brlin-tw%2FHello-GNU-Build-System","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brlin-tw%2FHello-GNU-Build-System/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brlin-tw%2FHello-GNU-Build-System/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brlin-tw%2FHello-GNU-Build-System/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brlin-tw","download_url":"https://codeload.github.com/brlin-tw/Hello-GNU-Build-System/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243784100,"owners_count":20347409,"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":["autoconf","autoheader","automake","gnu-build-system","limitations","tutorial"],"created_at":"2024-11-21T16:23:00.154Z","updated_at":"2026-01-02T13:55:26.603Z","avatar_url":"https://github.com/brlin-tw.png","language":"M4","readme":"# Hello GNU Build System\nThis is a starter project for learning GNU Build System and its features and constraints.  \n\u0026lt;\u003chttps://github.com/Lin-Buo-Ren/Hello-GNU-Build-System\u003e\u0026gt;  \n[![Build Status of the latest snapshot on Travis CI](https://travis-ci.org/Lin-Buo-Ren/Hello-GNU-Build-System.svg?branch=master)](https://travis-ci.org/Lin-Buo-Ren/Hello-GNU-Build-System)\n\n## License\nThis intellectual property is licensed under GNU Generic Public License version 3, and other recent versions you like.\n\n## Obstacles For Projects To Adopt The GNU Build System\n### Doesn't Support Source Code Filename With Spaces\n#### Configurations That Will Trigger This Issue\n* /home/user/projects/my-project/src/Hello World.c\n\n#### Explanation\nAlthough the manual doesn't quite clearly point out, GNU Make(and thus, Automake and Autoconf etc.) doesn't really compatible with filenames with space character(s) due to space been specify as the filename separator.\n\n#### Workaround\nDon't use source filenames with spaces.\n\n#### References\n* GNU Automake Manual - FAQ - Limitations on File Names  \n\t```\n\t\tPortable packages should limit themselves to POSIX file names. These can contain ASCII letters and digits, ‘_’, ‘.’, and ‘-’. File names consist of components separated by ‘/’. File name components cannot begin with ‘-’.\n\t```\n\n\t```\n\t\tSource and installation file names like main.c are limited even further: they should conform to the POSIX/XOPEN rules described above.\n\t```\n\n* [GNU Make meets file names with spaces in them | CMCrossroads](https://www.cmcrossroads.com/article/gnu-make-meets-file-names-spaces-them)\n* [shell - Can GNU make handle filenames with spaces? - Stack Overflow](https://stackoverflow.com/questions/9838384/can-gnu-make-handle-filenames-with-spaces#9838604)\n\nWhile there *are* workarounds but it is still too fragile to deal with not even thinking about Automake and it's friends.\n\n### Doesn't Support Source Tree Directoryname With Spaces\nAlthough the manual doesn't quite clearly point out, GNU Build System doesn't really compatible with directorynames with space character(s).\n\n#### Configurations That Will Trigger The Issue\n* /home/user/projects/my-project/Source Code/main.c\n\n#### References\n* [Re: should a space really be a \"special character\" ?](https://lists.gnu.org/archive/html/autoconf/2005-07/msg00014.html)\n\n\t\u003e -** The configure command now diagnoses attempts to use a working or source\n\t\u003e -  directory whose name contains a special character like space, newline, or \"\\\".\n\t\u003e -  Such names are not supported, and can cause \"configure\" to crash.\n\n## Some Compability Issues Need To Keep In Mind Of\n### Built Aritfacts Filename With Hyphens In Makefile.am\nHyphens needs to be escaped as underscores in Makefile.am","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrlin-tw%2Fhello-gnu-build-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrlin-tw%2Fhello-gnu-build-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrlin-tw%2Fhello-gnu-build-system/lists"}