functions splitting for static library availability autoconf/automake to remove attribute((...)) dependence proper documentation