Skip to content
HomeVideosBooks
AllTopicsTrends
BlogsPodcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    The GNU make bookJohn Graham-Cumming

    The GNU make book

    John Graham-Cumming · 2015

    "Covers GNU Make basics through advanced topics, including: user-defined functions, macros, and path handling; creating makefile assertions and debugging makefiles; parallelization; automatic dependency generation, rebuilding targets, and non-recursive Make; and using the GNU Make Standard Library"

    Programming
    Open LibraryAmazon
    Stats for nerds
    6recommend
    12mentions
    9people
    2015–2024years
    50% recommend42% neutral8% critical

    Mentions per year

    2015201620172018201920202021202220232024

    What Hacker News says

    1. rvbissellMar 2024
      John,

      Even though this HN post is about GMSL specifically, I want to use it to thank you for writing "The GNU Make Book"[0]. It was a veritable treasure trove that greatly increased my competency with GNU Make.

      The experience of using that book, and playing with GMSL, was one of the sparks that inspired me to start experimenting with Guile-enabled GNUMakefiles (no public release yet.)

      [0] My tech books are packed at the moment, so I can't be sure but: I have a fuzzy memory that your book originally had a different title, or at least a different cover?

      EDIT: seems I have nostarch PDF, so I'm probably conflating two memories.

      EDIT 2: Hold-up, I have this in my CREDITS file:

        The author would like to thank the following   
        people for their insights:
      
        * Scott McPeak for his article "Autodependencies with GNU make"
          available at http://scottmcpeak.com/autodepend/autodepend.html
      
        * John Graham-Cumming for his indispensible book, "The GNU Make Book"
          (formerly known as "GNU Make Unleashed") ISBN: 978-1-59327-649-2
      thread
    2. zvrAug 2022
      (GNU) Make by default uses the file change timestamp to trigger actions. But this is definitely not the only way, and you can code your Makefile so that rebuilds happen when a file's checksum changes. IIRC, the GNU Make Book has the code ready for you to study...

      Or, you might get more clever and say "when only a comment is changed, I don't want to rebuild"; file checksums are not the correct solution for this, so you can code another trigger.

      thread
    3. LukeShuMar 2020
      > only available since GNU make 4.0, and some Linux distributions still have older make, made it a hassle to setup. This should improve over time, of course.

      That feels like an outdated statement, make 4.0 came out in 2013. The only non-EOL system I can think of off the top of my head that isn't shipping >=4.0 is macOS (because they won't upgrade to anything GPLv3).

      However, unfortunately there's a popular CI system (cough CircleCI cough) that's still using Ubuntu 14.04 by default, which has been EOL for almost a year now. (And others, such as Travis-CI, used it by default right up until it was EOL).

      Oh, if you appreciate gmsl, you might also appreciate a book by the same author ('jgrahamc), The GNU Make Book. Some of the things in gmsl are certainly hacks, but a lot of it is quite reasonable if you start reading Make macros as "lisp, but with a bunch of extra dollar-signs and commas".

      thread
    4. dengMay 2019
      The GNU Make manual is excellent.

      For learning advanced techniques: "The GNU Make Book" by John Graham-Cumming.

      thread
    5. snakyMay 2019
      "GNU Make Book" by John Graham-Cumming

      https://nostarch.com/gnumake

      thread
    6. sigilOct 2016
      I can recommend apenwarr's redo implementation [0]. There's occasional activity on the mailing list [1], which leads me to believe people are using it, but not promoting it much.

      The apenwarr implementation includes a full Python implementation as well as a minimal version in < 200 lines of sh. The minimal version doesn't support incremental rebuilds -- the out-of-date-ness tracking in the full Python version uses sqlite -- but it's good for understanding the redo concept. Also good for embedded contexts.

      I used the full redo implementation for some data processing tasks once, with mixed results. It was a situation where I couldn't declare the dependency graph up front. With redo, each target declares its dependencies locally when it builds, and redo assembles and tracks the dynamic dependency graph. It's pretty neat, but become difficult to reason about and debug. Could be that I never got comfortable with the new paradigm, or could be that essential tooling was missing, not sure. I still think redo is promising.

      Anyway after a decade of messing with shiny new build tools, I finally learned to stop worrying and love the bomb (make). It's weird and warty but surprisingly capable. Worth the learning investment. Oh and jgrahamc's "GNU Make Book" is great. [2]

      [0] https://github.com/apenwarr/redo

      [1] https://groups.google.com/forum/#!forum/redo-list

      [2] https://www.nostarch.com/gnumake

      thread

    Related

    Cover of The art of computer programming
    2007–2026

    The art of computer programming

    Donald Knuth
    336 recommend · 1,799
    Cover of Managing projects with GNU make
    2009–2023

    Managing projects with GNU make

    Robert William Mecklenburg
    3 recommend · 8
    Cover of The C Programming Language
    2007–2026

    The C Programming Language

    Brian W. Kernighan
    246 recommend · 604
    Cover of Code Complete
    2007–2026

    Code Complete

    Steve McConnell
    393 recommend · 894
    Cover of Clean Code
    2008–2026

    Clean Code

    Robert C. Martin
    298 recommend · 951
    Cover of Programming Pearls
    2007–2026

    Programming Pearls

    Jon Bentley
    158 recommend · 315
    Cover of Pro Git
    2009–2026

    Pro Git

    Scott Chacon
    recommend · 173
    142
    Cover of The Rust Programming Language
    2015–2026

    The Rust Programming Language

    Steve Klabnik
    170 recommend · 257