Building shared libraries