* 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 public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).