Re: [g-a-devel] gnome-mag patch: replace gettimeofday by g_timers
- From: Bill Haneman <Bill Haneman Sun COM>
- To: Carlos Eduardo Rodrigues Diogenes <cerdiogenes yahoo com br>
- Cc: gnome-accessibility-devel gnome org
- Subject: Re: [g-a-devel] gnome-mag patch: replace gettimeofday by g_timers
- Date: Tue, 14 Feb 2006 14:05:39 +0000
On Sat, 2006-02-11 at 18:00, Carlos Eduardo Rodrigues Diogenes wrote:
> Hi Bill,
>
> Any feedback about this patch?
Hi Carlos;
The patch looks very good. I have just tested it and have committed it
to CVS.
Once again, thanks for doing this work!
Bill
>
> Thanks,
> Carlos.
>
> Carlos Eduardo Rodrigues Diogenes wrote:
>
> > Hi,
> >
> > I'm sending a patch that replace the use of gettimeofday by g_timers
> > calls. I change the struct and the variable that hold the timing
> > statistics to magnifier.h, because the GTimers need to be initialized
> > and I realize that in the magnifier_init fuction is the best place to
> > do it. I don't not change they to zoom-region.h because I think that
> > magnifier.h is a better place to it, because the timing statistics are
> > from the magnifier and not specific to the zoom-regions.
> >
> > I made other minor changes to the code and added my name to the
> > MAINTAINERS file.
> >
> > Bill, if you find the code correct, please commit it, I only ask my
> > CVS account today.
> >
> > Thanks,
> > Carlos.
> >
> > PS.: In the diff was marked various changes to po/Makefile.in.in, but
> > I don't change anything in this file. I checkout the module, made the
> > changes and make the diff. I really don't understand way these
> > differences. Can anyone explaim me?
> >
> >------------------------------------------------------------------------
> >
> >? autom4te.cache
> >? compile
> >? depcomp
> >? magnifier.patch
> >? cursors/Makefile.in
> >? cursors/1_32/Makefile.in
> >? docs/Makefile.in
> >? docs/reference/Makefile.in
> >? docs/reference/doxygen-output.txt
> >? docs/reference/doxygen-warnings.txt
> >? docs/reference/html
> >? docs/reference/xml
> >Index: ChangeLog
> >===================================================================
> >RCS file: /cvs/gnome/gnome-mag/ChangeLog,v
> >retrieving revision 1.165
> >diff -u -p -r1.165 ChangeLog
> >--- ChangeLog 19 Jan 2006 13:14:33 -0000 1.165
> >+++ ChangeLog 7 Feb 2006 19:02:39 -0000
> >@@ -1,3 +1,14 @@
> >+2006-02-07 Carlos Eduardo Rodrigues Diogenes <cerdiogenes yahoo com br>
> >+
> >+ * magnifier.c: Initialize the GTimers in magnifier_init.
> >+
> >+ * zoom-region.c: Moved the TimingStruct to magnifier.h.
> >+
> >+ * zoom-region.c: Use of g_timers in place of gettimeofday.
> >+
> >+ * Others minor modifications to avoid compiler warnings and maintain
> >+ the coding style
> >+
> > 2006-01-19 Bill Haneman <bill haneman sun com>
> >
> > * configure.in: Revved to 0.12.3.
> >Index: MAINTAINERS
> >===================================================================
> >RCS file: /cvs/gnome/gnome-mag/MAINTAINERS,v
> >retrieving revision 1.1
> >diff -u -p -r1.1 MAINTAINERS
> >--- MAINTAINERS 9 Dec 2002 21:47:19 -0000 1.1
> >+++ MAINTAINERS 7 Feb 2006 19:02:39 -0000
> >@@ -1 +1,2 @@
> > Bill Haneman <bill haneman sun com>
> >+Carlos Eduardo Rodrigues Di�es <cerdiogenes yahoo com br>
> >Index: magnifier/magnifier-main.c
> >===================================================================
> >RCS file: /cvs/gnome/gnome-mag/magnifier/magnifier-main.c,v
> >retrieving revision 1.35
> >diff -u -p -r1.35 magnifier-main.c
> >--- magnifier/magnifier-main.c 16 Jan 2005 20:49:14 -0000 1.35
> >+++ magnifier/magnifier-main.c 7 Feb 2006 19:02:39 -0000
> >@@ -368,6 +368,8 @@ main (int argc, char** argv)
> > while (poptGetNextOpt (ctx) >= 0)
> > /**/;
> >
> >+ poptFreeContext (ctx);
> >+
> > /**
> > * slight hack, we set $DISPLAY if --target-display is set.
> > * this is because I don't think GTK+ works well with across multiple
> >@@ -569,6 +571,6 @@ main (int argc, char** argv)
> >
> > if (pan_handle)
> > g_source_remove (pan_handle);
> >-
> >+
> > return 0;
> > }
> >Index: magnifier/magnifier.c
> >===================================================================
> >RCS file: /cvs/gnome/gnome-mag/magnifier/magnifier.c,v
> >retrieving revision 1.64
> >diff -u -p -r1.64 magnifier.c
> >--- magnifier/magnifier.c 21 Jun 2005 12:14:48 -0000 1.64
> >+++ magnifier/magnifier.c 7 Feb 2006 19:02:39 -0000
> >@@ -673,7 +673,8 @@ magnifier_get_display_rect_bounds (Magni
> > }
> > }
> >
> >-static void magnifier_adjust_source_size (Magnifier *magnifier)
> >+static void
> >+magnifier_adjust_source_size (Magnifier *magnifier)
> > {
> > GNOME_Magnifier_RectBounds rect_bounds;
> > gdouble vfract_top, vfract_bottom, hfract_left, hfract_right;
> >@@ -1885,6 +1886,11 @@ magnifier_init (Magnifier *magnifier)
> > gdk_display_get_screen (magnifier->target_display,
> > magnifier->target_screen_num));
> > magnifier_init_cursor_set (magnifier, "default");
> >+
> >+ mag_timing.process = g_timer_new ();
> >+ mag_timing.frame = g_timer_new ();
> >+ mag_timing.scale = g_timer_new ();
> >+ mag_timing.idle = g_timer_new ();
> > #ifdef DEBUG_CLIENT_CALLS
> > client_debug = (g_getenv ("MAG_CLIENT_DEBUG") != NULL);
> > #endif
> >Index: magnifier/magnifier.h
> >===================================================================
> >RCS file: /cvs/gnome/gnome-mag/magnifier/magnifier.h,v
> >retrieving revision 1.16
> >diff -u -p -r1.16 magnifier.h
> >--- magnifier/magnifier.h 5 Oct 2004 12:04:56 -0000 1.16
> >+++ magnifier/magnifier.h 7 Feb 2006 19:02:39 -0000
> >@@ -33,6 +33,7 @@ extern "C" {
> > #include <bonobo/bonobo-object.h>
> > #include <bonobo/bonobo-property-bag.h>
> > #include <login-helper/login-helper.h>
> >+#include <glib.h>
> > #include "GNOME_Magnifier.h"
> >
> > #define MAGNIFIER_TYPE (magnifier_get_type ())
> >@@ -74,6 +75,81 @@ typedef struct {
> > BonoboObjectClass parent_class;
> > POA_GNOME_Magnifier_Magnifier__epv epv;
> > } MagnifierClass;
> >+
> >+/*
> >+ * When running the magnifier in timing test mode (--timing-pan-rate and/or
> >+ * --timing-iterations), then the following output is displayed:
> >+ *
> >+ * Pan Rate = 200
> >+ * Frames Processed = 1225
> >+ * Width/Height/Depth = 640/1024/8
> >+ * Zoom Factor (x/y) = 3.000000/3.000000
> >+ * Update Duration = (avg. 0.010232) (max. 0.002685) (tot. 1.084589) seconds
> >+ * Update Pixels = (avg. 3046) pixels/frame
> >+ * Update Rate = (avg. 97.732909) (max. 372.439485) updates/second
> >+ * Net Update Rate = (avg. 0.297724) (max. 0.457741) Mpex/second
> >+ * Pan Latency = (avg. 0.008229) (max. 0.562326) seconds
> >+ * Tot Frame Duration = (avg. 0.008363) (max. 0.562485) (tot. 10.235981)seconds
> >+ * Frame Rate = (avg. 119.578189) (max. 4854.369141) frames/second
> >+ * Scroll Delta (x) = (avg. 0.000000) (tot. 0) lines
> >+ * Scroll Delta (y) = (avg. 5.019608) (tot. 6144) lines
> >+ * Scroll Rate (x) = (avg. 0.000000) lines/second
> >+ * Scroll Rate (y) = (avg. 600.235657) lines/second
> >+ * Net Render Rate = (avg. 8.685322) (max. 3181.359360) Mpex/second
> >+ *
> >+ * Pan Rate - Displays the pan rate specified on the command line.
> >+ * Only displayed if --timing-pan-rate is used.
> >+ * Frames Processed - Number of frames displayed
> >+ * Width/Height/Depth - The width/height/depth of magnifier display.
> >+ * Zoom Factor (x/y) - The zoom factor used.
> >+ * Update Duration - Average and total time spent updating new sections of
> >+ * the screen.
> >+ * Update Pixels - Number of pixels updated
> >+ * Update Rate - Number of updates possible per second.
> >+ * Net Update Rate - Number of Megapixels updated per second.
> >+ * Pan Latency - Time spent from the beginning of the setROI request
> >+ * until GTK+ has finished processing the update (in
> >+ * GDK's gdk_window_update_idle idle handler.
> >+ * Total Frame Duration - Average and total time processing frames.
> >+ * Frame Rate - Number of frames per second.
> >+ * Scroll Delta - Average and total number of lines scrolled.
> >+ * Scroll Rate - Number of lines scrolled per second. Note that this
> >+ * value will be equal to the --timing-pan-rate value
> >+ * times the y zoom factor.
> >+ * Net Render Rate - Number of Megapixels processed per second.
> >+ *
> >+ * When running with the --timing-output argument, similar information is
> >+ * displayed for each frame plus timing information for the frame. Update
> >+ * information is not displayed for frames where updates do not occur. Pan
> >+ * Rate, Frames Processed, and Width/Height/Depth is not displayed for each
> >+ * frame, only when displaying summary information.
> >+ */
> >+
> >+typedef struct timing {
> >+ GTimer *process;
> >+ GTimer *frame;
> >+ GTimer *scale;
> >+ GTimer *idle;
> >+ gdouble scale_val;
> >+ gdouble idle_val;
> >+ gdouble frame_val;
> >+ int dx;
> >+ int dy;
> >+ gdouble scale_total;
> >+ gdouble idle_total;
> >+ gdouble frame_total;
> >+ int dx_total;
> >+ int dy_total;
> >+ long update_pixels_total;
> >+ long num_scale_samples;
> >+ long num_idle_samples;
> >+ long num_frame_samples;
> >+ long num_line_samples;
> >+ gdouble last_frame_val;
> >+ int last_dy;
> >+} TimingStruct;
> >+
> >+TimingStruct mag_timing;
> >
> > GdkDrawable *magnifier_get_cursor (Magnifier *magnifier);
> > GType magnifier_get_type (void);
> >Index: magnifier/zoom-region.c
> >===================================================================
> >RCS file: /cvs/gnome/gnome-mag/magnifier/zoom-region.c,v
> >retrieving revision 1.58
> >diff -u -p -r1.58 zoom-region.c
> >--- magnifier/zoom-region.c 16 Dec 2005 16:10:22 -0000 1.58
> >+++ magnifier/zoom-region.c 7 Feb 2006 19:02:40 -0000
> >@@ -23,7 +23,6 @@
> > #include <stdlib.h>
> > #include <string.h>
> > #include <popt.h>
> >-#include <sys/time.h> /* TODO: replace timeofday with g_timers */
> > #include <gdk/gdkwindow.h>
> > #include <gtk/gtk.h>
> > #ifdef USE_GDKPIXBUF_RENDER_TO_DRAWABLE
> >@@ -107,82 +106,6 @@ typedef enum {
> > ZOOM_REGION_ERROR_TOO_BIG
> > } ZoomRegionPixmapCreationError;
> >
> >-/*
> >- * When running the magnifier in timing test mode (--timing-pan-rate and/or --timing-iterations),
> >- * then the following output is displayed:
> >- *
> >- * Pan Rate = 200
> >- * Frames Processed = 1225
> >- * Width/Height/Depth = 640/1024/8
> >- * Zoom Factor (x/y) = 3.000000/3.000000
> >- * Update Duration = (avg. 0.010232) (max. 0.002685) (tot. 1.084589) seconds
> >- * Update Pixels = (avg. 3046) pixels/frame
> >- * Update Rate = (avg. 97.732909) (max. 372.439485) updates/second
> >- * Net Update Rate = (avg. 0.297724) (max. 0.457741) Mpex/second
> >- * Pan Latency = (avg. 0.008229) (max. 0.562326) seconds
> >- * Total Frame Duration = (avg. 0.008363) (max. 0.562485) (tot. 10.235981) seconds
> >- * Frame Rate = (avg. 119.578189) (max. 4854.369141) frames/second
> >- * Scroll Delta (x) = (avg. 0.000000) (tot. 0) lines
> >- * Scroll Delta (y) = (avg. 5.019608) (tot. 6144) lines
> >- * Scroll Rate (x) = (avg. 0.000000) lines/second
> >- * Scroll Rate (y) = (avg. 600.235657) lines/second
> >- * Net Render Rate = (avg. 8.685322) (max. 3181.359360) Mpex/second
> >- *
> >- * Pan Rate - Displays the pan rate specified on the command line.
> >- * Only displayed if --timing-pan-rate is used.
> >- * Frames Processed - Number of frames displayed
> >- * Width/Height/Depth - The width/height/depth of magnifier display.
> >- * Zoom Factor (x/y) - The zoom factor used.
> >- * Update Duration - Average and total time spent updating new sections of the screen.
> >- * Update Pixels - Number of pixels updated
> >- * Update Rate - Number of updates possible per second.
> >- * Net Update Rate - Number of Megapixels updated per second.
> >- * Pan Latency - Time spent from the beginning of the setROI request until GTK+
> >- * has finished processing the update (in GDK's
> >- * gdk_window_update_idle idle handler.
> >- * Total Frame Duration - Average and total time processing frames.
> >- * Frame Rate - Number of frames per second.
> >- * Scroll Delta - Average and total number of lines scrolled.
> >- * Scroll Rate - Number of lines scrolled per second. Note that this value
> >- * will be equal to the --timing-pan-rate value times the
> >- * y zoom factor.
> >- * Net Render Rate - Number of Megapixels processed per second.
> >- *
> >- * When running with the --timing-output argument, similar information is displayed for
> >- * each frame plus timing information for the frame. Update information is not
> >- * displayed for frames where updates do not occur. Pan Rate, Frames Processed,
> >- * and Width/Height/Depth is not displayed for each frame, only when displaying
> >- * summary information.
> >- */
> >-
> >-typedef struct timing {
> >- struct timeval process_start;
> >- struct timeval process_end;
> >- struct timeval frame_start;
> >- struct timeval frame_end;
> >- struct timeval scale_start;
> >- struct timeval scale_end;
> >- struct timeval idle_start;
> >- struct timeval idle_end;
> >- float scale_val;
> >- float idle_val;
> >- float frame_val;
> >- int dx;
> >- int dy;
> >- float scale_total;
> >- float idle_total;
> >- float frame_total;
> >- int dx_total;
> >- int dy_total;
> >- long update_pixels_total;
> >- long num_scale_samples;
> >- long num_idle_samples;
> >- long num_frame_samples;
> >- long num_line_samples;
> >- float last_frame_val;
> >- int last_dy;
> >-} TimingStruct;
> >-
> > static float timing_scale_max = 0;
> > static float timing_idle_max = 0;
> > static float timing_frame_max = 0;
> >@@ -193,7 +116,6 @@ static gboolean reset_timing = FALSE;
> > static gboolean timing_test = FALSE;
> >
> > static guint pending_idle_handler = 0;
> >-static TimingStruct mag_timing;
> > static gboolean processing_updates = FALSE;
> > static gboolean timing_start = FALSE;
> >
> >@@ -243,7 +165,7 @@ reset_timing_stats()
> > mag_timing.dy_total = 0;
> > mag_timing.last_frame_val = 0;
> > mag_timing.last_dy = 0;
> >- gettimeofday(&mag_timing.process_start, NULL);
> >+ g_timer_start (mag_timing.process);
> > }
> >
> > /** DEBUG STUFF **/
> >@@ -863,7 +785,6 @@ zoom_region_paint_crosswire_cursor (Zoom
> > GdkRectangle rect;
> > GdkDrawable *cursor;
> > GdkColor color = {0, 0, 0, 0};
> >- GdkColor tmp_color;
> > int x_left_clip = 0, x_right_clip = 0, y_top_clip = 0, y_bottom_clip = 0;
> > int csize = 0;
> >
> >@@ -1283,8 +1204,9 @@ zoom_region_expose_handler (GtkWindow *
> > zoom_region_paint (zoom_region, &event->area);
> > }
> >
> >-static void zoom_region_update_cursor (ZoomRegion *zoom_region, int dx, int dy,
> >- GdkRectangle *clip_rect)
> >+static void
> >+zoom_region_update_cursor (ZoomRegion *zoom_region, int dx, int dy,
> >+ GdkRectangle *clip_rect)
> > {
> > #ifdef ZOOM_REGION_DEBUG
> > g_assert (zoom_region->alive);
> >@@ -1805,7 +1727,7 @@ zoom_region_update (ZoomRegion *zoom_reg
> > if (subimage && zoom_region->priv->w && zoom_region->priv->w->window)
> > {
> > GdkRectangle paint_rect;
> >- gettimeofday(&mag_timing.scale_start, NULL);
> >+ g_timer_start (mag_timing.scale);
> > DEBUG_RECT ("source rect", source_rect);
> > paint_rect = zoom_region_view_rect_from_source_rect (zoom_region, source_rect);
> > /* paint_rect = zoom_region_clip_to_scaled_pixmap (zoom_region, paint_rect); */
> >@@ -1814,8 +1736,8 @@ zoom_region_update (ZoomRegion *zoom_reg
> > _zoom_region_invert_pixbuf (subimage);
> >
> > /**
> >- * XXX: We seem to be breaking with the original intention here, which was to
> >- * keep a fullscreen scaled pixbuf in-sync.
> >+ * XXX: We seem to be breaking with the original intention
> >+ * here, which was to keep a fullscreen scaled pixbuf in-sync.
> > **/
> > gdk_pixbuf_scale (subimage,
> > zoom_region->priv->scaled_pixbuf,
> >@@ -1870,13 +1792,15 @@ zoom_region_update (ZoomRegion *zoom_reg
> > gdk_window_begin_paint_rect (zoom_region->priv->w->window, &paint_rect);
> > zoom_region_paint (zoom_region, &paint_rect);
> > gdk_window_end_paint (zoom_region->priv->w->window);
> >- gettimeofday(&mag_timing.scale_end, NULL);
> >+ g_timer_stop (mag_timing.scale);
> > if (timing_test) {
> > mag_timing.num_scale_samples++;
> >+
> >+ gulong microseconds;
> >+
> > mag_timing.scale_val =
> >- (mag_timing.scale_end.tv_sec - mag_timing.scale_start.tv_sec) +
> >- ((float)(mag_timing.scale_end.tv_usec - mag_timing.scale_start.tv_usec) /
> >- 1000000.0);
> >+ g_timer_elapsed (mag_timing.scale,
> >+ µseconds);
> > mag_timing.scale_total += mag_timing.scale_val;
> >
> > if (mag_timing.scale_val != 0 && (timing_scale_max == 0 ||
> >@@ -2049,10 +1973,12 @@ zoom_region_time_frame(ZoomRegion *zoom_
> > int height = magnifier->target_bounds.y2 - magnifier->target_bounds.y1;
> >
> > mag_timing.num_frame_samples++;
> >- gettimeofday(&mag_timing.frame_end, NULL);
> >- mag_timing.frame_val = (mag_timing.frame_end.tv_sec - mag_timing.frame_start.tv_sec) +
> >- ((float)(mag_timing.frame_end.tv_usec - mag_timing.frame_start.tv_usec) /
> >- 1000000.0);
> >+ g_timer_stop (mag_timing.frame);
> >+
> >+ gulong microseconds;
> >+
> >+ mag_timing.frame_val = g_timer_elapsed (mag_timing.frame,
> >+ µseconds);
> >
> > mag_timing.frame_total += mag_timing.frame_val;
> > if (mag_timing.frame_val > timing_frame_max)
> >@@ -2165,14 +2091,15 @@ gdk_timing_idle (gpointer data)
> >
> > /* Now update has finished, reset processing_updates */
> > processing_updates = FALSE;
> >- gettimeofday(&mag_timing.idle_end, NULL);
> >+ g_timer_stop (mag_timing.idle);
> >
> > if (timing_test) {
> > mag_timing.num_idle_samples++;
> >- mag_timing.idle_val =
> >- (mag_timing.idle_end.tv_sec - mag_timing.idle_start.tv_sec) +
> >- ((float)(mag_timing.idle_end.tv_usec - mag_timing.idle_start.tv_usec) /
> >- 1000000.0);
> >+
> >+ gulong microseconds;
> >+
> >+ mag_timing.idle_val = g_timer_elapsed (mag_timing.idle,
> >+ µseconds);
> > mag_timing.idle_total += mag_timing.idle_val;
> >
> > if (mag_timing.idle_val > timing_idle_max)
> >@@ -2199,7 +2126,7 @@ zoom_region_align (ZoomRegion *zoom_regi
> > zoom_region_time_frame(zoom_region, magnifier);
> >
> > if (timing_test) {
> >- gettimeofday(&mag_timing.frame_start, NULL);
> >+ g_timer_start (mag_timing.frame);
> >
> > if (zoom_region->timing_output) {
> > gint x, y;
> >@@ -2221,12 +2148,12 @@ zoom_region_align (ZoomRegion *zoom_regi
> > * until we have processed an entire frame.
> > */
> > if (!timing_start)
> >- gettimeofday(&mag_timing.process_start, NULL);
> >+ g_timer_start (mag_timing.process);
> >
> > timing_start = TRUE;
> > }
> >
> >- gettimeofday(&mag_timing.idle_start, NULL);
> >+ g_timer_start (mag_timing.idle);
> >
> > /*
> > * zoom_region_align calls
> >@@ -2556,10 +2483,11 @@ zoom_region_pan_test (gpointer data)
> > roi.x1 = zoom_region->roi.x1;
> > roi.x2 = zoom_region->roi.x2;
> >
> >- gettimeofday(&mag_timing.process_end, NULL);
> >- total_time = (mag_timing.process_end.tv_sec - mag_timing.process_start.tv_sec) +
> >- ((float)(mag_timing.process_end.tv_usec - mag_timing.process_start.tv_usec) /
> >- 1000000.0);
> >+ g_timer_stop (mag_timing.process);
> >+
> >+ gulong microseconds;
> >+
> >+ total_time = g_timer_elapsed (mag_timing.process, µseconds);
> >
> > if (mag_timing.frame_total != 0.0)
> > pixels_at_speed = total_time * zoom_region->timing_pan_rate;
> >Index: po/Makefile.in.in
> >===================================================================
> >RCS file: /cvs/gnome/gnome-mag/po/Makefile.in.in,v
> >retrieving revision 1.2
> >diff -u -p -r1.2 Makefile.in.in
> >--- po/Makefile.in.in 2 Apr 2003 13:33:15 -0000 1.2
> >+++ po/Makefile.in.in 7 Feb 2006 19:02:40 -0000
> >@@ -11,6 +11,11 @@
> > #
> > # - Modified by jacob berkman <jacob ximian com> to install
> > # Makefile.in.in and po2tbl.sed.in for use with glib-gettextize
> >+#
> >+# - Modified by Rodney Dawes <dobey novell com> for use with intltool
> >+#
> >+# We have the following line for use by intltoolize:
> >+# INTLTOOL_MAKEFILE
> >
> > GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
> > PACKAGE = @PACKAGE@
> >@@ -27,15 +32,17 @@ VPATH = @srcdir@
> > prefix = @prefix@
> > exec_prefix = @exec_prefix@
> > datadir = @datadir@
> >+datarootdir = @datarootdir@
> > libdir = @libdir@
> > localedir = $(libdir)/locale
> > gnulocaledir = $(datadir)/locale
> > gettextsrcdir = $(datadir)/glib-2.0/gettext/po
> > subdir = po
> >+install_sh = @install_sh@
> >+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
> >
> > INSTALL = @INSTALL@
> > INSTALL_DATA = @INSTALL_DATA@
> >-MKINSTALLDIRS = $(top_srcdir)/@MKINSTALLDIRS@
> >
> > CC = @CC@
> > GENCAT = @GENCAT@
> >@@ -44,8 +51,8 @@ MSGFMT = @MSGFMT@
> > XGETTEXT = @XGETTEXT@
> > INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
> > INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
> >-MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist
> >-GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot
> >+MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist
> >+GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot
> >
> > DEFS = @DEFS@
> > CFLAGS = @CFLAGS@
> >@@ -58,8 +65,9 @@ COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $
> > SOURCES =
> > POFILES = @POFILES@
> > GMOFILES = @GMOFILES@
> >-DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(GETTEXT_PACKAGE).pot \
> >-$(POFILES) $(GMOFILES) $(SOURCES)
> >+DISTFILES = ChangeLog Makefile.in.in POTFILES.in \
> >+$(POFILES) $(SOURCES)
> >+EXTRA_DISTFILES = POTFILES.skip Makevars LINGUAS
> >
> > POTFILES = \
> >
> >@@ -75,13 +83,13 @@ INSTOBJEXT = @INSTOBJEXT@
> >
> > .po.pox:
> > $(MAKE) $(GETTEXT_PACKAGE).pot
> >- $(MSGMERGE) $< $(srcdir)/$(GETTEXT_PACKAGE).pot -o $*pox
> >+ $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox
> >
> > .po.mo:
> > $(MSGFMT) -o $@ $<
> >
> > .po.gmo:
> >- file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \
> >+ file=`echo $* | sed 's,.*/,,'`.gmo \
> > && rm -f $$file && $(GMSGFMT) -o $$file $<
> >
> > .po.cat:
> >@@ -94,7 +102,7 @@ all: all- USE_NLS@
> > all-yes: $(CATALOGS)
> > all-no:
> >
> >-$(srcdir)/$(GETTEXT_PACKAGE).pot: $(POTFILES)
> >+$(GETTEXT_PACKAGE).pot: $(POTFILES)
> > $(GENPOT)
> >
> > install: install-exec install-data
> >@@ -102,7 +110,7 @@ install-exec:
> > install-data: install-data- USE_NLS@
> > install-data-no: all
> > install-data-yes: all
> >- if test -r "$(MKINSTALLDIRS)"; then \
> >+ if test -n "$(MKINSTALLDIRS)"; then \
> > $(MKINSTALLDIRS) $(DESTDIR)$(datadir); \
> > else \
> > $(SHELL) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(datadir); \
> >@@ -116,7 +124,7 @@ install-data-yes: all
> > esac; \
> > lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
> > dir=$(DESTDIR)$$destdir/$$lang/LC_MESSAGES; \
> >- if test -r "$(MKINSTALLDIRS)"; then \
> >+ if test -n "$(MKINSTALLDIRS)"; then \
> > $(MKINSTALLDIRS) $$dir; \
> > else \
> > $(SHELL) $(top_srcdir)/mkinstalldirs $$dir; \
> >@@ -144,7 +152,7 @@ install-data-yes: all
> > fi; \
> > done
> > if test "$(PACKAGE)" = "glib"; then \
> >- if test -r "$(MKINSTALLDIRS)"; then \
> >+ if test -n "$(MKINSTALLDIRS)"; then \
> > $(MKINSTALLDIRS) $(DESTDIR)$(gettextsrcdir); \
> > else \
> > $(SHELL) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(gettextsrcdir); \
> >@@ -172,28 +180,33 @@ uninstall:
> > rm -f $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \
> > fi
> >
> >-check: all
> >+check: all $(GETTEXT_PACKAGE).pot
> >
> > dvi info tags TAGS ID:
> >
> > mostlyclean:
> >- rm -f core core.* *.pox $(GETTEXT_PACKAGE).po *.old.po cat-id-tbl.tmp
> >+ rm -f core core.* *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp
> > rm -fr *.o
> > rm -f .intltool-merge-cache
> >
> > clean: mostlyclean
> >
> > distclean: clean
> >- rm -f Makefile Makefile.in POTFILES *.mo *.msg *.cat *.cat.m
> >+ rm -f Makefile Makefile.in POTFILES
> >+ rm -f *.mo *.msg *.cat *.cat.m $(GMOFILES)
> >
> > maintainer-clean: distclean
> > @echo "This command is intended for maintainers to use;"
> > @echo "it deletes files that may require special tools to rebuild."
> >- rm -f $(GMOFILES)
> >+ rm -f Makefile.in.in
> >
> > distdir = ../$(GETTEXT_PACKAGE)-$(VERSION)/$(subdir)
> >-dist distdir: update-po $(DISTFILES)
> >+dist distdir: $(DISTFILES)
> > dists="$(DISTFILES)"; \
> >+ extra_dists="$(EXTRA_DISTFILES)"; \
> >+ for file in $$extra_dists; do \
> >+ test -f $$file && dists="$$dists $$file"; \
> >+ done; \
> > for file in $$dists; do \
> > ln $(srcdir)/$$file $(distdir) 2> /dev/null \
> > || cp -p $(srcdir)/$$file $(distdir); \
> >@@ -202,14 +215,14 @@ dist distdir: update-po $(DISTFILES)
> > update-po: Makefile
> > $(MAKE) $(GETTEXT_PACKAGE).pot
> > tmpdir=`pwd`; \
> >- cd $(srcdir); \
> > catalogs='$(CATALOGS)'; \
> > for cat in $$catalogs; do \
> > cat=`basename $$cat`; \
> > lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
> > echo "$$lang:"; \
> >- if $$tmpdir/$(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist -o $$tmpdir/$$lang.new.po $$lang; then \
> >- if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
> >+ result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \
> >+ if $$result; then \
> >+ if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
> > rm -f $$tmpdir/$$lang.new.po; \
> > else \
> > if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
> >@@ -230,17 +243,13 @@ update-po: Makefile
> > # and Intltool tags (enclosed in square brackets), and appending a full
> > # relative path to them
> > POTFILES: POTFILES.in
> >- ( if test 'x$(srcdir)' != 'x.'; then \
> >- posrcprefix='$(top_srcdir)/'; \
> >- else \
> >- posrcprefix="../"; \
> >- fi; \
> >+ ( posrcprefix='$(top_srcdir)/'; \
> > rm -f $ -t $@ \
> >- && (sed -e '/^#/d' \
> >- -e "s/^\[.*\] +//" \
> >- -e '/^[ ]*$$/d' \
> >- -e "s *@ $$posrcprefix& \\\\@" < $(srcdir)/$ in \
> >- | sed -e '$$s/\\$$//') > $ -t \
> >+ && (sed -e '/^#/d' \
> >+ -e 's/^[[].*] *//' \
> >+ -e '/^[ ]*$$/d' \
> >+ -e "s ^@ $$posrcprefix@" $(srcdir)/$ in \
> >+ | sed -e '$$!s/$$/ \\/') > $ -t \
> > && chmod a-w $ -t \
> > && mv $ -t $@ )
> >
> >
> >
> >------------------------------------------------------------------------
> >
> >_______________________________________________
> >Gnome-accessibility-devel mailing list
> >Gnome-accessibility-devel gnome org
> >http://mail.gnome.org/mailman/listinfo/gnome-accessibility-devel
> >
> >
>
> _______________________________________________
> Gnome-accessibility-devel mailing list
> Gnome-accessibility-devel gnome org
> http://mail.gnome.org/mailman/listinfo/gnome-accessibility-devel
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]