Fix check target for Unix-like environment

# Conflicts:
#	Makefile
diff --git a/Makefile b/Makefile
index 73e89ef..e709d50 100644
--- a/Makefile
+++ b/Makefile
@@ -360,9 +360,7 @@
 else
 	cd tests && $(MAKE) BUILDDIR=$(BLDIR)
 endif
-ifeq ($(CAPSTONE_SHARED),yes)
-	$(INSTALL_DATA) $(LIBRARY) $(BLDIR)/tests/lib$(LIBNAME).$(VERSION_EXT)
-endif
+	$(call install-library,$(BLDIR)/tests/)
 endif
 
 ifeq ($(CAPSTONE_SHARED),yes)
@@ -408,14 +406,7 @@
 
 install: $(PKGCFGF) $(ARCHIVE) $(LIBRARY)
 	mkdir -p $(DESTDIR)/$(LIBDIR)
-ifeq ($(CAPSTONE_SHARED),yes)
-	$(INSTALL_LIB) $(LIBRARY) $(DESTDIR)/$(LIBDIR)
-ifneq ($(VERSION_EXT),)
-	cd $(DESTDIR)/$(LIBDIR) && \
-	rm -f lib$(LIBNAME).$(EXT) && \
-	ln -s lib$(LIBNAME).$(VERSION_EXT) lib$(LIBNAME).$(EXT)
-endif
-endif
+	$(call install-library,$(DESTDIR)/$(LIBDIR))
 ifeq ($(CAPSTONE_STATIC),yes)
 	$(INSTALL_DATA) $(ARCHIVE) $(DESTDIR)/$(LIBDIR)
 endif
@@ -471,7 +462,7 @@
 check:
 	@for t in $(TESTS); do \
 		echo Check $$t ... ; \
-		./tests/$$t > /dev/null && echo OK || echo FAILED; \
+		LD_LIBRARY_PATH=./tests ./tests/$$t > /dev/null && echo OK || echo FAILED; \
 	done
 
 $(OBJDIR)/%.o: %.c
@@ -484,6 +475,20 @@
 endif
 
 
+ifeq ($(CAPSTONE_SHARED),yes)
+define install-library
+	$(INSTALL_LIB) $(LIBRARY) $1
+	$(if $(VERSION_EXT),
+		cd $1 && \
+		rm -f lib$(LIBNAME).$(EXT) && \
+		ln -s lib$(LIBNAME).$(VERSION_EXT) lib$(LIBNAME).$(EXT))
+endef
+else
+define install-library
+endef
+endif
+
+
 define create-archive
 	$(AR) q $(ARCHIVE) $(LIBOBJ)
 	$(RANLIB) $(ARCHIVE)