HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
EbodShojaei
bake
Python2025–2025
EbodShojaei / bake

bake

mbake is a Makefile formatter and linter. It only took 50 years!

2Distinct people
2Mentions
0Explicit recommenders
766GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

mbake is a Makefile formatter and linter. It only took 50 years!

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by 3-hour interval2 dated mentions

Observed mentions: 2025-06-20 01:06:13 UTC to 2025-06-23 06:31:35 UTC.

012025-06-20 00:00:00 UTC to 2025-06-20 03:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 commentsJun 20, 00:002025-06-20 03:00:00 UTC to 2025-06-20 06:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-20 06:00:00 UTC to 2025-06-20 09:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-20 09:00:00 UTC to 2025-06-20 12:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-20 12:00:00 UTC to 2025-06-20 15:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-20 15:00:00 UTC to 2025-06-20 18:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-20 18:00:00 UTC to 2025-06-20 21:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-20 21:00:00 UTC to 2025-06-21 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-21 00:00:00 UTC to 2025-06-21 03:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-21 03:00:00 UTC to 2025-06-21 06:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-21 06:00:00 UTC to 2025-06-21 09:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-21 09:00:00 UTC to 2025-06-21 12:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-21 12:00:00 UTC to 2025-06-21 15:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-21 15:00:00 UTC to 2025-06-21 18:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsJun 21, 15:002025-06-21 18:00:00 UTC to 2025-06-21 21:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-21 21:00:00 UTC to 2025-06-22 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-22 00:00:00 UTC to 2025-06-22 03:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-22 03:00:00 UTC to 2025-06-22 06:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-22 06:00:00 UTC to 2025-06-22 09:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-22 09:00:00 UTC to 2025-06-22 12:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-22 12:00:00 UTC to 2025-06-22 15:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-22 15:00:00 UTC to 2025-06-22 18:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-22 18:00:00 UTC to 2025-06-22 21:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-22 21:00:00 UTC to 2025-06-23 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-23 00:00:00 UTC to 2025-06-23 03:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-23 03:00:00 UTC to 2025-06-23 06:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-23 06:00:00 UTC to 2025-06-23 09:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsJun 23, 06:00

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Jun 20, 00:002025-06-20 00:00:00 UTC2025-06-20 03:00:00 UTC110
Jun 20, 03:002025-06-20 03:00:00 UTC2025-06-20 06:00:00 UTC000
Jun 20, 06:002025-06-20 06:00:00 UTC2025-06-20 09:00:00 UTC000
Jun 20, 09:002025-06-20 09:00:00 UTC2025-06-20 12:00:00 UTC000
Jun 20, 12:002025-06-20 12:00:00 UTC2025-06-20 15:00:00 UTC000
Jun 20, 15:002025-06-20 15:00:00 UTC2025-06-20 18:00:00 UTC000
Jun 20, 18:002025-06-20 18:00:00 UTC2025-06-20 21:00:00 UTC000
Jun 20, 21:002025-06-20 21:00:00 UTC2025-06-21 00:00:00 UTC000
Jun 21, 00:002025-06-21 00:00:00 UTC2025-06-21 03:00:00 UTC000
Jun 21, 03:002025-06-21 03:00:00 UTC2025-06-21 06:00:00 UTC000
Jun 21, 06:002025-06-21 06:00:00 UTC2025-06-21 09:00:00 UTC000
Jun 21, 09:002025-06-21 09:00:00 UTC2025-06-21 12:00:00 UTC000
Jun 21, 12:002025-06-21 12:00:00 UTC2025-06-21 15:00:00 UTC000
Jun 21, 15:002025-06-21 15:00:00 UTC2025-06-21 18:00:00 UTC000
Jun 21, 18:002025-06-21 18:00:00 UTC2025-06-21 21:00:00 UTC000
Jun 21, 21:002025-06-21 21:00:00 UTC2025-06-22 00:00:00 UTC000
Jun 22, 00:002025-06-22 00:00:00 UTC2025-06-22 03:00:00 UTC000
Jun 22, 03:002025-06-22 03:00:00 UTC2025-06-22 06:00:00 UTC000
Jun 22, 06:002025-06-22 06:00:00 UTC2025-06-22 09:00:00 UTC000
Jun 22, 09:002025-06-22 09:00:00 UTC2025-06-22 12:00:00 UTC000
Jun 22, 12:002025-06-22 12:00:00 UTC2025-06-22 15:00:00 UTC000
Jun 22, 15:002025-06-22 15:00:00 UTC2025-06-22 18:00:00 UTC000
Jun 22, 18:002025-06-22 18:00:00 UTC2025-06-22 21:00:00 UTC000
Jun 22, 21:002025-06-22 21:00:00 UTC2025-06-23 00:00:00 UTC000
Jun 23, 00:002025-06-23 00:00:00 UTC2025-06-23 03:00:00 UTC000
Jun 23, 03:002025-06-23 03:00:00 UTC2025-06-23 06:00:00 UTC000
Jun 23, 06:002025-06-23 06:00:00 UTC2025-06-23 09:00:00 UTC101

What Hacker News says

2 sources
Look at https://github.com/EbodShojaei/bake#basic-formatting. It starts with a horribly contrived example¹ including this²: .PHONY: clean all: $(TARGET) $(CC) $(CFLAGS) -o $@ $^ .PHONY: install clean: rm -f *.o And changes it to this with a consolidated .PHONY, but still no install target. Surely it should complain “there is no install target, what are you marking it as phoney³ for?” .PHONY: all clean install all: $(TARGET) $(CC) $(CFLAGS) -o $@ $^ clean: rm -f *.o I will not say that this way of writing it is unreasonable; users unfamiliar with the available targets can benefit from such a thing up the top (though in practice there’s normally a block of other stuff first, and other ways of achieving it). But this is also a reasonable way of writing it, with strong advantages of its own: .PHONY
Read the rest
: all all: $(TARGET) $(CC) $(CFLAGS) -o $@ $^ .PHONY: clean clean: rm -f *.o .PHONY: install # Um… where’s the `install:` line? Treating .PHONY as more an inline attribute like this rather than a target of its own makes it much more obvious that the install target is missing, and makes desynchronisation of .PHONY and the actual targets much less likely. —⁂— ¹ The first atrocity is that it’s not even a legal makefile: barring a .RECIPEPREFIX override, recipes must be indented by one tab. Running make with this file produces “Makefile:10: ** missing separator. Stop.” Taking invalid code and making it valid is not the domain of a linter or formatter. The Markdown is also abysmal because it doesn’t use tabs, but rather a single space in the output. Given that tabs are structural in makefiles, this is an astonishing lapse. The second atrocity is the mismatching of .PHONY targets, despite joining the lines (by not having a blank line after the .PHONY line), which is completely unrealistic. Or at least I find it so. ² I have normalised whitespace so we can focus on the .PHONY changes. Assume tabs are where they need to be. Unfortunately HN hates interesting whitespace. ³ Ah, the number of times I’ve written .PHONEY… stupid americentric software.
In Mbake – A Makefile formatter and linter, that only took 50 years

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.