build as shared library