generate .so