Merge branch 'njsf-cov' into for-steve
[sxemacs] / configure.ac
index b62310e..823f010 100644 (file)
@@ -31,6 +31,7 @@ AC_COPYRIGHT(
 #### Copyright (C) 2005 Malcolm Purvis.
 #### Copyright (C) 2005, 2006, 2007 Steve Youngs.
 #### Copyright (C) 2006, 2007, 2008 Sebastian Freundt.
+#### Copyright (C) 2007, 2010, 2011 Nelson Ferreira
 
 ### Don't edit this script!
 ### This script was automatically generated by the `autoconf' program
@@ -479,30 +480,26 @@ OG_ARG_WITH([external-widget],
 OG_ARG_WITH([menubars],
        AS_HELP_STRING([--with-menubars=TYPE],
                [Type of menubars to use.  The Lucid menubars emulate
-               Motif (mostly) but are faster.
-               *WARNING*  The gtk menubar is gtk-1.2 only and unmaintained.]),
-       [lucid], [Lucid], [lucid gtk no])
+               Motif (mostly) but are faster.]),
+       [lucid], [Lucid], [lucid no])
 
 OG_ARG_WITH([scrollbars],
        AS_HELP_STRING([--with-scrollbars=TYPE],
                [Type of scrollbars to use.
-               *WARNING*  The Motif scrollbars are currently broken.
-               *WARNING*  The gtk scrollbars are gtk-1.2 only and unmaintained.]),
-       [lucid], [Lucid], [lucid motif athena gtk no])
+               *WARNING*  The Motif scrollbars are currently broken.]),
+       [lucid], [Lucid], [lucid motif athena no])
 
 OG_ARG_WITH([dialogs],
        AS_HELP_STRING([--with-dialogs=TYPE],
                [Type of dialog boxes to use.  Athena dialogs will
-                 be used if Athena can be found.
-                *WARNING*  The gtk dialogs are gtk-1.2 only and unmaintained.]),
-       [athena], [], [athena motif gtk no])
+                 be used if Athena can be found.]),
+       [athena], [], [athena motif no])
 
 OG_ARG_WITH([widgets],
        AS_HELP_STRING([--with-widgets=TYPE],
                [Type of native widgets to use.  Athena widgets will
-               be used if Athena can be found.
-               *WARNING*  The gtk widgets are gtk-1.2 only and unmaintained.]),
-       [athena], [], [athena motif gtk no])
+               be used if Athena can be found.]),
+       [athena], [], [athena motif no])
 
 OG_ARG_WITH([athena],
        AS_HELP_STRING([--with-athena=TYPE],
@@ -514,18 +511,6 @@ OG_ARG_WITH([xim],
                [Type of Mule input method to use.]),
        [auto], [Autodetect], [yes no xlib motif])
 
-OG_ARG_WITH([gtk],
-       AS_HELP_STRING([--with-gtk],
-               [Support GTK (version 1.x) on the X Window System.
-               (EXPERIMENTAL)]),
-       [no], [NO])
-
-OG_ARG_WITH([gnome],
-       AS_HELP_STRING([--with-gnome],
-               [Support GNOME (version 1.x) on the X Window System.
-               (EXPERIMENTAL)]),
-       [no], [NO])
-
 OG_ARG_WITH([wmcommand],
        AS_HELP_STRING([--with-wmcommand],
                [Compile with realized leader window which will
@@ -744,11 +729,6 @@ dnl dnl Other Options
 dnl dnl =============
 dnl OG_OPTION_GROUP(Other options)
 dnl 
-dnl OG_ARG_WITH([tooltalk],
-dnl    AS_HELP_STRING([--with-tooltalk],
-dnl            [Support the ToolTalk IPC protocol.]),
-dnl    [no], [NO], [], [with_tooltalk=$withval], [with_tooltalk=no])
-
 
 ## -------------------------------------------------------------------------
 ## Check for users who regularly forget about running autoconf
@@ -878,6 +858,8 @@ AS_MESSAGE([Let's look for the entire C build chain])
 SXE_CHECK_CC
 SXE_CHECK_CFLAGS
 
+m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
+
 ## check machine chars
 AS_MESSAGE([Let's have a detailed glance at your machine])
 SXE_PROC_CPUID
@@ -995,8 +977,11 @@ if test "$with_dynamic" = "yes"; then
        decosf* )
                ld_call_shared="-call_shared"
                ;;
-       darwin )
+       darwin* )
                AC_DEFINE([DLSYM_NEEDS_UNDERSCORE], [1], [Description here!])
+               if test "x$have_ld_no_pie" != "x"; then
+                       SXE_PREPEND_LINKER_FLAG([-no_pie], [ld_switch_site])
+               fi
                ;;
        esac
 else dnl "$with_dynamic" = "no"
@@ -1012,6 +997,12 @@ else dnl "$with_dynamic" = "no"
        decosf* )
                ld_call_shared="-non_shared"
                ;;
+       darwin* )
+               AC_DEFINE([DLSYM_NEEDS_UNDERSCORE], [1], [Description here!])
+               if test "x$have_ld_no_pie" != "x"; then
+                       SXE_PREPEND_LINKER_FLAG([-no_pie], [ld_switch_site])
+               fi
+               ;;
        esac
 fi
 
@@ -1035,13 +1026,6 @@ dnl --------------------------------------------------
 dnl Determine the compiler, set up for feature testing
 dnl --------------------------------------------------
 
-dnl Sun Development environment support
-test "$with_sparcworks" = "yes" && with_workshop=yes # compatibility alias
-SXE_CHECK_FEATURE_DEPENDENCY([workshop], [tooltalk])
-if test "$with_workshop" = "yes"; then
-       AC_DEFINE([SUNPRO], [1], [Description here!])
-fi
-
 if test "$with_clash_detection" != "no"; then
        AC_DEFINE([CLASH_DETECTION], [1], [Description here!])
        SXE_ADD_CRUFT_OBJS([filelock.o])
@@ -1138,7 +1122,7 @@ SXE_DO_CC_HACKS
 SXE_CHECK_SIMD_EXTENSIONS
 
 ## some linker flags that might come in handy
-SXE_CHECK_LINKER_FLAGS
+SXE_CHECK_LDFLAGS
 
 ## suffices to be defined late, for instance here
 SXE_CHECK_PARSER_LEXER
@@ -1151,7 +1135,7 @@ if test "$with_pdump" != "yes"; then
        ## enough.  Please report it, though.
        ## #### Should make this Solaris-friendly.
        ## Link with -z nocombreloc for now.
-       SXE_CHECK_LD_NOCOMBRELOC
+       SXE_CHECK_LD_ZFLAG([nocombreloc])
        if test "$sxe_cv_ld__z_nocombreloc" = "yes"; then
                SXE_PREPEND_LINKER_FLAG([-z nocombreloc], [ld_switch_site])
        fi
@@ -1274,7 +1258,7 @@ AC_MSG_CHECKING(whether the -xildoff compiler flag is required)
 if   ${CC-cc} '-###' -xildon  no_such_file.c 2>&1 | grep '^[^ ]*/ild ' > /dev/null ; then
   if ${CC-cc} '-###' -xildoff no_such_file.c 2>&1 | grep '^[^ ]*/ild ' > /dev/null ;
     then AC_MSG_RESULT(no);
-    else AC_MSG_RESULT(yes); SXE_APPEND(-xildoff, ld_switch_site)
+    else AC_MSG_RESULT(yes); SXE_APPEND_UNDUP(-xildoff, ld_switch_site)
   fi
   else AC_MSG_RESULT(no)
 fi
@@ -1285,7 +1269,7 @@ if test "$opsys" = "sol2"; then
     AC_MSG_CHECKING(for "-z ignore" linker flag)
     case "`ld -h 2>&1`" in
       *-z\ ignore\|record* ) AC_MSG_RESULT(yes)
-        SXE_PREPEND(-z ignore, ld_switch_site) ;;
+        SXE_PREPEND_UNDUP(-z ignore, ld_switch_site) ;;
       *) AC_MSG_RESULT(no) ;;
     esac
   fi
@@ -1609,23 +1593,18 @@ dnl special pthread handling
 dnl AIX uses pthreads instead of pthread, and HP/UX uses cma
 dnl FreeBSD uses -pthread
 AC_CHECK_LIB(pthread, pthread_create)
-if test $ac_cv_lib_pthread_pthread_create = yes; then
-  have_threads=yes
-  have_pthreads_opt=yes
-  case "`$CC -pthreads 2>&1`" in
-      *unrecognized\ option*) have_pthreads_opt=no ;;
-  esac
-  if test "$have_pthreads_opt" = "yes"; then
-       SXE_PREPEND(-pthreads, c_switch_site)
-  fi
-  have_pthread_opt=yes
-  case "`$CC -pthread 2>&1`" in
-     *unrecognized\ option*) have_pthread_opt=no ;;
-  esac
-  if test "$have_pthread_opt" = "yes"; then
-       SXE_PREPEND(-pthread, c_switch_site)
-  fi
-  SXE_PREPEND(-lpthread, MM_LIBS)
+if test "${ac_cv_lib_pthread_pthread_create}" = "yes"; then
+       have_threads=yes
+
+       SXE_CHECK_COMPILER_FLAGS([-pthreads])
+       SXE_CHECK_COMPILER_FLAGS([-pthread])
+       if test "${sxe_cv_c_flags__pthreads}" = "yes"; then
+               SXE_PREPEND_UNDUP([-pthreads], [c_switch_site])
+       fi
+       if test "${sxe_cv_c_flags__pthread}" = "yes"; then
+               SXE_PREPEND_UNDUP([-pthread], [c_switch_site])
+       fi
+       SXE_PREPEND([-lpthread], [MM_LIBS])
 fi
 
 dnl test for AIX pthreads
