--- a/tools/libxc/Makefile
+++ b/tools/libxc/Makefile
@@ -1,9 +1,6 @@
 XEN_ROOT = $(CURDIR)/../..
 include $(XEN_ROOT)/tools/Rules.mk
 
-MAJOR    = 4.0
-MINOR    = 0
-
 CTRL_SRCS-y       :=
 CTRL_SRCS-y       += xc_core.c
 CTRL_SRCS-$(CONFIG_X86) += xc_core_x86.c
@@ -77,8 +74,6 @@
 # libraries.
 #CFLAGS   += -DVALGRIND -O0 -ggdb3
 
-LDFLAGS  += -L.
-
 CTRL_LIB_OBJS := $(patsubst %.c,%.o,$(CTRL_SRCS-y))
 CTRL_PIC_OBJS := $(patsubst %.c,%.opic,$(CTRL_SRCS-y))
 
@@ -90,12 +85,12 @@
 
 LIB := libxenctrl.a
 ifneq ($(stubdom),y)
-LIB += libxenctrl.so libxenctrl.so.$(MAJOR) libxenctrl.so.$(MAJOR).$(MINOR)
+LIB += libxenctrl.so libxenctrl-$(XEN_VERSION).so
 endif
 
 LIB += libxenguest.a
 ifneq ($(stubdom),y)
-LIB += libxenguest.so libxenguest.so.$(MAJOR) libxenguest.so.$(MAJOR).$(MINOR)
+LIB += libxenguest.so libxenguest-$(XEN_VERSION).so
 endif
 
 ifneq ($(stubdom),y)
@@ -116,15 +111,13 @@
 install: build
 	$(INSTALL_DIR) $(DESTDIR)$(LIBDIR)
 	$(INSTALL_DIR) $(DESTDIR)$(INCLUDEDIR)
-	$(INSTALL_PROG) libxenctrl.so.$(MAJOR).$(MINOR) $(DESTDIR)$(LIBDIR)
+	$(INSTALL_PROG) libxenctrl-$(XEN_VERSION).so $(DESTDIR)$(LIBDIR)
 	$(INSTALL_DATA) libxenctrl.a $(DESTDIR)$(LIBDIR)
-	ln -sf libxenctrl.so.$(MAJOR).$(MINOR) $(DESTDIR)$(LIBDIR)/libxenctrl.so.$(MAJOR)
-	ln -sf libxenctrl.so.$(MAJOR) $(DESTDIR)$(LIBDIR)/libxenctrl.so
+	ln -sf libxenctrl-$(XEN_VERSION).so $(DESTDIR)$(LIBDIR)/libxenctrl.so
 	$(INSTALL_DATA) xenctrl.h xenctrlosdep.h xentoollog.h $(DESTDIR)$(INCLUDEDIR)
-	$(INSTALL_PROG) libxenguest.so.$(MAJOR).$(MINOR) $(DESTDIR)$(LIBDIR)
+	$(INSTALL_PROG) libxenguest-$(XEN_VERSION).so $(DESTDIR)$(LIBDIR)
 	$(INSTALL_DATA) libxenguest.a $(DESTDIR)$(LIBDIR)
-	ln -sf libxenguest.so.$(MAJOR).$(MINOR) $(DESTDIR)$(LIBDIR)/libxenguest.so.$(MAJOR)
-	ln -sf libxenguest.so.$(MAJOR) $(DESTDIR)$(LIBDIR)/libxenguest.so
+	ln -sf libxenguest-$(XEN_VERSION).so $(DESTDIR)$(LIBDIR)/libxenguest.so
 	$(INSTALL_DATA) xenguest.h $(DESTDIR)$(INCLUDEDIR)
 
 .PHONY: TAGS
@@ -153,22 +146,18 @@
 libxenctrl.a: $(CTRL_LIB_OBJS)
 	$(AR) rc $@ $^
 
-libxenctrl.so: libxenctrl.so.$(MAJOR)
-	ln -sf $< $@
-libxenctrl.so.$(MAJOR): libxenctrl.so.$(MAJOR).$(MINOR)
+libxenctrl.so: libxenctrl-$(XEN_VERSION).so
 	ln -sf $< $@
 
-libxenctrl.so.$(MAJOR).$(MINOR): $(CTRL_PIC_OBJS)
-	$(CC) $(CFLAGS) $(LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,libxenctrl.so.$(MAJOR) $(DLOPEN_LIBS) $(SHLIB_LDFLAGS) -o $@ $^ $(PTHREAD_LIBS)
+libxenctrl-$(XEN_VERSION).so: $(CTRL_PIC_OBJS)
+	$(CC) $(CFLAGS) $(LDFLAGS) -Wl,-soname=$@ $(DLOPEN_LIBS) $(SHLIB_LDFLAGS) -o $@ $^ $(PTHREAD_LIBS)
 
 # libxenguest
 
 libxenguest.a: $(GUEST_LIB_OBJS)
 	$(AR) rc $@ $^
 
-libxenguest.so: libxenguest.so.$(MAJOR)
-	ln -sf $< $@
-libxenguest.so.$(MAJOR): libxenguest.so.$(MAJOR).$(MINOR)
+libxenguest.so: libxenguest-$(XEN_VERSION).so
 	ln -sf $< $@
 
 ifeq ($(CONFIG_MiniOS),y)
@@ -193,12 +182,12 @@
 xc_dom_bzimageloader.o: CFLAGS += $(call zlib-options,D)
 xc_dom_bzimageloader.opic: CFLAGS += $(call zlib-options,D)
 
-libxenguest.so.$(MAJOR).$(MINOR): COMPRESSION_LIBS = $(call zlib-options,l)
-libxenguest.so.$(MAJOR).$(MINOR): $(GUEST_PIC_OBJS) libxenctrl.so
-	$(CC) $(CFLAGS) $(LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,libxenguest.so.$(MAJOR) $(SHLIB_LDFLAGS) -o $@ $(GUEST_PIC_OBJS) $(COMPRESSION_LIBS) -lz -lxenctrl $(PTHREAD_LIBS)
+libxenguest-$(XEN_VERSION).so: COMPRESSION_LIBS = $(call zlib-options,l)
+libxenguest-$(XEN_VERSION).so: $(GUEST_PIC_OBJS) libxenctrl-$(XEN_VERSION).so
+	$(CC) $(CFLAGS) $(LDFLAGS) -Wl,-soname=$@ $(SHLIB_LDFLAGS) -o $@ $^ $(COMPRESSION_LIBS) -lz $(PTHREAD_LIBS)
 
-xenctrl_osdep_ENOSYS.so: $(OSDEP_PIC_OBJS) libxenctrl.so
-	$(CC) -g $(CFLAGS) $(LDFLAGS) $(SHLIB_LDFLAGS) -o $@ $(OSDEP_PIC_OBJS) -lxenctrl
+xenctrl_osdep_ENOSYS.so: $(OSDEP_PIC_OBJS) libxenctrl-$(XEN_VERSION).so
+	$(CC) -g $(CFLAGS) $(LDFLAGS) $(SHLIB_LDFLAGS) -o $@ $^
 
 -include $(DEPS)
 
