#Makefile

Quentin GuilloteauGuilloteauQ@sciences.re
2026-03-05

And here is the #nix way

#makefile

Code of integration between Nix and Makefile
```
# Makefile
.RECIPEPREFIX=>
.ONESHELL:
SHELL= nix
.SHELLFLAGS= develop '.\#$(NIX_SHELL)' --command bash -eu -o pipefail -c

all: foo bar

foo: NIX_SHELL=pyshell
foo: EXTRA_PREREQS=flake.nix flake.lock
foo:
> python3 --version > $@

bar: NIX_SHELL=rshell
bar: EXTRA_PREREQS=flake.nix flake.lock
bar:
> Rscript --version > $@
```
Quentin GuilloteauGuilloteauQ@sciences.re
2026-03-05

I did not see anybody do this, so I am sharing it.

There is semi-nice way to get a per-rule software environment in #makefile .

Here is an example with #guix :

(i didnt manage to format the code on mastodon ..., code is in alternative text)

Code of Guix integration with Makefile
```
# Makefile
.RECIPEPREFIX=>
.ONESHELL:
SHELL= guix
.SHELLFLAGS= time-machine -C $(CHANNELS) -- shell -m $(MANIFEST) -- bash -eu -o pipefail -c

CHANNELS:=channels.scm

all: foo bar

foo: MANIFEST=manifest-py.scm
foo: EXTRA_PREREQS=manifest-py.scm $(CHANNELS)
foo:
> python3 --version > $@

bar: MANIFEST=manifest-R.scm
bar: EXTRA_PREREQS=manifest-R.scm $(CHANNELS)
bar:
> Rscript --version > $@
```
Ⓥ Gregory Trolliet Ⓐ🔻 🇵🇸faket@veganism.social
2026-03-04

[Veille 📣] Non, les Taskfile ne sont pas plus simples que Makefile | Metal3d
metal3d.org/blog/2025/makefile

Moi j’suis nul en Makefile, mais moi j’adore les Makefiles, alors merci @metal3d de remettre les points sur les i.

Makefile c’est trop bien, punkt schluss. Arrêtez de vouloir réinventer la roue avec des trucs plus récents si ça n’apporte rien pour le 99% des cas d’usages. Merci.

edit: Avant que ça chouigne dans les chaumières, ce que je demande à un outil comme Makefile c’est de permettre aux personnes qui sont nulles à l’utiliser (comme moi) d’en faire un usage qui correspond exactement à ce dont elles ont besoin. Et c’est le cas. 👍

Toute ma veille est disponible ici : links.vulgarisons.info/
#makefile #make #taskfile #programmation #automatisation
#links #veille

Ajit Ananthadevanajit_456@hachyderm.io
2026-03-01

The biggest gripe in #embedded #development is the crappy IDE's from vendors. I much prefer to build from barebones #makefile projects.. you're free to use any text editor you wish.

github.com/cpq/bare-metal-prog gets you started, especially if you're coming from #arduino style development!

As an inspiration, here's my repos for simple #MCU's from two mainstream vendors.

stm32G0: code.simplycreate.online/ajit/
mspm0g: code.simplycreate.online/ajit/

2026-02-21

I remember someone mentioned using PHP as their static site generator and I was intrigued because PHP is an old and established way of doing "page templates" that it would be Cool to re-use instead of downloading a bespoke site generator tool

the problem is of course that php doesn't have any sort of "make static" command. but what it DOES have is a built-in server so that you can test out your php files.

so.

I wrote a makefile that serves a php file over localhost and then downloads from localhost to static html.

might polish this later but here's my work if you want to copy it:

https://github.com/nycki93/xp-php-wget

edit: i knew i'd seen this somewhere!
@alterae does this on its site, but with a different makefile strategy: https://git.sr.ht/~alterae/alterae.online/tree/main/item/Makefile

#programming #website #php #makefile

2026-02-12

My , no-preservatives-added, all-organic for my is over 850 lines long. So that not even cmake is allowed.

my makefile is 863 lines long
Quentin GuilloteauGuilloteauQ@sciences.re
2026-01-27

Anyone here managing their experiments/workflows with gnu #make ? Any tips ?

I was a #snakemake user, but I switched to #makefile recently because of the increasing complexity/bloat of Snakemake and I don't need the majority of the features... (plus colleagues were not using/familiar with Snakemake)

The make language is for sure less user-friendly than Snakemake's, but I'm still able to do what I need/want (just with more boilerplate).
I had to write small Makefile functions to keep some of my sanity...
(BTW: `.RECIPEPREFIX` let you redefine the prefix instead of the annoying tab! [1])

From what I understood, GNU Make can be extended with #guile [2], maybe that could help ? (but adds another dependency tho...)

TL;DR: I just want a simple/easy/lightweight/expressive workflow manager... 😔

[1] gnu.org/software/make/manual/h
[2] gnu.org/software/make/manual/h

2026-01-25

Made the switch from #ActualBudget to #beancount for my personal finances

The ecosystem is nice
- #fava, #beangulp for imports, #beanahead for recurring transactions, #favaCustomDashboards for charts, and #favaInvestor for portfolio tracking