@@ -1657,8 +1636,8 @@ AC_CACHE_VAL(ac_cv_ldflag_pthread,
 if eval "test \"`echo $ac_cv_ldflag_pthread`\" = yes"; then
        AC_MSG_RESULT(yes)
         have_threads=yes
-        SXE_PREPEND("-pthread", ld_switch_site)
-        SXE_PREPEND("-D_THREAD_SAFE", c_switch_site)
+        SXE_PREPEND_UNDUP("-pthread", ld_switch_site)
+        SXE_PREPEND_UNDUP("-D_THREAD_SAFE", c_switch_site)
 else
        AC_MSG_RESULT(no)
 fi])
@@ -1803,12 +1782,17 @@ if test "$opsys" != "darwin"; then
        have_ase_perm="yes"
        have_ase_resclass="yes"
 fi
-
-if test "$with_modules_cl" = "yes" -a "$have_bison" = "yes"; then
-       have_modules_cl="yes"
-fi
-if test "$with_static_modules_cl" = "yes" -a "$have_bison" = "yes"; then
-       have_static_modules_cl="yes"
+if test "$have_bison" = "yes"; then
+       if test "$with_modules_cl" = "yes" ; then
+               have_modules_cl="yes"
+       fi
+       if test "$with_static_modules_cl" = "yes"; then
+               have_static_modules_cl="yes"
+       fi
+else
+       if test "$with_modules_cl" = "yes" -o "$with_static_modules_cl" = "yes"; then
+               AC_MSG_WARN([Sorry no bison means no cl module for you.])
+       fi
 fi
 SXE_EMOD_STATMOD([cl])
 
