If a target has C++ sources, then use g++ to link it (fixes #162).
Removed SONAME, it's not relevant for dlls and was unused anyway.

diff --git a/tools/winemaker b/tools/winemaker
index 71c6c1c..6bc36aa 100755
--- a/tools/winemaker
+++ b/tools/winemaker
@@ -1795,7 +1795,12 @@
         $t_name.=".so";
       }
       print FILEO "$t_name: \$(${canon}_SPEC_SRCS:.spec=.spec.o) \$(${canon}_OBJS) \$(${canon}_DEPENDS) \n";
-      print FILEO "\t\$(LDSHARED) \$(LDDLLFLAGS) -o \$\@ \$(${canon}_OBJS) \$(${canon}_SPEC_SRCS:.spec=.spec.o) \$(${canon}_LIBRARY_PATH) \$(${canon}_LIBRARIES:%=-l%) \$(DLL_LINK) \$(LIBS)\n";
+      if (@{@$target[$T_SOURCES_CXX]} > 0 or @{@$project_settings[$T_SOURCES_CXX]} > 0) {
+        print FILEO "\t\$(LDXXSHARED)";
+      } else {
+        print FILEO "\t\$(LDSHARED)";
+      }
+      print FILEO " \$(LDDLLFLAGS) -o \$\@ \$(${canon}_OBJS) \$(${canon}_SPEC_SRCS:.spec=.spec.o) \$(${canon}_LIBRARY_PATH) \$(${canon}_LIBRARIES:%=-l%) \$(DLL_LINK) \$(LIBS)\n";
       if (@$target[$T_TYPE] ne $TT_DLL) {
         print FILEO "\ttest -e @$target[$T_NAME] || \$(LN_S) \$(WINE) @$target[$T_NAME]\n";
       }
@@ -2254,6 +2259,7 @@
 dnl **** Check for working dll ****
 
 LDSHARED=""
+LDXXSHARED=""
 LDDLLFLAGS=""
 AC_CACHE_CHECK("whether we can build a Linux dll",
                ac_cv_c_dll_linux,
@@ -2265,6 +2271,7 @@
 if test "$ac_cv_c_dll_linux" = "yes"
 then
   LDSHARED="\$(CC) -shared -Wl,-rpath,\$(libdir)"
+  LDXXSHARED="\$(CXX) -shared -Wl,-rpath,\$(libdir)"
   LDDLLFLAGS="-Wl,-Bsymbolic"
 else
   AC_CACHE_CHECK(whether we can build a UnixWare (Solaris) dll,
@@ -2276,7 +2283,8 @@
   ])
   if test "$ac_cv_c_dll_unixware" = "yes"
   then
-    LDSHARED="\$(CC) -Wl,-G \$(SONAME:%=-Wl,h,\$(libdir)/%)"#FIXME: why SONAME here?
+    LDSHARED="\$(CC) -Wl,-G"
+    LDXXSHARED="\$(CXX) -Wl,-G"
     LDDLLFLAGS="-Wl,-B,symbolic"
   else
     AC_CACHE_CHECK("whether we can build a NetBSD dll",
@@ -2289,6 +2297,7 @@
     if test "$ac_cv_c_dll_netbsd" = "yes"
     then
       LDSHARED="\$(CC) -Wl,-Bshareable,-Bforcearchive"
+      LDXXSHARED="\$(CXX) -Wl,-Bshareable,-Bforcearchive"
       LDDLLFLAGS="" #FIXME
     fi
   fi
@@ -2303,6 +2312,7 @@
 
 AC_SUBST(DLL_LINK)
 AC_SUBST(LDSHARED)
+AC_SUBST(LDXXSHARED)
 AC_SUBST(LDDLLFLAGS)
 
 dnl *** check for the need to define __i386__
@@ -2778,6 +2788,7 @@
 ALLWRCFLAGS=$(WRCFLAGS) $(WRCEXTRA) $(OPTIONS) $(ALLFLAGS)
 LDCOMBINE = ld -r
 LDSHARED  = @LDSHARED@
+LDXXSHARED  = @LDXXSHARED@
 LDDLLFLAGS= @LDDLLFLAGS@
 STRIP     = strip
 STRIPFLAGS= --strip-unneeded