- Unixware (Solaris) linker typo fixed
- Solaris (and possibly Unixware) specific linker support for the
  GNU:ism --[no-]whole-archive
- Solaris make specific makefile fix

diff --git a/configure.in b/configure.in
index ad9b113..9f6689b6 100644
--- a/configure.in
+++ b/configure.in
@@ -390,10 +390,10 @@
   then
     LDSHARED="\$(CC) -shared -Wl,-soname,\$(SONAME),-rpath,\$(libdir)"
   else
-    AC_CACHE_CHECK("whether we can build a UnixWare dll",
+    AC_CACHE_CHECK(whether we can build a UnixWare (Solaris) dll,
                  ac_cv_c_dll_unixware,
     [saved_cflags=$CFLAGS
-    CFLAGS="$CFLAGS -fPIC -Wl,-G,conftest.so.1.0"
+    CFLAGS="$CFLAGS -fPIC -Wl,-G,-h,conftest.so.1.0"
     AC_TRY_LINK(,[return 1],ac_cv_c_dll_unixware="yes",ac_cv_c_dll_unixware="no")
     CFLAGS=$saved_cflags
     ])
@@ -428,7 +428,8 @@
     ALT_LINK="\$(LIBOBJS) \$(X11OBJS)"
     LIB_TARGET=""
 else
-    ALT_LINK="-Wl,--whole-archive -L\$(TOPOBJDIR) -lwine -Wl,--no-whole-archive"
+    ALT_LINK="-L\$(TOPOBJDIR) -lwine"
+
     if test "$LIB_TYPE" = "dll"; then
         LIB_TARGET="libwine.so"
         BUILDFLAGS="-pic"
@@ -436,6 +437,29 @@
         LIBEXT="so"
     else
         LIB_TARGET="libwine.a"
+ 	AC_CACHE_CHECK([whether the linker supports --[[no]]-whole-archive (Linux)],
+ 	               ac_cv_c_whole_archive,
+            [saved_cflags=$CFLAGS
+            CFLAGS="$CFLAGS -Wl,--whole-archive -Wl,--no-whole-archive"
+            AC_TRY_LINK(,[return 1],ac_cv_c_whole_archive="yes",ac_cv_c_whole_archive="no")
+            CFLAGS=$saved_cflags
+            ])
+        if test "$ac_cv_c_whole_archive" = "yes"
+        then
+            ALT_LINK="-Wl,--whole-archive -L\$(TOPOBJDIR) -lwine -Wl,--no-whole-archive"
+        else
+            AC_CACHE_CHECK([whether the linker supports -z {all,default}extract (Linux)],
+                           ac_cv_c_allextract,
+		[saved_cflags=$CFLAGS
+		CFLAGS="$CFLAGS -Wl,-z,allextract -Wl,-z,defaultextract"
+		AC_TRY_LINK(,[return 1],ac_cv_c_allextract="yes",ac_cv_c_allextract="no")
+		CFLAGS=$saved_cflags
+		])
+            if test "$ac_cv_c_allextract" = "yes"
+            then
+                ALT_LINK="-Wl,-z,allextract -L\$(TOPOBJDIR) -lwine -Wl,-z,defaultextract"
+            fi
+        fi
     fi
 fi