@@ -2224,131 +2208,6 @@ dnl ----------------------
 
 AS_MESSAGE([checking for specified window system])
 
-dnl Autodetection of Gdk libraries and includes
-dnl -------------------------------------------
-dnl On some systems (FreeBSD springs to mind), they use
-dnl versions on the utility routines, so instead of gtk-config
-dnl you must use gtk12-config, etc, etc.
-
-GNOME_CONFIG=no
-GTK_CONFIG=no
-
-if test "$with_gnome" != "no"; then
-   AC_MSG_CHECKING(for GNOME configuration script)
-   for possible in gnome-config
-   do
-      possible_version=`${possible} --version 2> /dev/null`
-      if test "x${possible_version}" != "x"; then
-              GNOME_CONFIG="${possible}"
-              with_gnome=yes
-              with_gtk=yes
-              break
-      fi
-   done
-   AC_MSG_RESULT([${GNOME_CONFIG}])
-fi
-
-if test "${GNOME_CONFIG}" != "no"; then
-      GNOME_LIBS=`${GNOME_CONFIG} --libs gnomeui`
-      GNOME_CFLAGS=`${GNOME_CONFIG} --cflags gnomeui`
-      AC_DEFINE([HAVE_GNOME], [1], [Description here!])
-      SXE_APPEND(${GNOME_LIBS}, libs_gtk)
-      SXE_APPEND(${GNOME_CFLAGS}, c_switch_gtk)
-fi
-
-if test "$with_gtk" != "no";then
-   AC_MSG_CHECKING(for GTK configuration script)
-   for possible in gtk12-config gtk14-config gtk-config
-   do
-      possible_version=`${possible} --version 2> /dev/null`
-      if test "x${possible_version}" != "x"; then
-              GTK_CONFIG="${possible}"
-             case "${possible_version}" in
-               1.0.*) AC_MSG_WARN([GTK 1.2 is required, please upgrade your version of GTK.]); with_gtk=no;;
-               1.3.*) AC_MSG_WARN([GTK 1.3 is not supported right now]); with_gtk=no;;
-               1.2.*)
-                       with_gtk=yes
-                       break
-                       ;;
-               *)     AC_MSG_WARN([Found unsupported version of GTK: $possible_version]);;
-             esac
-      fi
-   done
-   AC_MSG_RESULT([${GTK_CONFIG}])
-fi
-
-if test "${GTK_CONFIG}" != "no"; then
-      AC_MSG_CHECKING(gtk version)
-      GTK_VERSION=`${GTK_CONFIG} --version`
-      AC_MSG_RESULT(${GTK_VERSION})
-
-      AC_MSG_CHECKING(gtk libs)
-      GTK_LIBS=`${GTK_CONFIG} --libs`
-      SXE_APPEND(${GTK_LIBS}, libs_gtk)
-      AC_MSG_RESULT(${GTK_LIBS})
-
-      AC_MSG_CHECKING(gtk cflags)
-      GTK_CFLAGS=`${GTK_CONFIG} --cflags`
-      if test "$GCC" = "yes"; then
-       GTK_CFLAGS="${GTK_CFLAGS} -Wno-shadow"
-      fi
-      SXE_APPEND(${GTK_CFLAGS}, c_switch_gtk)
-      AC_MSG_RESULT(${GTK_CFLAGS})
-
-      AC_CHECK_LIB(gdk_imlib, main, SXE_PREPEND(-lgdk_imlib, libs_gtk))
-      AC_CHECK_LIB(Imlib, Imlib_init, SXE_APPEND(-lImlib, libs_gtk))
-      AC_CHECK_FUNCS(gdk_imlib_init)
-
-      AC_DEFINE([HAVE_XPM], [1], [Description here!])
-      AC_DEFINE([HAVE_GTK], [1], [Description here!])
-      AC_SUBST(GTK_CONFIG)
-
-      window_system=gtk
-      with_gtk=yes
-      if test "$with_x11" != "no"; then
-       AC_MSG_WARN([Configuring Gtk, this means:
-*** --with-athena  will have no effect
-*** --with-scrollbars  has been turned into a boolean option
-*** --with-menubars  has been turned into a boolean option
-*** --with-dialogs  has been turned into a boolean option
-*** --with-widgets  has been turned into a boolean option.])
-       with_x11=no
-      fi
-
-      test "${with_scrollbars}" != "no" && with_scrollbars=gtk
-      test "${with_toolbars}" != "no" && with_toolbars=gtk
-      test "${with_menubars}" != "no" && with_menubars=gtk
-      test "${with_dialogs}" != "no" && with_dialogs=gtk
-      test "${with_widgets}" != "no" && with_widgets=gtk
-
-      SXE_ADD_SXEUIGTK_OBJS(console-gtk.o device-gtk.o event-gtk.o frame-gtk.o)
-      SXE_ADD_SXEUIGTK_OBJS(objects-gtk.o redisplay-gtk.o glyphs-gtk.o)
-      SXE_ADD_SXEUIGTK_OBJS(select-gtk.o gccache-gtk.o)
-      SXE_ADD_SXEUIGTK_OBJS(gtk-xemacs.o ui-gtk.o)
-
-      dnl Check for libglade support (it rocks)
-      OLD_CFLAGS="${CFLAGS}"
-      OLD_CPPFLAGS="${CPPFLAGS}"
-      OLD_LDFLAGS="${LDFLAGS}"
-      CFLAGS="${GTK_CFLAGS} ${CFLAGS}"
-      CPPFLAGS="${GTK_CFLAGS} ${CFLAGS}"
-      LDFLAGS="${LDFLAGS} ${GTK_LIBS}"
-      AC_CHECK_HEADERS(glade/glade.h glade.h)
-      AC_CHECK_LIB(xml, main, SXE_PREPEND(-lxml, libs_gtk))
-      AC_CHECK_LIB(glade, main, SXE_PREPEND(-lglade, libs_gtk))
-      AC_CHECK_LIB(glade-gnome, main, SXE_PREPEND(-lglade-gnome, libs_gtk))
-      AC_EGREP_HEADER([char \*txtdomain;], [glade/glade-xml.h],
-                      [AC_MSG_RESULT(yes)
-                       AC_DEFINE([LIBGLADE_XML_TXTDOMAIN], [1], [Description here!])],
-                      [AC_MSG_RESULT(no)])
-      CFLAGS="${OLD_CFLAGS}"
-      CPPFLAGS="${OLD_CPPFLAGS}"
-      LDFLAGS="${OLD_LDFLAGS}"
-fi
-
-dnl We may eventually prefer gtk/gdk over vanilla X11...
-dnl Are we mad? We need stuff from the X11 even _with_ gtk!!!
-
 if test "$with_x" != "no"; then
        if test "$with_x11" != "no"; then
                dnl User-specified --x-includes or --x-libraries implies --with-x11.
