library compilation