No, YOU'RE too nested
31 Oct 2012So at work there's this program called CHARMM that's my responsibility to build. It's not the worst thing I've ever had to compile, but it's close:
the build script is an interactive tcsh script; you have to tell it where to find libraries, and can't pass these on as arguments;
the whole thing is insanely sensitive to what compiler and library you use, but often that'll only turn up when you actually go to use the damn thing;
CHARMM will often just crash if it it doesn't like you or your input, and the reaction on the forums is often, "Oh yeah, you should just patch that";
there are about 40 different build options, of which an amusing fraction are documented (and an even more amusing fraction documented correctly), and of course the combinations just explode; the wrong combinations will make CHARMM crash, and the reaction on the forums is often, "Oh yeah, they've been meaning to fix the documentation on that."
To get around this I built a script that collects arguments, applies a patch, unpacks the tarball, echoes the right args to the build script (which means, of course, that I am damned for all eternity) and then builds the damned thing. Hurrah! Everything's fine!
Except now I have to rebuild. And invoking the script is becoming complicated:
I'm using modules to use different compilers;
I want to name the destination directory after some combination of compiler, options, and patches;
I'm writing qsub scripts that set all this up and then invoke my script, which invokes the build script;
And there are, at last count, two versions of CHARMM, two patches that are required for one of those versions, and two sets of options. That's 8 scripts.
So I'm looking at all this and thinking, "Self, you're telling me I need a templating system for my templating system. Have I got that right?" And I think, "Self, you've got it." So I punch myself in the face. And that's why it hurts to build CHARMM.
Add a comment:
Name and email required; email is not displayed.
Related Posts
QRP weekend 08 Oct 2018
Open Source Cubesat Workshop 2018 03 Oct 2018
mpd crash? try removing files in /var/lib/mpd/ 11 Aug 2018