4 ms·
I don't mean how do you version a Makefile, but if your project depends on 6 libraries (with various version requirements) each with their own sets of dependenc
by IanCal 13y ago
I don't mean how do you version a Makefile, but if your project depends on 6 libraries (with various version requirements) each with their own sets of dependencies, how do you use Makefiles to download & install all of them?
- gaius 13y agoAh, I see. Well I don't get involved in projects as Rube Goldberg as that. The 3rd party libraries I rely on have stable interfaces, and current-version is always preferable.
- IanCal 13y agoOh right, then yeah Makefiles are the way to go :) I'm not sure I'd call those things Rube Goldberg, it's just about depending on small libraries and having a reproducible build if it gets checked out on a CI machine and run. As always, all about choosing the right tool for the job. If you can solve it cleanly with something simpler then you probably should. Something like Maven should only be used if you're really sure you actually need it, because otherwise it'll be a pain in the arse. Having said that, splitting up "building" and "dependency management" can make things much simpler. Pip (python dependency manager) is incredibly simple, with the same kind of interface as apt, and if you've got a file with a list of dependencies you just tell it to install all of those. Then you can use whatever you want for the build process itself.
- qznc 13y agoIt depends. For tracking released versions, just let the Makefile download (wget,tar) and build (./configure,$(MAKE)) it. For tracking repo revisions use the VCS (git-submodule,git-subtree).