home.social

#gnumake — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #gnumake, aggregated by home.social.

fetched live
  1. "What a difference a '-j' makes" is the song I am singing this morning

    Just remembered my laptop has lots of cores and if I pass `-j` to `make` then everything runs faster :-).

    #GNUMake #OldSchool #ModernHardware

  2. Currently looking at tools to replace #snakemake for my usage (command runner + workflow manager).

    well, i can't say that i'm really surprised, but this snakemake dependency is **heavy**...

    and after trying a bit the other options listed here (x-axis), i still think #gnumake fits my usage the best given the size, i just need to survive the syntax... 😬

  3. Most evil "make distclean" in a #Makefile?
    "git clean -d -x -f" 🤣

    #git #GnuMake

  4. @leibnizopenscience

    The paper seems to have missed a powerful workflow language: #Make [1], with #GNUMake [2] being the canonical example. It's stable and nearly half a century old. Learn and use it now and your scientific grandchildren will be able to reproduce your workflow in 2075 [3]. #Maneage [3][4] uses Make for *both* reproducible software + reproducible workflows.

    [1] en.wikipedia.org/wiki/Make_%28

    [2] gnu.org/software/make

    [3] maneage.org

    [4] doi.org/10.1109/MCSE.2021.3072

  5. Still very annoying that `make` does not have a flag to "build all *.csv" files... 😩

    (no, `make *.csv` does not work if the files don't exist yet. Yes, `make -t` will create ALL (including other) target files, not ideal)

    UPDATE: `make -nt | sed 's|^touch\s*||g' | grep '\.csv$'` at least gives you all make'able `*.csv`-files, which you can then pipe into `xargs make`...

  6. so... gnu make has guile scheme support. guix is written in guile scheme. guix's cli interface's modules (guix ui) and (guix scripts ...) are in gnu make's guile load path. my guix config is built with make. i could do something really funny. #guix #gnumake #guile

  7. #AskFedi I currently have the following #GNUMake rule to create a todo list out of any comments in my sources

    todo:
    sed -i $$(grep -n "# todo" README.md | cut -d ':' -f1),\$$d README.md
    echo "# todo" >> README.md
    grep --line-number --only-matching --perl-regexp --recursive '(?<=^#TODO:).+' scripts/ Dockerfile.* Makefile | sort | sed 's/.*/\* &\n/' >> README.md

    Is there a way I can make this work while still allowing items to be manually added to the bottom of the file? Happy to have a marker. I guess I could just have a todo2 file that's appended to this after grep.

  8. OK, I opened Pandora's box. After packaging dozens of programs with Makefiles for #openSUSE, I finally gave in and bought a book to dig in deeper. Wish me luck.

    #GNUMake #nostarchpress #linux

  9. The next two posts will be largely infrastructure. I'm going be switching chips to the SAMD21G18A (Trinket -> ItsyBitsy) and to make that easier I've updated my Makefile to potentially handle other chips down the line. Also made some of the OpenOCD and GDB tasks more "erogonomic". Super new to those two tools and still learning what they can do! (TODO: figure out how to add Makefiles to my syntax highlighting)

    whynotestflight.com/excuses/it

    #arm-gcc, #makefile, #gnumake, #VPATH, #OpenOCD, #GDB

  10. It' normal that the Makefile for a thesis only really works for the last few revisions, right?

    #LaTeX #GNUmake

  11. Spent a bit of time, renovated a rather aging project of mine in #Lisp:

    Configured #CircleCI, used #GNUMake to wrap around test/run, and finally tackled a bunch of deprecated APIs.

    The result is so nice and tidy that I've decided to hack again in #CommonLisp and take down a few more of Euler problems 😎

    github.com/bahmanm/euler-cl/tr

    #Programmnig #DevOps

  12. Time to verify all my additions to my #GNUmake framework #zimk didn't break compatibility with #Windows #CMD -- they didn't 😎

    So, you can still build #dos2ansi yourself on Windows with the minimal set of tooling installed, e.g. using #chocolatey, 'choco install mingw' and 'choco install make' is enough ☑️

    The garbled output seen in the screenshot is a consequence of Windows #Console output being strictly unbuffered, which allows these things to happen with make jobs ... I see no way to work around this .... 🙄

  13. #make hacking can be fun too 🙈

    It's hard to find something that can't be solved using nothing but some "modern" make.

    Here's my #GNUmake solution for text substitutions in case you don't want to rely on #sed being available. This abuses features to turn a #Makefile more or less into a #script you can just call from a #recipe. 😏

    github.com/Zirias/zimk/blob/ma

  14. calling #makefile wizards:

    any advice on how to reduce the repetition here? getting thrown by the different exe suffixes per system (y2roll, y2roll.exe) and the commit hash that needs to be generated

    #make #gnumake

  15. ⚠️ Shameless plug ⚠️

    Oh, I'm so happy w/ `bmakelib.error-if-blank` - it saves me a couple of times a day from pulling the remainder of my hair off 😅

    Simple and effective!

    #Programming #DevOps #DevX #GNUMake #Makefile

    github.com/bahmanm/bmakelib/bl

  16. "If I were to summarize what I learned in a single sentence, it would be this: we talk about programming like it is about writing code, but the code ends up being less important than the architecture, and the architecture ends up being less important than social issues."

    -- Evan Martin, designer of the Ninja build system
    neugierig.org/software/blog/20

    #programming #coding #meson #cmake #gnumake

  17. Sur mon Blog : utiliser #gnumake pour faciliter la compilation de vos documents #latex

    Cet article fait suite à mon précédent sur le fonctionnement de make et permet une mise en pratique.

    xieme-art.org/post/utiliser-ma

  18. fundamentals of build: You want one of 3 things:

    1. artifact (binary) for your target or
    2. Perfect runnable instructions for building artifact (bin) for your target or
    3. Runnable instructions for building artifact on a variety of targets that you have tested on your target.

    This allows for `1 || 2 || 3`. Good #buildtools take this into account. #Nix, #bazel, even good ol' #GNUMake. But, then we don't use that functionality; we forget about it in our scripts & they fail, missing a bin they coulda built or they fail, building a bin they coulda stolen. Note that this post puts off worrying about dependencies, because 1, 2 & 3 can worry about those, too, if you do it right.

  19. Did you know GNU make has a feature that allows you to specify target-specific variables? Something like:

    prog : CFLAGS = -g
    prog : prog.o foo.o bar.o

    `efivar` project managed to hit and expose an interesting aspect in it which caused `efivar`'s builds to become unstable under `make --shuffle` builds.

    A bit of breakage mechanics in pictures are in this post: trofi.github.io/posts/294-an-o

  20. Did not see `make --shuffle` to uncover any new failures in a while. But today is the day.

    This time `efivar` has a missing dependency: github.com/rhboot/efivar/pull/

    For some reason `efivar` uses order-only dependencies against shared libraries it plans to link to, but let's leave it for another day.

  21. Had a chance to debug `openjdk` build failure related to `make-4.4.1` update (`make-4.4` was fine): github.com/NixOS/nixpkgs/issue

    The result is a one-liner fix: github.com/openjdk/jdk/pull/12

    The fix is very similar to the `glibc` one needed for `make-4.4`: sourceware.org/PR29564

  22. I was toying today with C++20 modules as implemented in clang.

    The implementation in clang is still not complete and there are known bugs/limitations.

    However, one can get an idea on how to use them:

    gist.github.com/rofirrim/cefb7

    See also clang.llvm.org/docs/StandardCP for more details

    As a bonus I also learnt about "Grouped Targets" in GNU Makefile ( gnu.org/software/make/manual/h )

    #cplusplus #cpp #modules #clang #makefile #make #gnumake

  23. It's okay, I put the non-deterministic parts in bash code that calls and is called by the Makefile. #makefile #gnumake