@@ -2409,9 +2268,6 @@ if test "$with_x" != "no"; then
        fi
 
        AC_PATH_XTRA
-       ## Autoconf claims to find X library and include dirs for us.
-       ## dnl encapsulate that, such that Xaw and motif is not used when gtk is
-       ## in effect
        if test "$with_x11" != "no"; then
                if test "$no_x" = "yes"; then
                        with_x11=no
@@ -2460,7 +2316,7 @@ if test "$with_x11" = "yes"; then
        fi
        
        if test "$got_motif" != "yes"; then
-               dnl Try to find Motif/CDE/Tooltalk dirs
+               dnl Try to find Motif dirs
                dnl These take precedence over other X libs/includes, so PRE-pend
                for lib_dir in \
                        "/usr/dt/lib" "/usr/lib/Motif2.1" \
@@ -2480,7 +2336,7 @@ if test "$with_x11" = "yes"; then
                                        ;;
                                *)
                                        x_includes="$inc_dir $x_includes"
-                                       SXE_PREPEND(["-I${inc_dir}"], [X_CFLAGS])
+                                       SXE_PREPEND_UNDUP(["-I${inc_dir}"], [X_CFLAGS])
                                        ;;
                                esac
                                break; dnl only need ONE Motif implementation!
@@ -2505,7 +2361,7 @@ if test "$with_x11" = "yes"; then
                                ;;
                        *)
                                x_includes="$x_includes $inc_dir"
-                               SXE_APPEND(["-I${inc_dir}"], [X_CFLAGS])
+                               SXE_APPEND_UNDUP(["-I${inc_dir}"], [X_CFLAGS])
                                ;;
                        esac
                        break; dnl Only need ONE X11 implementation !
@@ -2700,7 +2556,7 @@ if test "$with_x11" != "yes"; then
   dnl if test "$with_tty" = "no" ; then
   dnl   AC_MSG_ERROR([No window system support and no TTY support - Unable to proceed.])
   dnl fi
-  for feature in tooltalk cde offix wmcommand xim xmu nas_sound
+  for feature in offix wmcommand xim xmu nas_sound
   do
     if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
        AC_MSG_WARN([--with-$feature ignored:  Not valid without X support])
@@ -2723,11 +2579,6 @@ bitmapdir=
 
 case "$window_system" in
   x11  ) HAVE_X_WINDOWS=yes; echo "  Using X11." ;;
-  gtk  )
-       HAVE_X_WINDOWS=no
-       test "$with_gnome" = "yes" && echo "  Using GNOME."
-       test "$with_gnome" = "no" && echo "  Using GTK."
-       ;;
   none ) HAVE_X_WINDOWS=no ; echo "  Using no window system." ;;
 esac
 
@@ -2757,27 +2608,11 @@ AC_CHECK_HEADER([X11/Xauth.h], [:], [with_xauth=no])
 AC_CHECK_LIB([Xau], [XauGetAuthByAddr], [:], [with_xauth=no])
 if test "$with_xauth" = "yes"; then
   AC_DEFINE([HAVE_XAUTH], [1], [Description here!])
