Learn Makefiles with the Tastiest Examples

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Collect and Analyze Billions of Data Points in Real Time
  • Onboard AI - Learn any GitHub repo in 59 seconds
  • SaaSHub - Software Alternatives and Reviews
  • just

    🤖 Just a command runner

    I end up using Makefiles for many projects that have stages in their execution (e.g. manual or one-off ETL pipelines). It is nice to use as a reference, but I do feel like it's a bastardization at times.

    The Just command runner [1] is very good, but is not as ubiquitous.

    [1]: https://github.com/casey/just

  • Task

    A task runner / simpler Make alternative written in Go

    go-task is a very good task runner. Better than “just" IMO. I am now using go-task with every project. Right after creating the gitignore, I create the Taskfile.

    https://github.com/go-task/task

  • InfluxDB

    Collect and Analyze Billions of Data Points in Real Time. Manage all types of time series data in a single, purpose-built database. Run at any scale in any environment in the cloud, on-premises, or at the edge.

  • Starbound-Mod

    Template for a self-contained Starbound mod, including a Makefile for PAK building and Workshop uploading

    I resisted learning Make because of the clunkiness around it (Tab-indentation? C-specific features? Gross!), but after using it a few times now I've come to appreciate it.

    Most recent case was for Starbound mods. The macOS and Linux versions of Starbound don't ship with any built-in tools for uploading mods to the Steam Workshop (unlike Windows, which apparently has a dedicated GUI for it), and I didn't want to have to manually go through a bunch of SteamCMD steps every time I wanted to publish an update, so for my first real mod I put together a Makefile to automatically pack all the files together (using Starbound's included asset_packer CLI tool), populate a metadata.vdf for the Steam Workshop, and run the right steamcmd incantations to get everything up. Once that was reliably working, I condensed everything into a GitHub template repo (https://github.com/YellowApple/Starbound-Mod) and ended up with a pretty straightforward (albeit a bit clunky in spots) universal Makefile:

        MODNAME  = StarboundMod

  • grml

    A simple build automation tool written in Go

    I agree. That's why we use the small grml tool as task/command runner in all our projects.

    https://github.com/desertbit/grml

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts