all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* configure and freetype, etc. under non-X
@ 2009-02-13 12:53 Adrian Robert
  2009-02-25 19:37 ` Glenn Morris
  0 siblings, 1 reply; 2+ messages in thread
From: Adrian Robert @ 2009-02-13 12:53 UTC (permalink / raw)
  To: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 613 bytes --]

It appears that in configure.in the checks for freetype, xft, otf,  
and m17n_flt are done regardless of whether the user is compiling for  
an X11 environment.  Under NS at least these are all unneeded, and  
doing the checks can cause unnecessary linking against these  
libraries if they happen to be present on the system.  This can cause  
startup failure for this binary on other machines that lack those  
(actually unneeded) libraries.

What's the best way to avoid this?  The patch here disables these  
checks except under X11 and sets the variables to "no", but is there  
a different preferred way?



[-- Attachment #2: configFreetype.patch --]
[-- Type: application/octet-stream, Size: 6877 bytes --]

Index: configure.in
===================================================================
RCS file: /sources/emacs/emacs/configure.in,v
retrieving revision 1.585
diff -u -p -r1.585 configure.in
--- configure.in	4 Feb 2009 11:33:34 -0000	1.585
+++ configure.in	13 Feb 2009 12:51:32 -0000
@@ -1824,90 +1824,102 @@ either XPointer or XPointer*.])dnl
   CFLAGS=$late_CFLAGS
 fi
 
-### Start of font-backend section.
-PKG_CHECK_MODULES(FONTCONFIG, fontconfig >= 2.2.0, HAVE_FC=yes, HAVE_FC=no)
-test "${HAVE_FC}" = "no" && with_freetype=no
+### Start of font-backend (under any platform) section.
+# (nothing here yet -- this is a placeholder)
+### End of font-backend (under any platform) section.
+
+### Start of font-backend (under X11) section.
+if test "${HAVE_X11}" != "no"; then
+   PKG_CHECK_MODULES(FONTCONFIG, fontconfig >= 2.2.0, HAVE_FC=yes, HAVE_FC=no)
+   test "${HAVE_FC}" = "no" && with_freetype=no
 
 ## Use -lXft if available, unless `--with-freetype=no' nor `--with-xft=no'.
-HAVE_XFT=maybe
-if test "x${with_freetype}" = "xno" || test "x${with_x}" = "xno"; then
-  with_xft="no";
-fi
-if test "x${with_xft}" != "xno"; then
-
-  PKG_CHECK_MODULES(XFT, xft >= 0.13.0, , HAVE_XFT=no)
-  if test "$HAVE_XFT" != no; then
-    OLD_CPPFLAGS="$CPPFLAGS"
-    OLD_CFLAGS="$CFLAGS"
-    OLD_LIBS="$LIBS"
-    CPPFLAGS="$CPPFLAGS $XFT_CFLAGS"
-    CFLAGS="$CFLAGS $XFT_CFLAGS"
-    LIBS="$XFT_LIBS $LIBS"
-    AC_CHECK_HEADER(X11/Xft/Xft.h,
-      AC_CHECK_LIB(Xft, XftFontOpen, HAVE_XFT=yes, , $XFT_LIBS))
+   HAVE_XFT=maybe
+    if test "x${with_freetype}" = "xno" || test "x${with_x}" = "xno"; then
+      with_xft="no";
+    fi
+    if test "x${with_xft}" != "xno"; then
+
+      PKG_CHECK_MODULES(XFT, xft >= 0.13.0, , HAVE_XFT=no)
+      if test "$HAVE_XFT" != no; then
+	OLD_CPPFLAGS="$CPPFLAGS"
+	OLD_CFLAGS="$CFLAGS"
+	OLD_LIBS="$LIBS"
+	CPPFLAGS="$CPPFLAGS $XFT_CFLAGS"
+	CFLAGS="$CFLAGS $XFT_CFLAGS"
+	LIBS="$XFT_LIBS $LIBS"
+	AC_CHECK_HEADER(X11/Xft/Xft.h,
+	  AC_CHECK_LIB(Xft, XftFontOpen, HAVE_XFT=yes, , $XFT_LIBS))
+
+	if test "${HAVE_XFT}" = "yes"; then
+	  AC_DEFINE(HAVE_XFT, 1, [Define to 1 if you have the Xft library.])
+	    AC_SUBST(XFT_LIBS)
+	  C_SWITCH_X_SITE="$C_SWITCH_X_SITE $XFT_CFLAGS"
+	else
+	  CPPFLAGS="$OLD_CPPFLAGS"
+	  CFLAGS="$OLD_CFLAGS"
+	  LIBS="$OLD_LIBS"
+	fi                        # "${HAVE_XFT}" = "yes"
+      fi                          # "$HAVE_XFT" != no
+    fi                            # "x${with_xft}" != "xno"
+
+    dnl For the "Does Emacs use" message at the end.
+    if test "$HAVE_XFT" != "yes"; then
+       HAVE_XFT=no
+    fi
+
 
+    HAVE_FREETYPE=no
+    ### Use -lfreetype if available, unless `--with-freetype=no'.
     if test "${HAVE_XFT}" = "yes"; then
-      AC_DEFINE(HAVE_XFT, 1, [Define to 1 if you have the Xft library.])
-	AC_SUBST(XFT_LIBS)
-      C_SWITCH_X_SITE="$C_SWITCH_X_SITE $XFT_CFLAGS"
-    else
-      CPPFLAGS="$OLD_CPPFLAGS"
-      CFLAGS="$OLD_CFLAGS"
-      LIBS="$OLD_LIBS"
-    fi                        # "${HAVE_XFT}" = "yes"
-  fi                          # "$HAVE_XFT" != no
-fi                            # "x${with_xft}" != "xno"
-
-dnl For the "Does Emacs use" message at the end.
-if test "$HAVE_XFT" != "yes"; then
-   HAVE_XFT=no
-fi
+      dnl As we use Xft, we anyway use freetype.
+      dnl In this case, there's no need of additional CFLAGS and LIBS.
+      HAVE_FREETYPE=yes
+      FONTCONFIG_CFLAGS=
+      FONTCONFIG_LIBS=
+    elif test "x${with_freetype}" != "xno" && test "x${with_x}" != "xno"; then
 
+      PKG_CHECK_MODULES(FREETYPE, freetype2, HAVE_FREETYPE=yes, HAVE_FREETYPE=no)
+    fi
 
-HAVE_FREETYPE=no
-### Use -lfreetype if available, unless `--with-freetype=no'.
-if test "${HAVE_XFT}" = "yes"; then
-  dnl As we use Xft, we anyway use freetype.
-  dnl In this case, there's no need of additional CFLAGS and LIBS.
-  HAVE_FREETYPE=yes
-  FONTCONFIG_CFLAGS=
-  FONTCONFIG_LIBS=
-elif test "x${with_freetype}" != "xno" && test "x${with_x}" != "xno"; then
-
-  PKG_CHECK_MODULES(FREETYPE, freetype2, HAVE_FREETYPE=yes, HAVE_FREETYPE=no)
-fi
-
-HAVE_LIBOTF=no
-if test "${HAVE_FREETYPE}" = "yes"; then
-  AC_DEFINE(HAVE_FREETYPE, 1,
-            [Define to 1 if using the freetype and fontconfig libraries.])
-  if test "${with_libotf}" != "no"; then
-    PKG_CHECK_MODULES(LIBOTF, libotf, HAVE_LIBOTF=yes, 
-                      HAVE_LIBOTF=no)
-    if test "$HAVE_LIBOTF" = "yes"; then
-      AC_DEFINE(HAVE_LIBOTF, 1, [Define to 1 if using libotf.])
-      AC_CHECK_LIB(otf, OTF_get_variation_glyphs,
-      		   HAVE_OTF_GET_VARIATION_GLYPHS=yes,
-      		   HAVE_OTF_GET_VARIATION_GLYPHS=no)
-      if test "${HAVE_OTF_GET_VARIATION_GLYPHS}" = "yes"; then
-        AC_DEFINE(HAVE_OTF_GET_VARIATION_GLYPHS, 1,
-	          [Define to 1 if libotf has OTF_get_variation_glyphs.])
+    HAVE_LIBOTF=no
+    if test "${HAVE_FREETYPE}" = "yes"; then
+      AC_DEFINE(HAVE_FREETYPE, 1,
+		[Define to 1 if using the freetype and fontconfig libraries.])
+      if test "${with_libotf}" != "no"; then
+	PKG_CHECK_MODULES(LIBOTF, libotf, HAVE_LIBOTF=yes, 
+			  HAVE_LIBOTF=no)
+	if test "$HAVE_LIBOTF" = "yes"; then
+	  AC_DEFINE(HAVE_LIBOTF, 1, [Define to 1 if using libotf.])
+	  AC_CHECK_LIB(otf, OTF_get_variation_glyphs,
+		       HAVE_OTF_GET_VARIATION_GLYPHS=yes,
+		       HAVE_OTF_GET_VARIATION_GLYPHS=no)
+	  if test "${HAVE_OTF_GET_VARIATION_GLYPHS}" = "yes"; then
+	    AC_DEFINE(HAVE_OTF_GET_VARIATION_GLYPHS, 1,
+		      [Define to 1 if libotf has OTF_get_variation_glyphs.])
+	  fi
+	fi
       fi