-  SXE_SPACE([libs_xauth], [$GTK_LIBS $X_EXTRA_LIBS -lXau $libs_x $X_PRE_LIBS])
+  SXE_CONSECUTIVE_UNDUP([libs_xauth], [$X_EXTRA_LIBS -lXau $libs_x $X_PRE_LIBS])
 fi
 SXE_RESTORE_LIBS
 AC_SUBST(libs_xauth)
 
-dnl ----------------------
-dnl GTK-Specific Graphics libraries
-dnl ----------------------
-
-if test "$with_gtk" = "yes"; then
-       dnl Autodetect XFACE
-       have_image_xface=yes
-       AC_CHECK_HEADER([compface.h], [], [have_image_xface=no])
-       AC_CHECK_LIB([compface], [UnGenFace], [:], [have_image_xface=no])
-       if test "$have_image_xface" = "yes"; then
-               AC_DEFINE([HAVE_XFACE], [1], [Description here!])
-               SXE_PREPEND(-lcompface, libs_gtk)
-       fi
-fi
-
-
 dnl ----------------------
 dnl X-Specific Graphics libraries
 dnl ----------------------
@@ -2807,8 +2642,6 @@ dnl ----------------------
 if test "$with_x11" = "yes" -a "$with_x" != "no"; then
        SXE_CHECK_XTOOLKITS
        SXE_CHECK_XT_DEPENDENCIES
-elif test "$with_gtk" = "yes" -o "$with_gnome" = "yes"; then
-       SXE_CHECK_GTK_DEPENDENCIES
 else
        with_menubars=no
        with_scrollbars=no
@@ -2817,55 +2650,6 @@ else
        with_widgets=no
 fi
 
