Index: libopencsd-0.8.0/decoder/build/linux/makefile
===================================================================
--- libopencsd-0.8.0.orig/decoder/build/linux/makefile
+++ libopencsd-0.8.0/decoder/build/linux/makefile
@@ -104,6 +104,13 @@ export LIB_TARGET_DIR=$(OCSD_LIB_ROOT)/$
 export LIB_TEST_TARGET_DIR=$(OCSD_TESTS)/lib/$(PLAT_DIR)
 export BIN_TEST_TARGET_DIR=$(OCSD_TESTS)/bin/$(PLAT_DIR)
 
+# verion
+export SO_MAJOR_VER = 0
+SO_MINOR_VER = 8
+SO_PATCH_VER = 0
+export SO_VER = $(SO_MAJOR_VER).$(SO_MINOR_VER).$(SO_PATCH_VER)
+
+
 ###########################################################
 # build targets
 
@@ -113,8 +120,12 @@ libs: $(LIB_BASE_NAME)_lib  $(LIB_CAPI_N
 
 install: libs
 	mkdir -p $(INSTALL_LIB_DIR) $(INSTALL_INCLUDE_DIR)
-	$(INSTALL) --mode=644 $(LIB_TARGET_DIR)/lib$(LIB_BASE_NAME).so $(INSTALL_LIB_DIR)/
-	$(INSTALL) --mode=644 $(LIB_TARGET_DIR)/lib$(LIB_CAPI_NAME).so $(INSTALL_LIB_DIR)/
+	cp -d $(LIB_TARGET_DIR)/lib$(LIB_BASE_NAME).so $(INSTALL_LIB_DIR)/
+	cp -d $(LIB_TARGET_DIR)/lib$(LIB_BASE_NAME).so.$(SO_MAJOR_VER) $(INSTALL_LIB_DIR)/
+	$(INSTALL) --mode=644 $(LIB_TARGET_DIR)/lib$(LIB_BASE_NAME).so.$(SO_VER) $(INSTALL_LIB_DIR)/
+	cp -d $(LIB_TARGET_DIR)/lib$(LIB_CAPI_NAME).so $(INSTALL_LIB_DIR)/
+	cp -d $(LIB_TARGET_DIR)/lib$(LIB_CAPI_NAME).so.$(SO_MAJOR_VER) $(INSTALL_LIB_DIR)/
+	$(INSTALL) --mode=644 $(LIB_TARGET_DIR)/lib$(LIB_CAPI_NAME).so.$(SO_VER) $(INSTALL_LIB_DIR)/
 	$(INSTALL) --mode=644 $(LIB_TARGET_DIR)/lib$(LIB_BASE_NAME).a $(INSTALL_LIB_DIR)/
 	$(INSTALL) --mode=644 $(LIB_TARGET_DIR)/lib$(LIB_CAPI_NAME).a $(INSTALL_LIB_DIR)/
 	cd $(OCSD_ROOT)/build/linux/rctdl_c_api_lib && make install_inc
Index: libopencsd-0.8.0/decoder/build/linux/rctdl_c_api_lib/makefile
===================================================================
--- libopencsd-0.8.0.orig/decoder/build/linux/rctdl_c_api_lib/makefile
+++ libopencsd-0.8.0/decoder/build/linux/rctdl_c_api_lib/makefile
@@ -55,13 +55,31 @@ OBJECTS=$(BUILD_DIR)/ocsd_c_api.o \
 INST_INC_SRC=$(OCSD_INCLUDE)/$(LIB_UAPI_INC_DIR)
 INST_INC_DST=$(INSTALL_INCLUDE_DIR)/$(LIB_UAPI_INC_DIR)
 
-all: build_dir $(OBJECTS)
-	mkdir -p $(LIB_TARGET_DIR)
+all: links
+
+links: $(LIB_TARGET_DIR)/$(LIB_NAME).so.$(SO_MAJOR_VER) $(LIB_TARGET_DIR)/$(LIB_NAME).so
+.PHONY: links
+
+LIBS:= $(LIB_TARGET_DIR)/$(LIB_NAME).a $(LIB_TARGET_DIR)/$(LIB_NAME).so.$(SO_VER)
+
+$(LIB_TARGET_DIR):
+	mkdir $(LIB_TARGET_DIR)
+
+$(BUILD_DIR):
+	mkdir $(BUILD_DIR)
+
+$(LIB_TARGET_DIR)/$(LIB_NAME).a: $(OBJECTS) | $(BUILD_DIR) $(LIB_TARGET_DIR)
 	$(LIB) $(LIB_FLAGS) $(LIB_TARGET_DIR)/$(LIB_NAME).a $(OBJECTS)
-	$(LINKER) $(LINKER_FLAGS) -o $(LIB_TARGET_DIR)/$(LIB_NAME).so -Wl,-soname,$(LIB_NAME).so $(OBJECTS) $(SO_LIB_DEPS)
 
-build_dir:
-	mkdir -p $(BUILD_DIR)
+$(LIB_TARGET_DIR)/$(LIB_NAME).so.$(SO_VER): $(OBJECTS) | $(BUILD_DIR) $(LIB_TARGET_DIR)
+	$(LINKER) $(LINKER_FLAGS) -o $(LIB_TARGET_DIR)/$(LIB_NAME).so.$(SO_VER) -Wl,-soname,$(LIB_NAME).so.$(SO_MAJOR_VER) $(OBJECTS) $(SO_LIB_DEPS)
+
+$(LIB_TARGET_DIR)/$(LIB_NAME).so.$(SO_MAJOR_VER): $(LIBS) | $(LIB_TARGET_DIR)
+	( cd $(LIB_TARGET_DIR); ln -s $(LIB_NAME).so.$(SO_VER) $(LIB_NAME).so.$(SO_MAJOR_VER) )
+
+$(LIB_TARGET_DIR)/$(LIB_NAME).so: $(LIB_TARGET_DIR)/$(LIB_NAME).so.$(SO_MAJOR_VER) | $(LIB_TARGET_DIR)
+	( cd $(LIB_TARGET_DIR); ln -s $(LIB_NAME).so.$(SO_MAJOR_VER) $(LIB_NAME).so )
+
 
 ##### build rules
 
@@ -81,7 +99,7 @@ clean:
 	rm -f $(OBJECTS)
 	rm -f $(DEPS)
 	rm -f $(LIB_TARGET_DIR)/$(LIB_NAME).a
-	rm -f $(LIB_TARGET_DIR)/$(LIB_NAME).so
+	rm -f $(LIB_TARGET_DIR)/$(LIB_NAME).so*
 
 #### install the necessary include files for the c-api library on linux 
 install_inc:
Index: libopencsd-0.8.0/decoder/build/linux/ref_trace_decode_lib/makefile
===================================================================
--- libopencsd-0.8.0.orig/decoder/build/linux/ref_trace_decode_lib/makefile
+++ libopencsd-0.8.0/decoder/build/linux/ref_trace_decode_lib/makefile
@@ -114,13 +114,31 @@ OBJECTS=$(BUILD_DIR)/ocsd_code_follower.
 		$(PTMOBJ) \
 		$(PKTPRNTOBJ)
 
-all: build_dir $(OBJECTS)
-	mkdir -p $(LIB_TARGET_DIR)
+all: links
+
+links: $(LIB_TARGET_DIR)/$(LIB_NAME).so.$(SO_MAJOR_VER) $(LIB_TARGET_DIR)/$(LIB_NAME).so
+.PHONY: links
+
+LIBS:= $(LIB_TARGET_DIR)/$(LIB_NAME).a $(LIB_TARGET_DIR)/$(LIB_NAME).so.$(SO_VER)
+
+$(LIB_TARGET_DIR):
+	mkdir $(LIB_TARGET_DIR)
+
+$(BUILD_DIR):
+	mkdir $(BUILD_DIR)
+
+$(LIB_TARGET_DIR)/$(LIB_NAME).a: $(OBJECTS) | $(BUILD_DIR) $(LIB_TARGET_DIR)
 	$(LIB) $(LIB_FLAGS) $(LIB_TARGET_DIR)/$(LIB_NAME).a $(OBJECTS)
-	$(LINKER) $(LINKER_FLAGS) -o $(LIB_TARGET_DIR)/$(LIB_NAME).so -Wl,-soname,$(LIB_NAME).so $(OBJECTS)
 
-build_dir:
-	mkdir -p $(BUILD_DIR)
+$(LIB_TARGET_DIR)/$(LIB_NAME).so.$(SO_VER): $(OBJECTS) | $(BUILD_DIR) $(LIB_TARGET_DIR)
+	$(LINKER) $(LINKER_FLAGS) -o $(LIB_TARGET_DIR)/$(LIB_NAME).so.$(SO_VER) -Wl,-soname,$(LIB_NAME).so.$(SO_MAJOR_VER) $(OBJECTS)
+
+$(LIB_TARGET_DIR)/$(LIB_NAME).so.$(SO_MAJOR_VER): $(LIBS) | $(LIB_TARGET_DIR)
+	( cd $(LIB_TARGET_DIR); ln -s $(LIB_NAME).so.$(SO_VER) $(LIB_NAME).so.$(SO_MAJOR_VER) )
+
+$(LIB_TARGET_DIR)/$(LIB_NAME).so: $(LIB_TARGET_DIR)/$(LIB_NAME).so.$(SO_MAJOR_VER) | $(LIB_TARGET_DIR)
+	( cd $(LIB_TARGET_DIR); ln -s $(LIB_NAME).so.$(SO_MAJOR_VER) $(LIB_NAME).so )
+
 
 ##### build rules
 
@@ -140,4 +158,4 @@ clean:
 	rm -f $(OBJECTS)
 	rm -f $(DEPS)
 	rm -f $(LIB_TARGET_DIR)/$(LIB_NAME).a
-	rm -f $(LIB_TARGET_DIR)/$(LIB_NAME).so
+	rm -f $(LIB_TARGET_DIR)/$(LIB_NAME).so*
