DEV Community

Discussion on: Multi-language build tool?

Collapse
 
phlash profile image
Phil Ashby

I'm officially a Luddite and still use GNU/make for most of my little experiments, and even some quite big ones. It does the thing a build tool is supposed to do - reduce cycle time by taking the minimum number of actions required to bring the outputs up to date - and it does it well.

I've used a few opinionated, language-focussed tools like Maven, Ant, Cargo, etc. Finding that they are effective for their little world, but painful outside - this may be a conscious decision of the creators to lock you in... I'm not a fan of learning Yet Another Build DSL (YABDSL?) like pom.xml syntax either.

I'm not so sure about meta-build tools (CMake, SCONS, Autotools, etc.), they frequently seem to be to abstract / genericised and frankly weird to bother learning, certainly they are a nightmare to debug!

Collapse
 
napicella profile image
Nicola Apicella

Thanks for sharing.
I have used make mostly for Golang projects.
But Go already ships with a full fledged build tool, so it is fair to say that for Golang builds, make it is just a tiny wrapper.
I haven't used it for anything else because language specific build tools (like the ones you mentioned) also ship with dependency management systems, which is super convenient.

I understand you used make for Java. What did you use as dependency manager? Apache Ivy?
Can I ask you to share a project in which you did that? :)

Collapse
 
phlash profile image
Phil Ashby

I understand you used make for Java. What did you use as a dependency manager?

I have used make with Java: github.com/phlash/java-sdr/

but no dependency manager there, all three deps simply get a mention in the Makefile. That was a number of years ago, these days I would probably use Git submodules (I probably still should for that project!)

Thread Thread
 
napicella profile image
Nicola Apicella

Thank you :)

Collapse
 
therealkevinard profile image
Kevin Ard • Edited

It's NOT just me?!?! Google sent me here when I asked for a multi-language build. I'm using Makefiles now, and suspected there was something more. Bazel is the front-runner, of course, but... Idk... Make has got me pretty far.
I mean, everything ships with a build system - just need to coordinate the triggers across packages, and maybe slide in some variables here and there.

Well, make does THAT.