build shared library