annotate tests/autoconf/regressiontest.pl @ 5043:d0c14ea98592

various frame-geometry fixes -------------------- ChangeLog entries follow: -------------------- src/ChangeLog addition: 2010-02-15 Ben Wing <ben@xemacs.org> * EmacsFrame.c: * EmacsFrame.c (EmacsFrameResize): * console-msw-impl.h: * console-msw-impl.h (struct mswindows_frame): * console-msw-impl.h (FRAME_MSWINDOWS_TARGET_RECT): * device-tty.c: * device-tty.c (tty_asynch_device_change): * event-msw.c: * event-msw.c (mswindows_wnd_proc): * faces.c (Fface_list): * faces.h: * frame-gtk.c: * frame-gtk.c (gtk_set_initial_frame_size): * frame-gtk.c (gtk_set_frame_size): * frame-msw.c: * frame-msw.c (mswindows_init_frame_1): * frame-msw.c (mswindows_set_frame_size): * frame-msw.c (mswindows_size_frame_internal): * frame-msw.c (msprinter_init_frame_3): * frame.c: * frame.c (enum): * frame.c (Fmake_frame): * frame.c (adjust_frame_size): * frame.c (store_minibuf_frame_prop): * frame.c (Fframe_property): * frame.c (Fframe_properties): * frame.c (Fframe_displayable_pixel_height): * frame.c (Fframe_displayable_pixel_width): * frame.c (internal_set_frame_size): * frame.c (Fset_frame_height): * frame.c (Fset_frame_pixel_height): * frame.c (Fset_frame_displayable_pixel_height): * frame.c (Fset_frame_width): * frame.c (Fset_frame_pixel_width): * frame.c (Fset_frame_displayable_pixel_width): * frame.c (Fset_frame_size): * frame.c (Fset_frame_pixel_size): * frame.c (Fset_frame_displayable_pixel_size): * frame.c (frame_conversion_internal_1): * frame.c (get_frame_displayable_pixel_size): * frame.c (change_frame_size_1): * frame.c (change_frame_size): * frame.c (generate_title_string): * frame.h: * gtk-xemacs.c: * gtk-xemacs.c (gtk_xemacs_size_request): * gtk-xemacs.c (gtk_xemacs_size_allocate): * gtk-xemacs.c (gtk_xemacs_paint): * gutter.c: * gutter.c (update_gutter_geometry): * redisplay.c (end_hold_frame_size_changes): * redisplay.c (redisplay_frame): * toolbar.c: * toolbar.c (update_frame_toolbars_geometry): * window.c: * window.c (frame_pixsize_valid_p): * window.c (check_frame_size): Various fixes to frame geometry to make it a bit easier to understand and fix some bugs. 1. IMPORTANT: Some renamings. Will need to be applied carefully to the carbon repository, in the following order: -- pixel_to_char_size -> pixel_to_frame_unit_size -- char_to_pixel_size -> frame_unit_to_pixel_size -- pixel_to_real_char_size -> pixel_to_char_size -- char_to_real_pixel_size -> char_to_pixel_size -- Reverse second and third arguments of change_frame_size() and change_frame_size_1() to try to make functions consistent in putting width before height. -- Eliminate old round_size_to_char, because it didn't really do anything differently from round_size_to_real_char() -- round_size_to_real_char -> round_size_to_char; any places that called the old round_size_to_char should just call the new one. 2. IMPORTANT FOR CARBON: The set_frame_size() method is now passed sizes in "frame units", like all other frame-sizing functions, rather than some hacked-up combination of char-cell units and total pixel size. This only affects window systems that use "pixelated geometry", and I'm not sure if Carbon is one of them. MS Windows is pixelated, X and GTK are not. For pixelated-geometry systems, the size in set_frame_size() is in displayable pixels rather than total pixels and needs to be converted appropriately; take a look at the changes made to mswindows_set_frame_size() method if necessary. 3. Add a big long comment in frame.c describing how frame geometry works. 4. Remove MS Windows-specific character height and width fields, duplicative and unused. 5. frame-displayable-pixel-* and set-frame-displayable-pixel-* didn't use to work on MS Windows, but they do now. 6. In general, clean up the handling of "pixelated geometry" so that fewer functions have to worry about this. This is really an abomination that should be removed entirely but that will have to happen later. Fix some buggy code in frame_conversion_internal() that happened to "work" because it was countered by oppositely buggy code in change_frame_size(). 7. Clean up some frame-size code in toolbar.c and use functions already provided in frame.c instead of rolling its own. 8. Fix check_frame_size() in window.c, which formerly didn't take pixelated geometry into account.
author Ben Wing <ben@xemacs.org>
date Mon, 15 Feb 2010 22:14:11 -0600
parents aa5ed11f473b
children 308d34e9f07d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2651
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
1 #!/usr/bin/perl -w
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
2 #
4739
679041362cd4 Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 3094
diff changeset
3 # Copyright 2005 Malcolm Purvis
679041362cd4 Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 3094
diff changeset
4 #
679041362cd4 Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 3094
diff changeset
5 # This file is part of XEmacs.
679041362cd4 Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 3094
diff changeset
6 #
679041362cd4 Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 3094
diff changeset
7 # XEmacs is free software; you can redistribute it and/or modify it
679041362cd4 Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 3094
diff changeset
8 # under the terms of the GNU General Public License as published by the
679041362cd4 Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 3094
diff changeset
9 # Free Software Foundation; either version 2, or (at your option) any
679041362cd4 Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 3094
diff changeset
10 # later version.
679041362cd4 Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 3094
diff changeset
11 #
679041362cd4 Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 3094
diff changeset
12 # XEmacs is distributed in the hope that it will be useful, but WITHOUT
679041362cd4 Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 3094
diff changeset
13 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
679041362cd4 Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 3094
diff changeset
14 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
679041362cd4 Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 3094
diff changeset
15 # for more details.
679041362cd4 Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 3094
diff changeset
16 #
679041362cd4 Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 3094
diff changeset
17 # You should have received a copy of the GNU General Public License
679041362cd4 Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 3094
diff changeset
18 # along with XEmacs; see the file COPYING. If not, write to
679041362cd4 Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 3094
diff changeset
19 # the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
679041362cd4 Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 3094
diff changeset
20 # Boston, MA 02110-1301, USA.
679041362cd4 Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 3094
diff changeset
21 #
679041362cd4 Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 3094
diff changeset
22 # Commentary
679041362cd4 Add permissions notices to sigpipe.c and regressiontest.pl.
Stephen J. Turnbull <stephen@xemacs.org>
parents: 3094
diff changeset
23 #
2651
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
24 # Try the new and old versions of configure with various command lines to see
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
25 # if they produce identical output.
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
26 #
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
27 # Invocation: $0 /path/to/old/configure /path/to/new/configure
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
28 #
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
29 # Since not all tests use --srcdir, invoke this script from a directory where
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
30 # configure can automatically find its input files (Makefile.in.in, etc). If
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
31 # interrupted, it probably will leave its temporary directories behind. In
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
32 # that case, it will error on next invocation, but remove the directories.
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
33 # The next invocation will then succeed.
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
34 #
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
35
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
36 use strict;
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
37 use File::Basename;
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
38
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
39 # Files generated by configure. There should be no functional difference
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
40 # between these files generated by 2.13 and those generated by 2.59.
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
41 my @output_files =
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
42 (
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
43 "Installation",
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
44 "Makefile.in",
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
45 "./Makefile",
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
46 "./GNUmakefile",
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
47 "lib-src/Makefile.in",
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
48 "lib-src/Makefile",
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
49 "lib-src/GNUmakefile",
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
50 # "lib-src/config.values", # This is specific to the version of autoconf.
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
51 "lib-src/ellcc.h",
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
52 "lwlib/Makefile.in",
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
53 "lwlib/Makefile",
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
54 "lwlib/GNUmakefile",
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
55 "lwlib/config.h",
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
56 "modules/ldap/Makefile.in",
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
57 "modules/ldap/Makefile",
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
58 "modules/ldap/GNUmakefile",
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
59 "modules/postgresql/Makefile.in",
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
60 "modules/postgresql/Makefile",
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
61 "modules/postgresql/GNUmakefile",
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
62 "netinstall/Makefile.in",
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
63 "netinstall/Makefile",
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
64 "src/Makefile.in",
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
65 "src/Makefile",
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
66 "src/GNUmakefile",
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
67 "src/config.h",
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
68 "src/paths.h",
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
69 "src/xemacs.def.in",
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
70 "src/xemacs.def",
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
71 );
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
72
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
73 # The list of complete command line arguments to test against. Since the
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
74 # command line arguments have changed between 2.13 and 2.59 this hash maps from
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
75 # old => new. If new is 'undef' then the old arguments are used instead.
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
76 my %config_args =
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
77 (
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
78 " " => undef,
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
79 "--prefix=/tmp/foo" => undef,
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
80 "--with-gnome" => undef,
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
81 "--with-mule" => "--enable-mule",
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
82 # My build flags for MacOS X. Needs /sw (fink) to be present.
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
83 # "--prefix=/Users/malcolmp/prefix --site-prefixes=/sw --with-sound=none --with-database=no --without-ldap --without-postgresql" =>
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
84 # "--prefix=/Users/malcolmp/prefix --with-site-prefixes=/sw --disable-sound --disable-database --without-ldap --without-postgresql",
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
85 # My build flags for Linux (powerpc64)
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
86 "--prefix=/usr/local/gcc3-world --package-path=/usr/local/lib/xemacs" =>
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
87 "--prefix=/usr/local/gcc3-world --with-package-path=/usr/local/lib/xemacs",
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
88 "--use_union_type" => "--enable-union-type",
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
89 "--use_kkcc" => "--enable-kkcc",
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
90 "--xemacs-compiler=g++" => "--with-xemacs-compiler=g++",
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
91 "--lispdir=/tmp/foo" => "--with-lispdir=/tmp/foo",
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
92 "--moduledir=/tmp/foo" => "--with-moduledir=/tmp/foo",
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
93 "--etcdir=/tmp/foo" => "--with-etcdir=/tmp/foo",
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
94 "--infopath=/tmp/foo" => "--with-infopath=/tmp/foo",
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
95 "--archlibdir=/tmp/foo" => "--with-archlibdir=/tmp/foo",
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
96 "--docdir=/tmp/foo" => "--with-docdir=/tmp/foo",
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
97 "--package-prefix=/tmp/foo" => "--with-package-prefix=/tmp/foo",
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
98 "--package-path=/tmp/foo" => "--with-package-path=/tmp/foo",
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
99 "--datadir=/tmp/foo" => undef,
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
100 "--mandir=/tmp/foo" => undef,
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
101 "--infodir=/tmp/foo" => undef,
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
102 "--libdir=/tmp/foo" => undef,
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
103 "--exec-prefix=/tmp/foo" => undef,
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
104 "--with-athena=3d" => undef,
3094
ad2f4ae9895b [xemacs-hg @ 2005-11-26 11:45:47 by stephent]
stephent
parents: 2651
diff changeset
105 "--with-mule --with-xft=emacs --debug --error-checking=all --with-xim=xlib --with-widgets=athena --with-athena=3d --with-dialogs=athena --memory-usage-stats --use-number-lib=gmp --site-prefixes=/opt/local:/sw --with-ldap=no --use-union-type" => "--enable-mule --with-xft=emacs --enable-debug --enable-error-checking=all --with-xim=xlib --enable-widgets=athena --with-athena=3d --enable-dialogs=athena --enable-memory-usage-stats --enable-bignum=gmp --with-site-prefixes=/opt/local:/sw --with-ldap=no --enable-union-type"
2651
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
106 );
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
107
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
108 die "Usage: $0 /path/to/configure-2.13 /path/to/configure-2.59\n" if scalar(@ARGV) != 2;
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
109
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
110 my $old_configure = $ARGV[0];
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
111 my $new_configure = $ARGV[1];
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
112 my $old_dir = dirname($old_configure);
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
113 my $new_dir = dirname($new_configure);
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
114
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
115 foreach my $old_arg (keys %config_args) {
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
116 mkdir "/tmp/old" or die "$0: Cannot create /tmp/old: $!\n";
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
117 mkdir "/tmp/new" or die "$0: Cannot create /tmp/new: $!\n";
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
118
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
119 my $new_arg = $config_args{$old_arg};
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
120 $new_arg = $old_arg if ! defined($new_arg);
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
121
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
122 print "--------------------------------------------------\n";
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
123 print "$old_configure $old_arg\n";
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
124 print "$new_configure $new_arg\n";
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
125
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
126 chdir "/tmp/old" or die "$0: Cannot cd to /tmp/old: $!\n";
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
127 system ("$old_configure $old_arg >/tmp/old-output.txt\n") == 0 or
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
128 die "$0: $old_configure $old_arg failed\n";
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
129
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
130 chdir "/tmp/new" or die "$0: Cannot cd to /tmp/new: $!\n";
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
131 system ("$new_configure $new_arg >/tmp/new-output.txt\n") == 0 or
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
132 die "$0: $new_configure $new_arg failed\n";
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
133
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
134 foreach my $file (@output_files) {
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
135 if (-r "/tmp/old/$file" && -r "/tmp/new/$file") {
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
136 # Strip out parts that always differ: Paths and the 'Generated by configure'
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
137 # lines.
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
138 system("for i in /tmp/old/$file /tmp/new/$file ; do sed -e '/HAVE_DECL_SYS_SIGLIST/d' -e '\\!$old_configure!d' -e '\\!$new_configure!d' -e '/EMACS_CONFIG_OPTIONS/d' -e '/Generated.*configure/d' -e '\\!$old_dir!s///' -e '\\!$new_dir!s///' -e '\\!/tmp/new!s///' -e '\\!/tmp/old!s///' <\$i >\$i.processed ; done");
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
139 # Compare the processed versions. These should be the same.
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
140 system "diff -U 0 -L old-$file -L new-$file /tmp/old/$file.processed /tmp/new/$file.processed";
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
141 }
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
142 }
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
143 chdir "/";
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
144 system("rm -rf /tmp/old /tmp/new");
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
145 }
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
146
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
147 END {
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
148 chdir "/";
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
149 system("rm -rf /tmp/old /tmp/new");
3580ae2ce979 [xemacs-hg @ 2005-03-11 11:18:44 by malcolmp]
malcolmp
parents:
diff changeset
150 }