From de73df28b1d7c62133b2799dd6663f7b44444c64 Mon Sep 17 00:00:00 2001 From: Johan Dahlin Date: Mon, 10 Jan 2005 16:57:42 +0000 Subject: Make the build of atk, pango and gtk conditional. Fixes bug #74144. * .cvsignore: * Makefile.am: * configure.in: * gtk/Makefile.am: * pygtk-2.0.pc.in: * setup.py: * tests/common.py: * tests/testhelpermodule.c: Make the build of atk, pango and gtk conditional. Fixes bug #74144. --- .cvsignore | 1 + ChangeLog | 12 ++++++++++++ Makefile.am | 23 ++++++++++++++++++----- configure.in | 39 ++++++++++++++++++++++++++++++++------- gtk/Makefile.am | 18 ++++++++++-------- pygtk-2.0.pc.in | 2 +- setup.py | 2 ++ tests/common.py | 8 +++++++- tests/testhelpermodule.c | 1 - 9 files changed, 83 insertions(+), 23 deletions(-) diff --git a/.cvsignore b/.cvsignore index 63664037..672841a9 100644 --- a/.cvsignore +++ b/.cvsignore @@ -29,6 +29,7 @@ stamp-h* *.la *.tar.gz pango.c +pygobject-2.0.pc pygtk-2.0.pc pygtk.spec atk.c diff --git a/ChangeLog b/ChangeLog index f878b8e7..98608305 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2005-01-10 Johan Dahlin + + * .cvsignore: + * Makefile.am: + * configure.in: + * gtk/Makefile.am: + * pygtk-2.0.pc.in: + * setup.py: + * tests/common.py: + * tests/testhelpermodule.c: Make the build of + atk, pango and gtk conditional. Fixes bug #74144. + 2005-01-10 Johan Dahlin * tests/Makefile.am: diff --git a/Makefile.am b/Makefile.am index 368ffd2c..d0c18abb 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,7 +1,11 @@ # require automake-1.7 AUTOMAKE_OPTIONS = 1.7 -SUBDIRS = codegen gobject . gtk docs examples tests +if BUILD_GTK + GTK_SUBDIR = gtk +endif + +SUBDIRS = codegen gobject . $(GTK_SUBDIR) docs examples tests PLATFORM_VERSION = 2.0 @@ -13,7 +17,9 @@ defsdir = $(pkgdatadir)/$(PLATFORM_VERSION)/defs defs_DATA = pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = pygtk-$(PLATFORM_VERSION).pc +pkgconfig_DATA = \ + pygobject-$(PLATFORM_VERSION).pc \ + pygtk-$(PLATFORM_VERSION).pc INCLUDES = \ $(PYTHON_INCLUDES) \ @@ -30,6 +36,7 @@ COMMONDEFS = \ pkgpythondir = $(pyexecdir)/gtk-2.0 pkgpyexecdir = $(pyexecdir)/gtk-2.0 +pkgpyexec_LTLIBRARIES = # this file is common to all pygtk versions. pyexec_PYTHON = pygtk.py @@ -47,7 +54,15 @@ uninstall-local: pkgpython_PYTHON = dsextras.py -pkgpyexec_LTLIBRARIES = atk.la pango.la +if BUILD_ATK +pkgpyexec_LTLIBRARIES += atk.la +defs_DATA += atk.defs atk-types.defs +endif + +if BUILD_PANGO +pkgpyexec_LTLIBRARIES += pango.la +defs_DATA += pango.defs pango-types.defs +endif common_ldflags = -module -avoid-version if PLATFORM_WIN32 @@ -62,7 +77,6 @@ nodist_pango_la_SOURCES = pango.c pango.c: $(COMMONDEFS) pango.override CLEANFILES += pango.c EXTRA_DIST += pango.override -defs_DATA += pango.defs pango-types.defs # atk module atk_la_LDFLAGS = $(common_ldflags) -export-symbols-regex initatk @@ -72,7 +86,6 @@ nodist_atk_la_SOURCES = atk.c atk.c: $(COMMONDEFS) atk.override CLEANFILES += atk.c EXTRA_DIST += atk.override -defs_DATA += atk.defs atk-types.defs .defs.c: (cd $(srcdir)\ diff --git a/configure.in b/configure.in index 40edf6e7..683ea0c3 100644 --- a/configure.in +++ b/configure.in @@ -16,6 +16,7 @@ m4_define(libglade_required_version, 2.4.0) AC_INIT(pygtk, pygtk_version, [http://bugzilla.gnome.org/enter_bug.cgi?product=pygtk]) +AC_SUBST(ACLOCAL_AMFLAGS, "-I m4 -I .") AC_DEFINE(PYGTK_MAJOR_VERSION, pygtk_major_version, [PyGtk major version]) AC_SUBST(PYGTK_MAJOR_VERSION, pygtk_major_version) @@ -96,23 +97,29 @@ if test -n "$export_dynamic"; then fi dnl atk -PKG_CHECK_MODULES(ATK, atk >= atk_required_version,,[AC_MSG_ERROR(maybe you want the pygtk-2-4 branch?)]) +PKG_CHECK_MODULES(ATK, atk >= atk_required_version, + build_atk=true, build_atk=false) AC_SUBST(ATK_CFLAGS) AC_SUBST(ATK_LIBS) +AM_CONDITIONAL(BUILD_ATK, $build_atk) if test -n "$export_dynamic"; then ATK_LIBS=`echo $ATK_LIBS | sed -e "s/$export_dynamic//"` fi dnl pango -PKG_CHECK_MODULES(PANGO, pango >= pango_required_version,,[AC_MSG_ERROR(maybe you want the pygtk-2-4 branch?)]) +PKG_CHECK_MODULES(PANGO, pango >= pango_required_version, + build_pango=true, build_pango=false) AC_SUBST(PANGO_CFLAGS) AC_SUBST(PANGO_LIBS) +AM_CONDITIONAL(BUILD_PANGO, $build_pango) if test -n "$export_dynamic"; then PANGO_LIBS=`echo $PANGO_LIBS | sed -e "s/$export_dynamic//"` fi dnl gtk+ -AM_PATH_GTK_2_0(gtk_required_version,,[AC_MSG_ERROR(maybe you want the pygtk-2-4 branch?)],$extra_mods) +AM_PATH_GTK_2_0(gtk_required_version, + build_gtk=true, build_gtk=false) +AM_CONDITIONAL(BUILD_GTK, $build_gtk) if test -n "$export_dynamic"; then GTK_LIBS=`echo $GTK_LIBS | sed -e "s/$export_dynamic//"` fi @@ -130,10 +137,8 @@ else fi dnl libglade -build_libglade=false PKG_CHECK_MODULES(LIBGLADE, libglade-2.0 >= libglade_required_version, - build_libglade=true, - build_libglade=false) + build_libglade=true, build_libglade=false) AC_SUBST(LIBGLADE_CFLAGS) AC_SUBST(LIBGLADE_LIBS) AM_CONDITIONAL(BUILD_LIBGLADE, $build_libglade) @@ -141,7 +146,6 @@ if test -n "$export_dynamic"; then LIBGLADE_LIBS=`echo $LIBGLADE_LIBS | sed -e "s/$export_dynamic//"` fi - AC_ARG_ENABLE(numpy, AC_HELP_STRING([--disable-numpy], [Disable numeric python features]),, enable_numpy=yes) @@ -163,6 +167,7 @@ JH_ADD_CFLAG([-fno-strict-aliasing]) AC_CONFIG_FILES( Makefile + pygobject-2.0.pc pygtk-2.0.pc codegen/Makefile gobject/Makefile @@ -176,3 +181,23 @@ AC_CONFIG_FILES( AC_OUTPUT +echo +echo "The following modules will be built:" +echo +true && echo gobject +$build_atk && echo atk +$build_pango && echo pango +$build_gtk && echo gtk +$build_libglade && echo gtk.glade +echo + +if test ! $build_atk || ! $build_pango \ + ! $build_gtk !! ! $build_gtk; then + echo "The following modules will NOT be built:" + echo + $build_atk || echo atk + $build_pango || echo pango + $build_gtk || echo gtk + $build_libglade || echo gtk.glade +fi + diff --git a/gtk/Makefile.am b/gtk/Makefile.am index 6b07c6f3..f72e3cdd 100644 --- a/gtk/Makefile.am +++ b/gtk/Makefile.am @@ -28,7 +28,16 @@ common_ldflags += -no-undefined endif # gtk module +if BUILD_GTK pygtkexec_LTLIBRARIES = _gtk.la +defs_DATA += \ + gtk.defs \ + gtk-types.defs \ + gtk-extrafuncs.defs \ + gdk.defs \ + gdk-types.defs +endif + _gtk_la_CFLAGS = $(GTK_CFLAGS) _gtk_la_LDFLAGS = $(common_ldflags) -export-symbols-regex init_gtk _gtk_la_LIBADD = $(GTK_LIBS) @@ -70,18 +79,12 @@ gdk.c: $(srcdir)/gdk.defs $(COMMONDEFS) $(srcdir)/gdk.override gtk.c: $(srcdir)/gtk.defs $(COMMONDEFS) $(gtk_overrides) $(srcdir)/gtk-extrafuncs.defs CLEANFILES += gtk.c gdk.c -defs_DATA += \ - gtk.defs \ - gtk-types.defs \ - gtk-extrafuncs.defs \ - gdk.defs \ - gdk-types.defs - EXTRA_DIST += gdk.override $(gtk_overrides) # libglade module if BUILD_LIBGLADE pygtkexec_LTLIBRARIES += glade.la +defs_DATA += libglade.defs endif glade_la_CFLAGS = $(LIBGLADE_CFLAGS) glade_la_LDFLAGS = $(common_ldflags) -export-symbols-regex initglade @@ -90,7 +93,6 @@ glade_la_SOURCES = libglademodule.c nodist_glade_la_SOURCES = libglade.c libglade.c: $(COMMONDEFS) libglade.override CLEANFILES += libglade.c -defs_DATA += libglade.defs EXTRA_DIST += libglade.override .defs.c: diff --git a/pygtk-2.0.pc.in b/pygtk-2.0.pc.in index 799d0933..1c517efd 100644 --- a/pygtk-2.0.pc.in +++ b/pygtk-2.0.pc.in @@ -15,6 +15,6 @@ codegendir=${datadir}/pygtk/2.0/codegen Name: PyGTK Description: Python bindings for GTK+ and related libraries -Requires: gobject-2.0 +Requires: pygobject-2.0 Version: @VERSION@ Cflags: -I${pygtkincludedir} @THREADING_CFLAGS@ diff --git a/setup.py b/setup.py index 701a2ab6..06ba1613 100755 --- a/setup.py +++ b/setup.py @@ -77,6 +77,8 @@ class PyGtkInstallLib(InstallLib): InstallLib.run(self) + self.install_template('pygobject-2.0.pc.in', + os.path.join(self.libdir, 'pkgconfig')) def install_pth(self): """Write the pygtk.pth file""" file = os.path.join(self.install_dir, 'pygtk.pth') diff --git a/tests/common.py b/tests/common.py index 9429579a..64fc6f42 100644 --- a/tests/common.py +++ b/tests/common.py @@ -41,6 +41,7 @@ def importModules(buildDir, srcDir): def importModule(module, directory, name=None): global isDistCheck + origName = module if '.' in module: fromlist = '.'.join(module.split('.')[:-1]) else: @@ -49,7 +50,12 @@ def importModule(module, directory, name=None): if not name: name = module + '.la' - obj = __import__(module, {}, {}, fromlist) + try: + obj = __import__(module, {}, {}, fromlist) + except ImportError: + print 'WARNING: %s could not be imported' % origName + return + if hasattr(obj, '__file__'): location = obj.__file__ else: diff --git a/tests/testhelpermodule.c b/tests/testhelpermodule.c index 791fe543..cb9a9913 100644 --- a/tests/testhelpermodule.c +++ b/tests/testhelpermodule.c @@ -1,6 +1,5 @@ #include "pygobject.h" #include -#include #include "test-thread.h" #include "test-unknown.h" -- cgit v1.2.1