3 ms·
the list of inconveniences is missing the biggest (and sadly, unchangeable) pain-point of Make: targets/deps/filenames cannot have spaces in them.. and, it can
by svilen_dobrev 4y ago
the list of inconveniences is missing the biggest (and sadly, unchangeable) pain-point of Make: targets/deps/filenames cannot have spaces in them..
and, it cannot have multiple wildcard-patterns, like %xyz%, only single %xyzabc or abcxyz%, and this brings much complicatedness into picture..
- dundarious 4y agoKnit supports regex rule patterns so I assume the latter issue is resolved in knit in one form or another.
- zyedidia 4y agoI haven't run into these pain points much with Make, but Knit does support spaces in targets/prerequisites (use single or double quotes to surround the name). For the second point, Knit has regex rules (a Plan9 Mk feature) that can allow multiple grouped matches. The example from the article is: $ ($name-(.*)-(.*)):RB: GOOS=$match2 GOARCH=$match3 go build -o $match1 which is a metarule that matches targets like `$name-linux-amd64` and can be used for easy cross compilation with Go. Of course since it allows full regular expressions, even more complicated rules are allowed.