-dnl Autodetect tooltalk
-if test "$with_tooltalk" != "no" ; then
-  dnl autodetect the location of tt_c.h
-  dnl tt_c.h might be in Tt or desktop include directories
-  for dir in "" "Tt/" "desktop/" ; do
-    AC_CHECK_HEADER(${dir}tt_c.h, tt_c_h_file="${dir}tt_c.h"; break)
-  done
-  if test -z "$tt_c_h_file"; then
-    if test "$with_tooltalk" = "yes"; then
-      SXE_USAGE_ERROR("Unable to find required tooltalk header files.")
-    fi
-    with_tooltalk=no
-  fi
-fi
-if test "$with_tooltalk" != "no" ; then
-  for extra_libs in "" "-lI18N -lce" "-lcxx"; do
-    AC_CHECK_LIB(tt, tt_message_create,
-      tt_libs="-ltt $extra_libs"; break, [:],$extra_libs)
-  done
-  if test -z "$tt_libs"; then
-    if test "$with_tooltalk" = "yes"; then
-      SXE_USAGE_ERROR("Unable to find required tooltalk libraries.")
-    fi
-    with_tooltalk=no
-  fi
-fi
-if test "$with_tooltalk" = "yes"; then
-  AC_DEFINE([TOOLTALK], [1], [Description here!])
-  AC_DEFINE_UNQUOTED([TT_C_H_FILE], ["$tt_c_h_file"], [Description here!])
-  SXE_PREPEND($tt_libs, libs_x)
-fi
-
-dnl Autodetect CDE
-AC_CHECK_HEADER(Dt/Dt.h, , with_cde=no)
-AC_CHECK_LIB(DtSvc, DtDndDragStart, [:], with_cde=no)
-if test "$with_dragndrop" = "no" ; then
-  if test "$with_cde" = "yes" ; then
-    AC_MSG_WARN([--with-cde forced to `no'; no generic Drag'n'Drop support])
-  fi
-  with_cde=no
-fi
-if test "$with_cde" = "yes" ; then
-  AC_DEFINE([HAVE_CDE], [1], [Description here!])
-  SXE_PREPEND(-lDtSvc, libs_x)
-  SXE_APPEND(CDE, dragndrop_proto)
-  with_tooltalk=yes # CDE requires Tooltalk
-  need_motif=yes    # CDE requires Motif
-fi
-
 dnl Always compile OffiX unless --without-offix is given, no
 dnl X11 support is compiled in, no standard Xmu is available,
 dnl or dragndrop support is disabled
@@ -2884,20 +2668,11 @@ if test "$with_dragndrop" = "no" ; then
   fi
   with_offix=no
 fi
-if test "$with_cde" = "yes" ; then
-  if test "$with_offix" = "yes" ; then
-    AC_MSG_WARN([--with-offix forced to `no'; CDE already found])
-  fi
-  with_offix=no
-fi
 if test "$with_offix" = "yes"; then
   AC_DEFINE([HAVE_OFFIX_DND], [1], [Description here!])
   SXE_APPEND(offix.o, dnd_objs)
   SXE_APPEND(OffiX, dragndrop_proto)
 fi
-if test "$with_gtk" = "yes"; then
-   SXE_APPEND(GTK, dragndrop_proto)
-fi
 
 
 ## TTY Options
@@ -3137,8 +2912,8 @@ if test "$with_image_png" = "yes"; then
        SXE_MSG_CHECKING([for sufficient PNG support])
        SXE_MSG_RESULT([${sxe_cv_feat_png}])
        if test "$sxe_cv_feat_png" = "yes"; then
-               SXE_PREPEND([$PNG_CPPFLAGS], [MM_CPPFLAGS])
-               SXE_PREPEND([$PNG_LDFLAGS], [MM_LDFLAGS])
+               SXE_PREPEND_UNDUP([$PNG_CPPFLAGS], [MM_CPPFLAGS])
+               SXE_PREPEND_UNDUP([$PNG_LDFLAGS], [MM_LDFLAGS])
                SXE_PREPEND([$PNG_LIBS], [MM_LIBS])
        fi
 fi
@@ -3180,7 +2955,7 @@ if test "$with_media_sndfile" != "no"; then
                SNDFILE_CPPFLAGS=`$PKG_CONFIG --cflags sndfile`
                SNDFILE_VERSION=`$PKG_CONFIG --modversion sndfile`
                SXE_PREPEND([$SNDFILE_LIBS], [MM_LIBS])
-               SXE_PREPEND([$SNDFILE_CPPFLAGS], [MM_CPPFLAGS])
+               SXE_PREPEND_UNDUP([$SNDFILE_CPPFLAGS], [MM_CPPFLAGS])
                SXE_ADD_MM_OBJS([media-sndfile.o])
                AC_DEFINE([HAVE_SNDFILE], [1],
                        [Whether we appear to have support for the sndfile library!])
@@ -3203,7 +2978,7 @@ if test "$with_media_ffmpeg" != "no"; then
                FFMPEG_LIBS=`$PKG_CONFIG --libs libavformat`
                FFMPEG_CPPFLAGS=`$PKG_CONFIG --cflags libavformat`
                SXE_PREPEND($FFMPEG_LIBS, MM_LIBS)
-               SXE_PREPEND($FFMPEG_CPPFLAGS, MM_CPPFLAGS)
+               SXE_PREPEND_UNDUP($FFMPEG_CPPFLAGS, MM_CPPFLAGS)
                SXE_ADD_MM_OBJS([media-ffmpeg.o])
                AC_DEFINE([HAVE_FFMPEG], [1], [Description here!])
        else
@@ -3221,8 +2996,8 @@ if test "$with_media_sox" != "no"; then
        if test "$sxe_cv_feat_sox" = "yes"; then
                AC_MSG_RESULT([yes])
                SXE_ADD_MM_OBJS([media-sox.o])
-               SXE_PREPEND([$sox_cppflags], [MM_CPPFLAGS])
-               SXE_PREPEND([$sox_ldflags], [MM_LDFLAGS])
+               SXE_PREPEND_UNDUP([$sox_cppflags], [MM_CPPFLAGS])
+               SXE_PREPEND_UNDUP([$sox_ldflags], [MM_LDFLAGS])
                SXE_PREPEND([$sox_libs], [MM_LIBS])
                AC_DEFINE([HAVE_SOX], [1], [Description here!])
        else
@@ -3309,7 +3084,8 @@ if test "$with_sound_esd" != "no"; then
                AC_MSG_RESULT([yes])
                need_internal_media=yes
                SXE_ADD_MM_OBJS([sound-esd.o])
-               SXE_PREPEND([`$ESD_CONFIG --libs`], MM_LIBS)
+               ESD_LIBS=$("${ESD_CONFIG}" --libs)
+               SXE_PREPEND(["${ESD_LIBS}"], [MM_LIBS])
                AC_DEFINE([HAVE_ESD_SOUND], [1], [Description here!])
        else
                AC_MSG_RESULT([no])
@@ -3354,7 +3130,7 @@ if test "$with_sound_arts" != "no"; then
                ARTS_CPPFLAGS=`$ARTSC_CONFIG --cflags`
                SXE_ADD_MM_OBJS([sound-arts.o])
                SXE_PREPEND([$ARTS_LIBS], [MM_LIBS])
-               SXE_PREPEND([$ARTS_CPPFLAGS], [MM_CPPFLAGS])
+               SXE_PREPEND_UNDUP([$ARTS_CPPFLAGS], [MM_CPPFLAGS])
                AC_DEFINE([HAVE_ARTS_SOUND], [1], [Description here!])
                AC_DEFINE_UNQUOTED([ARTS_VERSION], [$ARTS_VERSION],
                        [Version number of the underlying arts library])
@@ -3657,23 +3433,25 @@ dnl Compute SUBST-itutable variables
 dnl --------------------------------
 
 dnl We ignore (C|LD)_SWITCH_X_(MACHINE|SYSTEM)
-dnl Use SXE_SPACE instead of plain assignment statements to remove extraneous blanks
+dnl Use SXE_CONSECUTIVE_UNDUP instead of plain assignment statements to remove extraneous blanks
 if test "$with_module_support" = "yes"; then
        ld_libs_module=
 else
-       SXE_SPACE(ld_libs_module, $ldap_libs $postgresql_libs)
-fi
-
-SXE_SPACE(CFLAGS, $CFLAGS)
-SXE_SPACE(c_switch_general, -DHAVE_CONFIG_H $c_switch_site $c_switch_machine $c_switch_system)
-SXE_SPACE(c_switch_window_system, $c_switch_x_site $c_switch_gtk $X_CFLAGS)
-SXE_SPACE(c_switch_all, $c_switch_general $c_switch_window_system)
-SXE_SPACE(ld_switch_general, $ld_switch_site $ld_switch_machine $ld_switch_system $ld_switch_run)
-SXE_SPACE(ld_switch_window_system, $ld_switch_x_site)
-SXE_SPACE(ld_switch_all, $ld_switch_general $ld_switch_window_system)
-SXE_SPACE(ld_libs_general, $LIBS $libs_machine $libs_system $libs_standard)
-SXE_SPACE(ld_libs_window_system, $X_EXTRA_LIBS $libs_x $libs_gtk $X_PRE_LIBS)
-SXE_SPACE(ld_libs_all, $OPENSSL_LIBS $DB_LIBS $ENT_LIBS $MM_LIBS $ld_libs_window_system $ld_libs_general $ld_libs_module)
+       SXE_CONSECUTIVE_UNDUP(ld_libs_module, $ldap_libs $postgresql_libs)
+fi
+
+SXE_UNDUP(CFLAGS, $CFLAGS)
+SXE_UNDUP(c_switch_general, -DHAVE_CONFIG_H $c_switch_site $c_switch_machine $c_switch_system $CFLAGS $CPPFLAGS)
+SXE_UNDUP(c_switch_window_system, $c_switch_x_site $X_CFLAGS)
+SXE_UNDUP(c_switch_all, $c_switch_general $c_switch_window_system)
+SXE_UNDUP(ld_switch_general, $ld_switch_site $ld_switch_machine $ld_switch_system $ld_switch_run)
+SXE_UNDUP(ld_switch_window_system, $ld_switch_x_site)
+SXE_UNDUP(ld_switch_all, $ld_switch_general $ld_switch_window_system)
+dnl Since some systems need libs to be restated later, we can't just dedup, we can only safely dedup
+dnl consecutive occurrences
+SXE_CONSECUTIVE_UNDUP(ld_libs_general, $LIBS $libs_machine $libs_system $libs_standard)
+SXE_CONSECUTIVE_UNDUP(ld_libs_window_system, $X_EXTRA_LIBS $libs_x $X_PRE_LIBS)
+SXE_CONSECUTIVE_UNDUP(ld_libs_all, $OPENSSL_LIBS $DB_LIBS $ENT_LIBS $MM_LIBS $ld_libs_window_system $ld_libs_general $ld_libs_module)
 
 dnl For no-module builds, make the src dir last
 if test "$with_module_support" = "no"; then
@@ -3704,15 +3482,6 @@ AC_SUBST(MAKE_SUBDIR)
 AC_SUBST(MAKE_AM_SUBDIR)
 AC_SUBST(SUBDIR_MAKEFILES)
 
-if test "$extra_verbose" = "yes"; then
-  echo ""
-  SXE_PRINT_VAR(
-   c_switch_general  c_switch_window_system  c_switch_all
-  ld_switch_general ld_switch_window_system ld_switch_all
-    ld_libs_general   ld_libs_window_system   ld_libs_all)
-  echo ""
-fi
-
 dnl ----------------------------------------------
 dnl Create some auxiliary files for developers.
 dnl ----------------------------------------------
@@ -3797,7 +3566,7 @@ dnl Yo, Stephen Bourne!  I want to marry you!
 PREFIX=$prefix
 while true; do
   case "$PREFIX" in
-    *\$* ) eval "PREFIX=$PREFIX" ;;
+    *\$* ) eval "PREFIX=\"${PREFIX}\"" ;;
     *) break ;;
   esac
 done