Also went overboard with custom stuff:
- PDF importers with #ML payee/account prediction
- Custom linters for validation
- Forked #favaEnvelope for envelope budgeting
- #Makefile with 28 targets for price fetching to #FIRE calcs

#plainTextAccounting is great when you can just write #Python to solve your edge cases

#personalFinance #doubleEntryAccounting #CLI #fintech #devlife

2026-01-17

Хватит воевать с Makefile: как я написал свой таск-раннер на Rust, чтобы не сойти с ума

Хватит воевать с Makefile: как я написал свой таск-раннер на Rust Устали от табов, .PHONY и bash-лапши? Я тоже. Поэтому написал Nest — декларативный таск-раннер с иерархией, типами и понятным синтаксисом. Рассказываю, как это было и почему вам стоит попробовать.

habr.com/ru/articles/986112/

#make #makefile #Just #script #scripting #rust

/dev/aubergine0nasunasu@bsd.network
2025-12-31

This crazy document will use #LaTeX for most of it, but #heirloom #doctools for the diagrams. Why? Because I already have a library for #pic and a #Makefile, and I am not afraid to use them. #GraphicsMagick seems to handle converting #PostScript to EPS better than #GhostScript in my situation?! 😕

2025-12-12

OK it's friday, time for the ultimate bikeshedding, aka, fixing my Makefiles.

Basically a task you can spend ENDLESS amounts of time on and still not be done.

#friday #makefile #devops

SuperIludec_hl
2025-11-22

Most evil "make distclean" in a ?
"git clean -d -x -f" 🤣

2025-11-17

Hi!

I'm Italo.

I'm going to build my own OpenWRT by mixing repository full of improvements on top of a fork of OpenWRT that uses NSS for thet Dynalink DL-WRX36 (Qualcomm IPQ8072).

Welcome to Jackass.

2025-11-13

Progress Bar для Сборки Программы

Компиляцию большой программы можно сравнить с кипячением воды. Вы никогда не можете сказать сколько еще осталось времени до окончания процесса. Многим пользователям GUI-IDE приходится страдать от того, что запустив сборку проекта приходится ждать окончания непредсказуемое время. Однако эту проблему можно решить, если собирать код скриптами сборки. Достоинством сборки проекта из самостоятельно написанных скриптов является то, что в процесс сборки можно добавлять всяческие полезные механизмы. Вы программируете не только свою прошивку, но и процесс сборки самой прошивки. Здорово? В этом тексте я написал про то, как добавить индикатор прогресса в процесс сборки прошивки.

habr.com/ru/articles/966248/

#make #gnu_make #progressbar #progress_bar #Makefile #devops #переменные_окружения #компиляция #скрипты_сборки #build_system

Second new: I decided to fully recode "Crisps Chat 🍟" On my opinion - that was a dirty code.

It's a long story, alas...

The recoded version is located here 👉 codeberg.org/xolatgames/Crisps

I wish you a nice, and a cool day! ✌️😜

#cpp #cplusplus #app #apps #soft #software #imgui #sdl #sdl2 #messaging #sqlite #sqlite3 #communication #opensource #codeberg #git #cmake #make #makefile #application #applications #linux #DearImGui #messages #chat #chatting #chats

Paul SomeoneElsepkw@snac.d34d.net
2025-10-25
#techpost #C

I really like C and have really leveled up in it.

One of the downsides of C is no namespacing.
But one of my lessons from learning lots of programming languages is
that you can take a good thing from one language and apply it
to another even if it doesn't support it. Typically by adopting
some convention. For example C figuratively does have namespaces
if you are diligent about naming files and functions.

Anyways one of my patterns that I like is that I use a make target like
this:


\#makefile target to copy in lib files
libs:
cp ../libs/log/log.[ch] .

I have a repo of basic C stuff like file handling and binary math
stuff called "libs". I also have one called "learn". The distinction
is that "libs" is stuff I might re-use, where "learn" is stuff
(like pointer math) that is more of a reference.

So I like this pattern of copying in files from another repo.
And then I just add them to whatever repo locally. It's cool because
it lends itself to developing those libs further in either place.
Like I can re-run that make target to get new changes to
those files, and because they are in git locally, I can see what's
changed. And I can copy the files back to "libs" if the changes
are local. This is a compromise, but very good, especially
since I am learning, so I enjoy the development churn.

Like if I update some code in "libs" it might break something
where I am "importing" it, but then I just fix that up and
commit it all. It's like I don't have to remember, to do
something, because the code breaking will notify me :)


poleguy looking for lost toolspoleguy
2025-10-24

I wonder if the developers of cocotb are old farts. They use stuff under the hood. And they use as a wrapper between python and bash. It's pretty bizarre in 2025. Of course the world is full of and other oddities left over from a previous millennium.

2025-10-22

@koakuma If you are maintaining #makefile by hand, you could just put time utility before every linker and compiler. Piping each command to tee would save your stdout now containing time how long given step took.

Anyway I don't think its really that usefull information, so maybe its better just to track overall #make / #ninjabuild time across changes?

Client Info

Server: https://mastodon.social
Version: 2025.07
Repository: https://github.com/cyevgeniy/lmst