Re: Patch to specify out-of-tree gdk-pixbuf-csource for cross compiling



Owen Taylor <otaylor redhat com> writes:

> Michael Natterer <mitch gimp org> writes:
> 
> > Owen Taylor <otaylor redhat com> writes:
> > 
> > > Michael Natterer <mitch gimp org> writes:
> > > 
> > > > Hi,
> > > > 
> > > > The attached patch adds the configure option --with-gdk-pixbuf-csource
> > > > so gtk/stock-icons/Makefile.am does not try to execute an exacutable
> > > > which was built for the target platform in the case of cross
> > > > compilation.
> > > > 
> > > > If you feel this is the right way to solve the problem, I'll
> > > > create a similar patch for GLib's glib-genmarshal.
> > > 
> > > Can we figure out some way of doing it so that the same configure
> > > option could be passed to GLib, Pango, and GTK+ ... or maybe it could
> > > just figure it out from the values of $build and $host?
> > > 
> > > (That is, if $build != $host, look for gdk-pixbuf-csource,
> > > glib-genmarshal in the path.)
> > 
> > Good point, as this is always needed for cross-compilation we
> > can well do it automatically.
> > 
> > What about
> >
> > --with-gdk-pixbuf-csource=[PATH/auto] If the built
> > gdk-pixbuf-csource cannot be used to generate stock pixbufs, try to
> > find one (auto), or use the binary specified by PATH [default=auto]
> > 
> > so cross-compiling people can still specify the exact location if
> > they have, in addition to cross-fu, some weird setup they may need.
> 
> Well, if we went to using the path when cross compiling, we'd 
> presumably use AC_CHECK_PROG() so someone could just set
> GDK_PIXBUF_CSOURCE before running configure .. and that would be
> more compatible with the way other programs can be overridden.

Oh, I was not aware of that AC_CHECK_PROG() feature.

Would you have a look at the attached patch (I used AC_CHECK_PATH(),
because it feels somehow safer :-)

ciao,
--mitch

Index: configure.in
===================================================================
RCS file: /cvs/gnome/gtk+/configure.in,v
retrieving revision 1.271
diff -u -p -r1.271 configure.in
--- configure.in	2 Apr 2002 12:10:31 -0000	1.271
+++ configure.in	7 May 2002 13:26:12 -0000
@@ -850,6 +850,17 @@ fi
 
 AM_CONDITIONAL(USE_MMX, test x$use_mmx_asm = xyes)
 
+dnl Look for a host system's gdk-pixbuf-csource if we are cross-compiling
+
+if test $build != $host; then
+  AC_PATH_PROG(GDK_PIXBUF_CSOURCE, gdk-pixbuf-csource)
+  if test x$GDK_PIXBUF_CSOURCE = x; then
+    AC_MSG_ERROR(Could not find a gdk-pixbuf-csource in your PATH)
+  fi
+else
+  GDK_PIXBUF_CSOURCE='GDK_PIXBUF_MODULEDIR=$(top_builddir)/gdk-pixbuf $(top_builddir)/gdk-pixbuf/gdk-pixbuf-csource'
+  AC_SUBST(GDK_PIXBUF_CSOURCE)
+fi
 
 GDK_PIXBUF_PACKAGES="gmodule-2.0 gobject-2.0"
 GDK_PIXBUF_EXTRA_LIBS="$STATIC_LIB_DEPS $MATH_LIB"
Index: gtk/stock-icons/Makefile.am
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/stock-icons/Makefile.am,v
retrieving revision 1.20
diff -u -p -r1.20 Makefile.am
--- gtk/stock-icons/Makefile.am	29 Mar 2002 06:23:35 -0000	1.20
+++ gtk/stock-icons/Makefile.am	7 May 2002 13:26:12 -0000
@@ -257,20 +257,18 @@ VARIABLES6 = @STRIP_BEGIN@ 									\
 noinst_DATA = gtkstockpixbufs.h
 CLEANFILES = $(noinst_DATA)
 
-pixbuf_dir = $(top_builddir)/gdk-pixbuf
-
-gtkstockpixbufs.h: $(pixbuf_dir)/gdk-pixbuf-csource $(IMAGES)
-	GDK_PIXBUF_MODULEDIR=$(pixbuf_dir) \
-	   $(pixbuf_dir)/gdk-pixbuf-csource --raw --build-list $(VARIABLES1) >$(srcdir)/gtkstockpixbufs.h
-	GDK_PIXBUF_MODULEDIR=$(pixbuf_dir) \
-	   $(pixbuf_dir)/gdk-pixbuf-csource --raw --build-list $(VARIABLES2) >>$(srcdir)/gtkstockpixbufs.h
-	GDK_PIXBUF_MODULEDIR=$(pixbuf_dir) \
-	   $(pixbuf_dir)/gdk-pixbuf-csource --raw --build-list $(VARIABLES3) >>$(srcdir)/gtkstockpixbufs.h
-	GDK_PIXBUF_MODULEDIR=$(pixbuf_dir) \
-	   $(pixbuf_dir)/gdk-pixbuf-csource --raw --build-list $(VARIABLES4) >>$(srcdir)/gtkstockpixbufs.h
-	GDK_PIXBUF_MODULEDIR=$(pixbuf_dir) \
-	   $(pixbuf_dir)/gdk-pixbuf-csource --raw --build-list $(VARIABLES5) >>$(srcdir)/gtkstockpixbufs.h
-	GDK_PIXBUF_MODULEDIR=$(pixbuf_dir) \
-	   $(pixbuf_dir)/gdk-pixbuf-csource --raw --build-list $(VARIABLES6) >>$(srcdir)/gtkstockpixbufs.h
+gtkstockpixbufs.h: $(pixbuf_csource) $(IMAGES)
+	@GDK_PIXBUF_CSOURCE@ \
+	   --raw --build-list $(VARIABLES1) >$(srcdir)/gtkstockpixbufs.h
+	@GDK_PIXBUF_CSOURCE@ \
+	   --raw --build-list $(VARIABLES2) >>$(srcdir)/gtkstockpixbufs.h
+	@GDK_PIXBUF_CSOURCE@ \
+	   --raw --build-list $(VARIABLES3) >>$(srcdir)/gtkstockpixbufs.h
+	@GDK_PIXBUF_CSOURCE@ \
+	   --raw --build-list $(VARIABLES4) >>$(srcdir)/gtkstockpixbufs.h
+	@GDK_PIXBUF_CSOURCE@ \
+	   --raw --build-list $(VARIABLES5) >>$(srcdir)/gtkstockpixbufs.h
+	@GDK_PIXBUF_CSOURCE@ \
+	   --raw --build-list $(VARIABLES6) >>$(srcdir)/gtkstockpixbufs.h
 
 EXTRA_DIST = $(IMAGES) gtkstockpixbufs.h


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