emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master f6ef836: Use gnustep-config if available


From: Paul Eggert
Subject: [Emacs-diffs] master f6ef836: Use gnustep-config if available
Date: Sun, 25 Jan 2015 02:20:34 +0000

branch: master
commit f6ef836521dfd07a0a33d5f1f384427f0c4023ce
Author: Paul Eggert <address@hidden>
Commit: Paul Eggert <address@hidden>

    Use gnustep-config if available
    
    * configure.ac (--with-gnustep): Document this.
    (NS_GNUSTEP_CONFIG): New variable, set if gnustep-config works.
    If gnustep-config works, use 'gnustep-config --objc-flags' and
    'gnustep-config --gui-libs' to compute GNUstep configuration
    variables, instead of attempting to infer them individually.
    * etc/NEWS: Document this.
    * src/emacs.c [NS_IMPL_GNUSTEP]: Don't include <GNUstepBase/GSConfig.h>.
    It doesn't appear to be needed, and the inclusion breaks on
    Ubuntu 14.10 when 'configure' uses 'gnustep-config'.
    Fixes: bug#19507
---
 ChangeLog     |   10 ++++++++++
 configure.ac  |   35 ++++++++++++++++++++++++-----------
 etc/ChangeLog |    5 +++++
 etc/NEWS      |    3 +++
 src/ChangeLog |    7 +++++++
 src/emacs.c   |    5 -----
 6 files changed, 49 insertions(+), 16 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index b02203d..eecdad6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2015-01-25  Paul Eggert  <address@hidden>
+
+       Use gnustep-config if available
+       * configure.ac (--with-gnustep): Document this.
+       (NS_GNUSTEP_CONFIG): New variable, set if gnustep-config works.
+       If gnustep-config works, use 'gnustep-config --objc-flags' and
+       'gnustep-config --gui-libs' to compute GNUstep configuration
+       variables, instead of attempting to infer them individually.
+       Fixes: bug#19507
+
 2015-01-21  Ulrich Müller  <address@hidden>
 
        * configure.ac (gamegroup): New AC_SUBST.
diff --git a/configure.ac b/configure.ac
index 47b36fe..cd011b9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -414,7 +414,9 @@ esac
 
 AC_ARG_WITH([gnustep-conf],dnl
 [AS_HELP_STRING([--with-gnustep-conf=FILENAME],
-   [name of GNUstep.conf; default $GNUSTEP_CONFIG_FILE, or 
/etc/GNUstep/GNUstep.conf])])
+   [name of GNUstep configuration file to use on systems where the command
+    'gnustep-config' does not work; default $GNUSTEP_CONFIG_FILE, or
+    /etc/GNUstep/GNUstep.conf])])
 test "X${with_gnustep_conf}" != X && test "${with_gnustep_conf}" != yes && \
   GNUSTEP_CONFIG_FILE="${with_gnustep_conf}"
 test "X$GNUSTEP_CONFIG_FILE" = "X" && \
@@ -1752,6 +1754,7 @@ else
 fi
 
 HAVE_NS=no
+NS_GNUSTEP_CONFIG=no
 NS_IMPL_COCOA=no
 NS_IMPL_GNUSTEP=no
 tmp_CPPFLAGS="$CPPFLAGS"
@@ -1768,13 +1771,13 @@ if test "${with_ns}" != no; then
      ns_appresdir=${ns_appdir}/Contents/Resources
      ns_appsrc=Cocoa/Emacs.base
      ns_fontfile=macfont.o
+  elif flags=$( (gnustep-config --objc-flags) 2>/dev/null); then
+     NS_IMPL_GNUSTEP=yes
+     NS_GNUSTEP_CONFIG=yes
+     GNU_OBJC_CFLAGS=$flags
+     LIBS_GNUSTEP=$(gnustep-config --gui-libs) || exit
   elif test -f $GNUSTEP_CONFIG_FILE; then
      NS_IMPL_GNUSTEP=yes
-     ns_appdir=`pwd`/nextstep/Emacs.app
-     ns_appbindir=${ns_appdir}
-     ns_appresdir=${ns_appdir}/Resources
-     ns_appsrc=GNUstep/Emacs.base
-     ns_fontfile=nsfont.o
      dnl FIXME sourcing this several times in subshells seems inefficient.
      GNUSTEP_SYSTEM_HEADERS="$(. $GNUSTEP_CONFIG_FILE; echo 
$GNUSTEP_SYSTEM_HEADERS)"
      GNUSTEP_SYSTEM_LIBRARIES="$(. $GNUSTEP_CONFIG_FILE; echo 
$GNUSTEP_SYSTEM_LIBRARIES)"
@@ -1807,8 +1810,16 @@ fail;
        GNU_OBJC_CFLAGS="-fobjc-exceptions"
      fi
   fi
+  if test $NS_IMPL_GNUSTEP = yes; then
+     ns_appdir=`pwd`/nextstep/Emacs.app
+     ns_appbindir=${ns_appdir}
+     ns_appresdir=${ns_appdir}/Resources
+     ns_appsrc=GNUstep/Emacs.base
+     ns_fontfile=nsfont.o
+  fi
 
   dnl This is only used while we test the NS headers, it gets reset below.
+  CPPFLAGS="$CPPFLAGS $GNU_OBJC_CFLAGS"
   CFLAGS="$CFLAGS $GNU_OBJC_CFLAGS"
 
   AC_CHECK_HEADER([AppKit/AppKit.h], [HAVE_NS=yes],
@@ -3375,11 +3386,13 @@ if test "${HAVE_NS}" = "yes"; then
   fi
   if test "${NS_IMPL_GNUSTEP}" = "yes"; then
     AC_DEFINE(NS_IMPL_GNUSTEP, 1, [Define to 1 if you are using NS windowing 
under GNUstep.])
-    # See also .m.o rule in Makefile.in */
-    # FIXME: are all these flags really needed?  Document here why.  */
-    GNUSTEP_CFLAGS="-D_REENTRANT -fPIC -fno-strict-aliasing 
-I${GNUSTEP_SYSTEM_HEADERS} ${GNUSTEP_LOCAL_HEADERS}"
-    ## Extra CFLAGS applied to src/*.m files.
-    GNU_OBJC_CFLAGS="$GNU_OBJC_CFLAGS -fgnu-runtime -Wno-import 
-fconstant-string-class=NSConstantString -DGNUSTEP_BASE_LIBRARY=1 
-DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGSWARN -DGSDIAGNOSE"
+    if test $NS_GNUSTEP_CONFIG != yes; then
+      # See also .m.o rule in src/Makefile.in.  */
+      # FIXME: are all these flags really needed?  Document here why.  */
+      GNUSTEP_CFLAGS="-D_REENTRANT -fPIC -fno-strict-aliasing 
-I${GNUSTEP_SYSTEM_HEADERS} ${GNUSTEP_LOCAL_HEADERS}"
+      ## Extra CFLAGS applied to src/*.m files.
+      GNU_OBJC_CFLAGS="$GNU_OBJC_CFLAGS -fgnu-runtime -Wno-import 
-fconstant-string-class=NSConstantString -DGNUSTEP_BASE_LIBRARY=1 
-DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGSWARN -DGSDIAGNOSE"
+    fi
   fi
   OTHER_FILES=ns-app
 fi
diff --git a/etc/ChangeLog b/etc/ChangeLog
index 47f61f4..55b835c 100644
--- a/etc/ChangeLog
+++ b/etc/ChangeLog
@@ -1,3 +1,8 @@
+2015-01-25  Paul Eggert  <address@hidden>
+
+       Use gnustep-config if available
+       * NEWS: Document this.
+
 2015-01-22  Paul Eggert  <address@hidden>
 
        Don't downcase system diagnostics' first letters
diff --git a/etc/NEWS b/etc/NEWS
index db47033..d5baed3 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -36,6 +36,9 @@ should be able to work around the problem either by porting 
the Emacs
 undumping code to GCC under IRIX, or by configuring --with-wide-int,
 or by sticking with Emacs 24.4.
 
+** 'configure' now prefers gnustep-config when configuring GNUstep.
+If gnustep-config is not available, the old heuristics are used.
+
 ---
 ** The configure option `--with-pkg-config-prog' has been removed.
 Use './configure PKG_CONFIG=/full/name/of/pkg-config' if you need to.
diff --git a/src/ChangeLog b/src/ChangeLog
index a8b9c3b..96e3146 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,10 @@
+2015-01-25  Paul Eggert  <address@hidden>
+
+       Use gnustep-config if available
+       * emacs.c [NS_IMPL_GNUSTEP]: Don't include <GNUstepBase/GSConfig.h>.
+       It doesn't appear to be needed, and the inclusion breaks on
+       Ubuntu 14.10 when 'configure' uses 'gnustep-config'.
+
 2015-01-22  Eli Zaretskii  <address@hidden>
 
        * xdisp.c (init_iterator): Restore a comment lost in transition.
diff --git a/src/emacs.c b/src/emacs.c
index ca1a8b2..345fe3e 100644
--- a/src/emacs.c
+++ b/src/emacs.c
@@ -59,11 +59,6 @@ along with GNU Emacs.  If not, see 
<http://www.gnu.org/licenses/>.  */
 #include TERM_HEADER
 #endif /* HAVE_WINDOW_SYSTEM */
 
-#ifdef NS_IMPL_GNUSTEP
-/* At least under Debian, GSConfig is in a subdirectory.  --Stef  */
-#include <GNUstepBase/GSConfig.h>
-#endif
-
 #include "commands.h"
 #include "intervals.h"
 #include "character.h"



reply via email to

[Prev in Thread] Current Thread [Next in Thread]