Commit 15f8a55f authored by Owen Taylor's avatar Owen Taylor Committed by Owen Taylor

Add a --enable-explicit-deps option to control whether dependency

Fri Mar  1 00:46:49 2002  Owen Taylor  <otaylor@redhat.com>

        * configure.in: Add a --enable-explicit-deps option to control
        whether dependency libraries are written into .la files and .pc
        files.  Default is auto: if static libraries are off and shlib
        dependencies are found, don't write deps.

        * gdk/Makefile.am gtk/Makefile.am sanitize-la.sh: Shell script
        used to strip dependencies out of .la files.

        * Makefile.am: Add a slightly modified distcheck rule that passes
        --enable-gtk-doc to the configure inside.
        (So that 'make dist' succeeds inside.)

        * configure.in: If pango was compiled with
        --disable-explicit-deps, then repeat the checks for X and
        freetype ourselves so we don't depend on linking to libraries
        that pango doesn't reveal in the link line. Add some more paranoia
        for whether what we detect ourselves matches what Pango backends
        we found.
parent 93d74e25
Fri Mar 1 00:46:49 2002 Owen Taylor <otaylor@redhat.com>
* configure.in: Add a --enable-explicit-deps option to control
whether dependency libraries are written into .la files and .pc
files. Default is auto: if static libraries are off and shlib
dependencies are found, don't write deps.
* gdk/Makefile.am gtk/Makefile.am sanitize-la.sh: Shell script
used to strip dependencies out of .la files.
* Makefile.am: Add a slightly modified distcheck rule that passes
--enable-gtk-doc to the configure inside.
(So that 'make dist' succeeds inside.)
* configure.in: If pango was compiled with
--disable-explicit-deps, then repeat the checks for X and
freetype ourselves so we don't depend on linking to libraries
that pango doesn't reveal in the link line. Add some more paranoia
for whether what we detect ourselves matches what Pango backends
we found.
2002-03-03 Tor Lillqvist <tml@iki.fi>
* configure.in: Output gdk-pixbuf/gdk_pixbuf.rc.
......
Fri Mar 1 00:46:49 2002 Owen Taylor <otaylor@redhat.com>
* configure.in: Add a --enable-explicit-deps option to control
whether dependency libraries are written into .la files and .pc
files. Default is auto: if static libraries are off and shlib
dependencies are found, don't write deps.
* gdk/Makefile.am gtk/Makefile.am sanitize-la.sh: Shell script
used to strip dependencies out of .la files.
* Makefile.am: Add a slightly modified distcheck rule that passes
--enable-gtk-doc to the configure inside.
(So that 'make dist' succeeds inside.)
* configure.in: If pango was compiled with
--disable-explicit-deps, then repeat the checks for X and
freetype ourselves so we don't depend on linking to libraries
that pango doesn't reveal in the link line. Add some more paranoia
for whether what we detect ourselves matches what Pango backends
we found.
2002-03-03 Tor Lillqvist <tml@iki.fi>
* configure.in: Output gdk-pixbuf/gdk_pixbuf.rc.
......
Fri Mar 1 00:46:49 2002 Owen Taylor <otaylor@redhat.com>
* configure.in: Add a --enable-explicit-deps option to control
whether dependency libraries are written into .la files and .pc
files. Default is auto: if static libraries are off and shlib
dependencies are found, don't write deps.
* gdk/Makefile.am gtk/Makefile.am sanitize-la.sh: Shell script
used to strip dependencies out of .la files.
* Makefile.am: Add a slightly modified distcheck rule that passes
--enable-gtk-doc to the configure inside.
(So that 'make dist' succeeds inside.)
* configure.in: If pango was compiled with
--disable-explicit-deps, then repeat the checks for X and
freetype ourselves so we don't depend on linking to libraries
that pango doesn't reveal in the link line. Add some more paranoia
for whether what we detect ourselves matches what Pango backends
we found.
2002-03-03 Tor Lillqvist <tml@iki.fi>
* configure.in: Output gdk-pixbuf/gdk_pixbuf.rc.
......
Fri Mar 1 00:46:49 2002 Owen Taylor <otaylor@redhat.com>
* configure.in: Add a --enable-explicit-deps option to control
whether dependency libraries are written into .la files and .pc
files. Default is auto: if static libraries are off and shlib
dependencies are found, don't write deps.
* gdk/Makefile.am gtk/Makefile.am sanitize-la.sh: Shell script
used to strip dependencies out of .la files.
* Makefile.am: Add a slightly modified distcheck rule that passes
--enable-gtk-doc to the configure inside.
(So that 'make dist' succeeds inside.)
* configure.in: If pango was compiled with
--disable-explicit-deps, then repeat the checks for X and
freetype ourselves so we don't depend on linking to libraries
that pango doesn't reveal in the link line. Add some more paranoia
for whether what we detect ourselves matches what Pango backends
we found.
2002-03-03 Tor Lillqvist <tml@iki.fi>
* configure.in: Output gdk-pixbuf/gdk_pixbuf.rc.
......
Fri Mar 1 00:46:49 2002 Owen Taylor <otaylor@redhat.com>
* configure.in: Add a --enable-explicit-deps option to control
whether dependency libraries are written into .la files and .pc
files. Default is auto: if static libraries are off and shlib
dependencies are found, don't write deps.
* gdk/Makefile.am gtk/Makefile.am sanitize-la.sh: Shell script
used to strip dependencies out of .la files.
* Makefile.am: Add a slightly modified distcheck rule that passes
--enable-gtk-doc to the configure inside.
(So that 'make dist' succeeds inside.)
* configure.in: If pango was compiled with
--disable-explicit-deps, then repeat the checks for X and
freetype ourselves so we don't depend on linking to libraries
that pango doesn't reveal in the link line. Add some more paranoia
for whether what we detect ourselves matches what Pango backends
we found.
2002-03-03 Tor Lillqvist <tml@iki.fi>
* configure.in: Output gdk-pixbuf/gdk_pixbuf.rc.
......
Fri Mar 1 00:46:49 2002 Owen Taylor <otaylor@redhat.com>
* configure.in: Add a --enable-explicit-deps option to control
whether dependency libraries are written into .la files and .pc
files. Default is auto: if static libraries are off and shlib
dependencies are found, don't write deps.
* gdk/Makefile.am gtk/Makefile.am sanitize-la.sh: Shell script
used to strip dependencies out of .la files.
* Makefile.am: Add a slightly modified distcheck rule that passes
--enable-gtk-doc to the configure inside.
(So that 'make dist' succeeds inside.)
* configure.in: If pango was compiled with
--disable-explicit-deps, then repeat the checks for X and
freetype ourselves so we don't depend on linking to libraries
that pango doesn't reveal in the link line. Add some more paranoia
for whether what we detect ourselves matches what Pango backends
we found.
2002-03-03 Tor Lillqvist <tml@iki.fi>
* configure.in: Output gdk-pixbuf/gdk_pixbuf.rc.
......
Fri Mar 1 00:46:49 2002 Owen Taylor <otaylor@redhat.com>
* configure.in: Add a --enable-explicit-deps option to control
whether dependency libraries are written into .la files and .pc
files. Default is auto: if static libraries are off and shlib
dependencies are found, don't write deps.
* gdk/Makefile.am gtk/Makefile.am sanitize-la.sh: Shell script
used to strip dependencies out of .la files.
* Makefile.am: Add a slightly modified distcheck rule that passes
--enable-gtk-doc to the configure inside.
(So that 'make dist' succeeds inside.)
* configure.in: If pango was compiled with
--disable-explicit-deps, then repeat the checks for X and
freetype ourselves so we don't depend on linking to libraries
that pango doesn't reveal in the link line. Add some more paranoia
for whether what we detect ourselves matches what Pango backends
we found.
2002-03-03 Tor Lillqvist <tml@iki.fi>
* configure.in: Output gdk-pixbuf/gdk_pixbuf.rc.
......
......@@ -275,6 +275,34 @@ else
fi
AC_SUBST(LIBTOOL_EXPORT_OPTIONS)
dnl ******************************************************
dnl * See whether to include shared library dependencies *
dnl ******************************************************
AC_ARG_ENABLE(explicit-deps,
[ --enable-explicit-deps=[yes/no/auto] use explicit dependencies in .pc files [default=auto]],
enable_explicit_deps="$enableval",
enable_explicit_deps=auto)
AC_MSG_CHECKING([Whether to write dependencies into .pc files])
case $enable_explicit_deps in
auto)
deplib_check_method=`(./libtool --config; echo eval echo \\$deplib_check_method) | sh`
if test "X$deplib_check_method" == Xnone || test "x$enable_static" = xyes ; then
enable_explicit_deps=yes
else
enable_explicit_deps=no
fi
;;
yes|no)
;;
*) AC_MSG_ERROR([Value given to --enable-explicit-deps must be one of yes, no or auto])
;;
esac
AC_MSG_RESULT($enable_explicit_deps)
AM_CONDITIONAL(DISABLE_EXPLICIT_DEPS, test $enable_explicit_deps = no)
# define a MAINT-like variable REBUILD which is set if Perl
# and awk are found, so autogenerated sources can be rebuilt
......@@ -823,14 +851,59 @@ AC_SUBST(GDK_PIXBUF_DEP_CFLAGS)
GDK_EXTRA_LIBS=$GDK_WLIBS
GDK_EXTRA_CFLAGS=
FREETYPE_LIBS=
FREETYPE_CFLAGS=
if test "x$gdktarget" = "xlinux-fb" || test "x$gdktarget" = "x11" ; then
#
# Checks for FreeType
#
have_freetype=false
AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no)
if test "x$FREETYPE_CONFIG" != "xno" ; then
FREETYPE_CFLAGS=`$FREETYPE_CONFIG --cflags`
FREETYPE_LIBS=`$FREETYPE_CONFIG --libs`
AC_CHECK_LIB(freetype, FT_New_Face, have_freetype=true
,:,$FREETYPE_LIBS)
if $have_freetype ; then
gtk_save_cppflags="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $FREETYPE_CFLAGS"
AC_MSG_CHECKING([For sufficiently new FreeType (at least 2.0.1)])
AC_TRY_COMPILE([
#include <freetype/freetype.h>
#include FT_ERRORS_H
],
[(void)1;],:,have_freetype=yes)
if test x$have_freetype = xyes ; then
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
CPPFLAGS="$gtk_save_cppflags"
fi
fi
AC_SUBST(FREETYPE_LIBS)
AC_SUBST(FREETYPE_CFLAGS)
fi
if test "x$gdktarget" = "xx11"; then
# We start off with the libraries from Pango
if $PKG_CONFIG --exists pangoxft ; then : ; else
AC_MSG_ERROR([pangox Pango backend is required for x11 target])
fi
## be sure we also have Pango built with xft support
if $PKG_CONFIG --exists pangoxft ; then
PANGO_PACKAGES="pangox pangoxft"
have_xft=true
AC_DEFINE(HAVE_XFT)
if x$have_freetype != xyes ; then
AC_MSG_ERROR([pangoxft Pango backend found but did not find freetype libraries])
fi
else
PANGO_PACKAGES="pangox"
have_xft=false
......@@ -838,10 +911,57 @@ if test "x$gdktarget" = "xx11"; then
AM_CONDITIONAL(HAVE_XFT, $have_xft)
#
# If Pango included the shared library dependencies from X11 in
# the pkg-config output, then we use that (to avoid duplicates).
# but if they were omitted to avoid binary compatibility problems
# then we need to repeat the checks.
#
x_libs="`$PKG_CONFIG --libs $PANGO_PACKAGES`"
case x_libs in
*-lX11*) pango_omitted_x_deps=no ;;
*) pango_omitted_x_deps=yes ;;
esac
x_cflags="`$PKG_CONFIG --cflags $PANGO_PACKAGES`"
x_extra_libs=
if test $pango_omitted_x_deps = yes ; then
AC_PATH_XTRA
if test x$no_x = xyes ; then
AC_MSG_ERROR([X development libraries not found])
fi
x_libs="$X_LIBS -lX11 $X_EXTRA_LIBS"
#
# Checks for Xft/XRender
#
XFT_LIBS=""
XFT_CFLAGS=""
if test $have_xft = true ; then
gtk_save_cppflags="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $x_cflags"
have_xft=false
AC_CHECK_LIB(Xrender, XRenderFindFormat,
[AC_CHECK_LIB(Xft, XftFontOpen,
[AC_CHECK_HEADER(X11/Xft/XftFreetype.h,
have_xft=true,:)],
:,-lXrender -lXext $x_libs $FREETYPE_LIBS)]
,:,-lXext $x_libs)
CPPFLAGS="$gtk_save_cppflags"
if $have_xft ; then
x_libs="-lXft -lXrender -lXext $X_LIBS $FREETYPE_LIBS $X_EXTRA_LIBS"
else
AC_MSG_ERROR([pangoxft Pango backend found, but Xft not found])
fi
fi
fi
## Strip the .la files
x_libs_for_checks=""
......@@ -987,7 +1107,11 @@ if test "x$gdktarget" = "xx11"; then
fi
GDK_EXTRA_CFLAGS=
GDK_EXTRA_LIBS="$x_extra_libs"
if test $pango_omitted_x_deps = yes ; then
GDK_EXTRA_LIBS="$x_extra_libs $x_libs $GDK_EXTRA_LIBS"
else
GDK_EXTRA_LIBS="$x_extra_libs $GDK_EXTRA_LIBS"
fi
AM_CONDITIONAL(USE_X11, true)
else
......@@ -1024,13 +1148,16 @@ AC_SUBST(GDK_PIXBUF_XLIB_DEP_LIBS)
AC_SUBST(GDK_PIXBUF_XLIB_DEP_CFLAGS)
if test "x$gdktarget" = "xlinux-fb"; then
AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no)
if test x$FREETYPE_CONFIG = xno ; then
AC_MSG_ERROR([*** freetype-config not found])
if test x$have_freetype != xyes ; then
AC_MSG_ERROR([Using linux-fb backend but freetype was not found])
fi
FREETYPE_CFLAGS="`$FREETYPE_CONFIG --cflags`"
FREETYPE_LIBS="`$FREETYPE_CONFIG --libs`"
ft2_libs="`$PKG_CONFIG --libs pangoft2`"
case ft2_libs in
*-lfreetype*) pango_omitted_ft2_deps=no ;;
*) pango_omitted_ft2_deps=yes ;;
esac
CFLAGS="$CFLAGS $FREETYPE_CFLAGS"
if test x$enable_shadowfb = xyes ; then
......@@ -1044,8 +1171,10 @@ if test "x$gdktarget" = "xlinux-fb"; then
AM_CONDITIONAL(ENABLE_FB_MANAGER, false)
fi
GDK_EXTRA_CFLAGS="$FREETYPE_CFLAGS"
GDK_EXTRA_LIBS="$FREETYPE_LIBS $GDK_EXTRA_LIBS"
GDK_EXTRA_CFLAGS=""
if test $pango_omitted_ft2_deps = yes ; then
GDK_EXTRA_LIBS="$FREETYPE_LIBS $GDK_EXTRA_LIBS"
fi
AM_CONDITIONAL(USE_LINUX_FB, true)
else
......@@ -1105,6 +1234,14 @@ GDK_PACKAGES=$PANGO_PACKAGES
GDK_DEP_LIBS="$GDK_EXTRA_LIBS `$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS"
GDK_DEP_CFLAGS="`$PKG_CONFIG --cflags $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS $GDK_EXTRA_CFLAGS"
#
# If we aren't writing explicit dependencies, then don't put the extra libraries we need
# into the pkg-config files
#
if test $enable_explicit_deps != yes ; then
GDK_EXTRA_LIBS=
fi
AC_SUBST(GDK_PACKAGES)
AC_SUBST(GDK_EXTRA_LIBS)
AC_SUBST(GDK_EXTRA_CFLAGS)
......
......@@ -172,7 +172,16 @@ EXTRA_HEADERS =
#
configexecincludedir = $(libdir)/gtk-2.0/include
#configexecinclude_DATA = gdkconfig.h
install-exec-local: gdkconfig.h
if DISABLE_EXPLICIT_DEPS
sanitize-la:
$(SHELL) $(top_srcdir)/sanitize-la.sh $(DESTDIR)$(libdir)/$(gdktargetlib)
else
sanitize-la:
@true
endif
install-exec-local: gdkconfig.h sanitize-la
$(mkinstalldirs) $(DESTDIR)$(configexecincludedir)
file=$(DESTDIR)$(configexecincludedir)/gdkconfig.h; \
if test -r $$file && cmp -s gdkconfig.h $$file; then :; \
......
......@@ -569,6 +569,11 @@ libgtk_target_ldflags = $(gtk_win32_symbols) -lwsock32
endif
EXTRA_LTLIBRARIES = libgtk-x11-1.3.la libgtk-linux-fb-1.3.la libgtk-win32-1.3.la
if DISABLE_EXPLICIT_DEPS
install-exec-local:
$(SHELL) $(top_srcdir)/sanitize-la.sh $(DESTDIR)$(libdir)/$(gtktargetlib)
endif
# Install a RC file for the default GTK+ theme, and key themes
install-data-local: install-ms-lib install-libtool-import-lib
$(mkinstalldirs) $(DESTDIR)$(datadir)/themes/Default/gtk-2.0
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment