3 ms·
Yes I have, and build systems without working PREFIX support are going to be really broken and need workarounds in a lot of scenarios, not just this one. It's a
by throwaway82652 4y ago
Yes I have, and build systems without working PREFIX support are going to be really broken and need workarounds in a lot of scenarios, not just this one. It's always going to be quite some work. I actually recoil in pain now whenever I see someone ship something with a giant makefile or a big folder full of system-specific shell scripts.
For obscure packages with a weird build system they often aren't doing the work for me, specifically because those build systems are hard to manage and nobody wants to deal with them. If you want distros to not package your software that's a great way to do it. If you want to discourage contributors from sending you patches because they can't figure out your build system then that's also a great way to do it.
If you're a big popular package like Chromium or Firefox then you can get away with having a weird build system but even then packagers don't want to deal with it past a certain point, hence browsers packaged in Snap and Flatpak...
- enriquto 4y ago> I actually recoil in pain now whenever I see someone ship something with a giant makefile or a big folder full of system-specific shell scripts. Out of curiosity, what would be the ideal shipping method for you? I agree that "giant makefiles" are awful, but a neat, simple and portable makefile is a beautiful sight to behold and a pleasure to run.
- throwaway82652 4y ago>but a neat, simple and portable makefile is a beautiful sight to behold and a pleasure to run. As someone who has had to hack those makefiles a lot, I can't really agree. There's no such thing as a "simple and portable makefile". The real way to generate "portable makefiles" is to use autotools. Every handwritten "portable makefile" I've seen actually has a ton of system-specific and compiler-specific rules. And when porting from Linux you're lucky if some package shipping a handwritten makefile doesn't have an undocumented dependency on GNU make. Even something simple like PREFIX support has to be manually implemented and tested if you write your own makefile, and often the upstream project doesn't bother testing it and wants the distro to do it. If you want distros to package your stuff without any troubles and without making them a guinea pig for some weird ad-hoc build system then it would be easiest to just use one of the standard buildsystems, those are mostly just cmake, meson, autotools. A small cmake or meson script is significantly shorter than a makefile and is a lot more portable.