micro-editor / micro-editor/micro
Replace GNUMake with a go build script
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 29.6k
- Forks
- 1.4k
- Avg merge
- 2d 18h
- Merged PRs (30d)
- 10
Description
Description
Hi,
One of the best usage of GNUMake is when you use it with the syntax target: requirements and with target being the output file like so :
main.o: main.c
# ...
because Make will decide given the stat of the target if it needs build or not.
Since the Makefile of this project does not use this kind of feature, GNUMake seems like less of the perfect build tool for this project.
As a gamedev, one of my main machine is a Windows system, and it can be difficult to have a Makefile that is completely OS agnostic. Even GOOS=$(...) go generate... doesn't work on Windows, so if you want Windows support (outside WSL, natively for Windows), you'll need to enclose everything around ifeq ($(OS),Windows_NT).
What I'm suggesting here is to remove the need for GNUMake by a completly rewriting its rules into a tools\make.go which will simply use go code to perform the tasks.
I'm currently working on this on my own fork, but I can send a PR if you thing it's worth it inside the upstream 😄
Let me know !
(PS: Sorry to have open an Issue for this, but I find it more polite to ask first before submitting the PR).
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Read the existing Makefile to enumerate the current build and generation rules, then review the proposed tools\make.go approach from the author's fork. Confirm that the Go script provides equivalent tasks without requiring GNU Make and works natively on Windows as well as other supported systems.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- build-system
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100