@@ -3808,7 +3577,7 @@ AC_SUBST(EXEC_PREFIX_USER_DEFINED)
 EXEC_PREFIX=$exec_prefix
 while true; do
   case "$EXEC_PREFIX" in
-    *\$* ) eval "EXEC_PREFIX=$EXEC_PREFIX" ;;
+    *\$* ) eval "EXEC_PREFIX=\"${EXEC_PREFIX}\"" ;;
     *) break ;;
   esac
 done
@@ -3819,7 +3588,7 @@ AC_SUBST(INFODIR_USER_DEFINED)
 INFODIR=$infodir
 while true; do
   case "$INFODIR" in
-    *\$* ) eval "INFODIR=$INFODIR" ;;
+    *\$* ) eval "INFODIR=\"${INFODIR}\"" ;;
     *) break ;;
   esac
 done
@@ -3830,7 +3599,7 @@ AC_SUBST(INFOPATH_USER_DEFINED)
 INFOPATH=$with_infopath
 while true; do
   case "$INFOPATH" in
-    *\$* ) eval "INFOPATH=$INFOPATH" ;;
+    *\$* ) eval "INFOPATH=\"${INFOPATH}\"" ;;
     *) break ;;
   esac
 done
@@ -3845,7 +3614,7 @@ AC_SUBST(MODULE_PATH_USER_DEFINED)
 MODULE_PATH=$with_module_path
 while true; do
   case "$MODULE_PATH" in
-    *\$* ) eval "MODULE_PATH=$MODULE_PATH" ;;
+    *\$* ) eval "MODULE_PATH=\"${MODULE_PATH}\"" ;;
     *) break ;;
   esac
 done
@@ -3857,9 +3626,11 @@ fi
 
 if test -z "$with_package_path" && test -n "$with_package_prefix" ; then
   if test "$with_mule" = "yes" ; then
