Re:Buck – A build system developed and used by Facebook
by Arkanosis on Tuesday March 14, 2017 @06:40AM
(#13866397)
AFAIK, you can't specify several outputs per rule in GNU Make without relying on horribly complex workarounds. It's actually the feature I miss the most in it.
[ Parent
| on HN ]
Re:Buck – A build system developed and used by Facebook
by lgas on Tuesday March 14, 2017 @06:51AM
(#13866434)
Is this too complex and/or insufficient? https://www.gnu.org/software/automake/manual/html_node/Multi...
Re:Buck – A build system developed and used by Facebook
by Arkanosis on Tuesday March 14, 2017 @07:27AM
(#13866568)
That's the kind of workaround I had in mind and is probably sufficient, but yes, ~25 lines of cryptic and error-prone interleaved GNU make and shell script just to express multiple outputs correctly is way above my personal threshold for “too complex” or even “sane”.
Re:Buck – A build system developed and used by Facebook
by lomnakkus on Wednesday March 15, 2017 @08:57AM
(#13875738)
That doesn't really look like "handling it" by any sensible definition. That looks like a huge kludgy workaround, almost like user implementing a build system inside the build system. (I mean, wtf, asking the user to implement a lock-and-set operation inside their build?)
Re:Buck – A build system developed and used by Facebook
by qznc on Tuesday March 14, 2017 @07:29AM
(#13866575)
GNU Make works intuitively in pattern rules, but differently for normal rules? Uh oh.
Re:Buck – A build system developed and used by Facebook
by Arkanosis on Tuesday March 14, 2017 @07:32AM
(#13866589)
It even has builtin implicit rules. Enabled by default. Checking for the existence of files that are not found in any new project for maybe ten or twenty years (such as RCS and SCSS version control files).
On. Every. Single. Run.
Yup.
Re:Buck – A build system developed and used by Facebook
by xyzzy_plugh on Tuesday March 14, 2017 @11:49AM
(#13868503)
But I love the built-in implicit rules. I use these frequently.
Often, I write a little test program in C or C++. I name the file "foo.c". Then, to build it I simply type `make foo`.
Sure the rules may be a bit stale, but there isn't much software i use today that I could use in a near identical manner 40 years ago. Make has truly stood the test of time.