+    dnl FIXME should there be an error if HAVE_FREETYPE != yes?
+    dnl Does the new font backend require it, or can it work without it?
     fi
-  fi
-dnl FIXME should there be an error if HAVE_FREETYPE != yes?
-dnl Does the new font backend require it, or can it work without it?
-fi
 
-HAVE_M17N_FLT=no
-if test "${HAVE_LIBOTF}" = yes; then
-  if test "${with_m17n_flt}" != "no"; then
-    PKG_CHECK_MODULES(M17N_FLT, m17n-flt, HAVE_M17N_FLT=yes, HAVE_M17N_FLT=no)
-    if test "$HAVE_M17N_FLT" = "yes"; then
-      AC_DEFINE(HAVE_M17N_FLT, 1, [Define to 1 if using libm17n-flt.])
+    HAVE_M17N_FLT=no
+    if test "${HAVE_LIBOTF}" = yes; then
+      if test "${with_m17n_flt}" != "no"; then
+	PKG_CHECK_MODULES(M17N_FLT, m17n-flt, HAVE_M17N_FLT=yes, HAVE_M17N_FLT=no)
+	if test "$HAVE_M17N_FLT" = "yes"; then
+	  AC_DEFINE(HAVE_M17N_FLT, 1, [Define to 1 if using libm17n-flt.])
+	fi
+      fi
     fi
-  fi
+else
+    HAVE_XFT=no
+    HAVE_FREETYPE=no
+    HAVE_LIBOTF=no
+    HAVE_M17N_FLT=no
 fi
+### End of font-backend (under X11) section.
 
 AC_SUBST(FREETYPE_CFLAGS)
 AC_SUBST(FREETYPE_LIBS)
@@ -1918,8 +1930,6 @@ AC_SUBST(LIBOTF_LIBS)
 AC_SUBST(M17N_FLT_CFLAGS)
 AC_SUBST(M17N_FLT_LIBS)
 
-### End of font-backend section.
-
 ### Use -lXpm if available, unless `--with-xpm=no'.
 HAVE_XPM=no
 if test "${HAVE_X11}" = "yes"; then

[-- Attachment #3: Type: text/plain, Size: 2 bytes --]




^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: configure and freetype, etc. under non-X
  2009-02-13 12:53 configure and freetype, etc. under non-X Adrian Robert
@ 2009-02-25 19:37 ` Glenn Morris
  0 siblings, 0 replies; 2+ messages in thread
From: Glenn Morris @ 2009-02-25 19:37 UTC (permalink / raw)
  To: Adrian Robert; +Cc: emacs-devel

Adrian Robert wrote:

> It appears that in configure.in the checks for freetype, xft, otf,  
> and m17n_flt are done regardless of whether the user is compiling for  
> an X11 environment.
[...]
> What's the best way to avoid this?  The patch here disables these  
> checks except under X11 and sets the variables to "no", but is there  
> a different preferred way?

FWIW, that looks fine to me. Most places seem to use

test "${HAVE_X11}" = "yes"

rather than

test ${HAVE_X11}" != "no"

as you have done; but since it's only ever yes or no, it makes no difference.




^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2009-02-25 19:37 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-02-13 12:53 configure and freetype, etc. under non-X Adrian Robert
2009-02-25 19:37 ` Glenn Morris

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.