-    with_package_path="~/.sxemacs/site-packages:~/.sxemacs/xemacs-packages:~/.sxemacs/mule-packages:~/.sxemacs/sxemacs-packages::${with_package_prefix}/site-packages:${with_package_prefix}/xemacs-packages:${with_package_prefix}/mule-packages:${with_package_prefix}/sxemacs-packages"
+    with_package_path="~/.sxemacs/site-packages:~/.sxemacs/sxemacs-packages:~/.sxemacs/xemacs-packages:~/.sxemacs/mule-packages"
+    with_package_path="${with_package_path}:${with_package_prefix}/site-packages:${with_package_prefix}/sxemacs-packages:${with_package_prefix}/xemacs-packages:${with_package_prefix}/mule-packages"
   else
-    with_package_path="~/.sxemacs/site-packages:~/.sxemacs/xemacs-packages:~/.sxemacs/sxemacs-packages::${with_package_prefix}/site-packages:${with_package_prefix}/xemacs-packages:${with_package_prefix}/sxemacs-packages"
+    with_package_path="~/.sxemacs/site-packages:~/.sxemacs/sxemacs-packages:~/.sxemacs/xemacs-packages"
+    with_package_path="${with_package_path}:${with_package_prefix}/site-packages:${with_package_prefix}/sxemacs-packages:${with_package_prefix}/xemacs-packages"
   fi
 fi
 
@@ -3868,7 +3639,7 @@ AC_SUBST(PACKAGE_PATH_USER_DEFINED)
 PACKAGE_PATH=$with_package_path
 while true; do
   case "$PACKAGE_PATH" in
-    *\$* ) eval "PACKAGE_PATH=$PACKAGE_PATH" ;;
+    *\$* ) eval "PACKAGE_PATH=\"${PACKAGE_PATH}\"" ;;
     *) break ;;
   esac
 done
@@ -3879,7 +3650,7 @@ AC_SUBST(LISPDIR_USER_DEFINED)
 LISPDIR=$with_lispdir
 while true; do
   case "$LISPDIR" in
-    *\$* ) eval "LISPDIR=$LISPDIR" ;;
+    *\$* ) eval "LISPDIR=\"${LISPDIR}\"" ;;
     *) break ;;
   esac
 done
@@ -3890,7 +3661,7 @@ AC_SUBST(MODULEDIR_USER_DEFINED)
 MODULEDIR=$with_moduledir
 while true; do
   case "$MODULEDIR" in
-    *\$* ) eval "MODULEDIR=$MODULEDIR" ;;
+    *\$* ) eval "MODULEDIR=\"${MODULEDIR}\"" ;;
     *) break ;;
   esac
 done
@@ -3901,7 +3672,7 @@ AC_SUBST([SITELISPDIR_USER_DEFINED])
 SITELISPDIR=$sitelispdir
 while true; do
   case "$SITELISPDIR" in
-    *\$* ) eval "SITELISPDIR=$SITELISPDIR" ;;
+    *\$* ) eval "SITELISPDIR=\"${SITELISPDIR}\"" ;;
     *) break ;;
   esac
 done
@@ -3912,7 +3683,7 @@ AC_SUBST(SITEMODULEDIR_USER_DEFINED)
 SITEMODULEDIR=$with_sitemoduledir
 while true; do
   case "$SITEMODULEDIR" in
-    *\$* ) eval "SITEMODULEDIR=$SITEMODULEDIR" ;;
+    *\$* ) eval "SITEMODULEDIR=\"${SITEMODULEDIR}\"" ;;
     *) break ;;
   esac
 done
@@ -3923,7 +3694,7 @@ AC_SUBST(ETCDIR_USER_DEFINED)
 ETCDIR=$with_etcdir
 while true; do
   case "$ETCDIR" in
-    *\$* ) eval "ETCDIR=$ETCDIR" ;;
+    *\$* ) eval "ETCDIR=\"${ETCDIR}\"" ;;
     *) break ;;
   esac
 done
@@ -3934,7 +3705,7 @@ AC_SUBST(ARCHLIBDIR_USER_DEFINED)
 ARCHLIBDIR=$with_archlibdir
 while true; do
   case "$ARCHLIBDIR" in
-    *\$* ) eval "ARCHLIBDIR=$ARCHLIBDIR" ;;
+    *\$* ) eval "ARCHLIBDIR=\"${ARCHLIBDIR}\"" ;;
     *) break ;;
   esac
 done
@@ -3945,7 +3716,7 @@ AC_SUBST(DOCDIR_USER_DEFINED)
 DOCDIR=$with_docdir
 while true; do
   case "$DOCDIR" in
-    *\$* ) eval "DOCDIR=$DOCDIR" ;;
+    *\$* ) eval "DOCDIR=\"${DOCDIR}\"" ;;
     *) break ;;
   esac
 done
@@ -4285,7 +4056,6 @@ AC_CONFIG_FILES([src/ui/Makefile])
 AC_CONFIG_FILES([src/ui/TTY/Makefile])
 AC_CONFIG_FILES([src/ui/lwlib/Makefile])
 AC_CONFIG_FILES([src/ui/X11/Makefile])
-AC_CONFIG_FILES([src/ui/Gtk/Makefile])
 AC_CONFIG_FILES([src/events/Makefile])
 AC_CONFIG_FILES([src/ent/Makefile])
 AC_CONFIG_FILES([src/media/Makefile])