Build systems à la carte: Theory and practice