micro-editor / micro-editor/micro

Replace GNUMake with a go build script

Open
#4,145 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

feature
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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.