~ubuntu-branches/ubuntu/maverick/datakiosk/maverick

« back to all changes in this revision

Viewing changes to admin/conf.change.pl

  • Committer: Bazaar Package Importer
  • Author(s): Jonathan Riddell
  • Date: 2005-06-27 22:48:06 UTC
  • Revision ID: james.westby@ubuntu.com-20050627224806-8farkci1dc2onhbs
Tags: upstream-0.7
ImportĀ upstreamĀ versionĀ 0.7

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/env perl
 
2
 
 
3
# this script patches a config.status file, to use our own perl script
 
4
# in the main loop
 
5
# we do it this way to circumvent hacking (and thereby including)
 
6
# autoconf function (which are GPL) into our LGPL acinclude.m4.in
 
7
# written by Michael Matz <matz@kde.org>
 
8
# adapted by Dirk Mueller <mueller@kde.org>
 
9
#
 
10
#   This file is free software; you can redistribute it and/or
 
11
#   modify it under the terms of the GNU Library General Public
 
12
#   License as published by the Free Software Foundation; either
 
13
#   version 2 of the License, or (at your option) any later version.
 
14
 
 
15
#   This library is distributed in the hope that it will be useful,
 
16
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
 
17
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 
18
#   Library General Public License for more details.
 
19
 
 
20
#   You should have received a copy of the GNU Library General Public License
 
21
#   along with this library; see the file COPYING.LIB.  If not, write to
 
22
#   the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 
23
#   Boston, MA 02111-1307, USA.
 
24
 
 
25
# we have to change two places
 
26
# 1. the splitting of the substitutions into chunks of 90 (or even 48 in
 
27
#    later autoconf's
 
28
# 2. the big main loop which patches all Makefile.in's
 
29
 
 
30
use strict;
 
31
use File::Basename;
 
32
 
 
33
my $ac_aux_dir = dirname($0);
 
34
my ($flag);
 
35
my $ac_version = 0;
 
36
my $vpath_seen = 0;
 
37
$flag = 0;
 
38
 
 
39
while (<>) {
 
40
# usage of $flag: 0 -- we have seen nothing yet
 
41
#   1 -- we are in (1)
 
42
#   2 -- we have ended (1)
 
43
#   3 -- we are in (2)
 
44
#   4 -- we ended (2)
 
45
 
 
46
    if ($flag == 4) {
 
47
        print;
 
48
    } elsif ($flag == 0) {
 
49
# 1. begins with (including): "ac_max_sed_\S+\s*=\s*[0-9]+..."
 
50
#    ends with (excluding) "CONFIG_FILE=..."
 
51
#    in later autoconf (2.14.1) there is no CONFIG_FILES= line,
 
52
#    but instead the (2) directly follow (1)
 
53
        if (/^\s*ac_max_sed_([a-z]+).*=\s*([0-9]+)/ ) {
 
54
            $flag = 1;
 
55
            if ($1 eq 'lines') {
 
56
                # lets hope its different with 2141, 
 
57
                # wasn't able to verify that
 
58
              if ($2 eq '48') {
 
59
                $ac_version = 250;
 
60
              }
 
61
              else {
 
62
                $ac_version = 2141;
 
63
              }
 
64
            } elsif ($1 eq 'cmds') {
 
65
                $ac_version = 213;
 
66
            }
 
67
            # hmm, we don't know the autoconf version, but we try anyway
 
68
        } else {
 
69
            print;
 
70
        }
 
71
    } elsif ($flag == 1) {
 
72
        if (/^\s*CONFIG_FILES=/ && ($ac_version != 250)) {
 
73
             print;
 
74
             $flag = 2;
 
75
        } elsif (/^\s*for\s+ac_file\s+in\s+.*CONFIG_FILES/ ) {
 
76
             $flag = 3;
 
77
        }
 
78
    } elsif ($flag == 2) {
 
79
# 2. begins with: "for ac_file in.*CONFIG_FILES"  (the next 'for' after (1))
 
80
#    end with: "rm -f conftest.s\*"
 
81
# on autoconf 250, it ends with '# CONFIG_HEADER section'
 
82
#
 
83
# gg: if a post-processing commands section is found first, 
 
84
#    stop there and insert a new loop to honor the case/esac.
 
85
# (pattern: /^\s+#\sRun the commands associated with the file./)
 
86
 
 
87
        if (/^\s*for\s+ac_file\s+in\s+.*CONFIG_FILES/ ) {
 
88
            $flag = 3;
 
89
        } else {
 
90
            print;
 
91
        }
 
92
    } elsif ($flag == 3) {
 
93
        if (/^\s*rm\s+-f\s+conftest/ ) {
 
94
            $flag = 4;
 
95
            &insert_main_loop();
 
96
        } elsif (/^\s*rm\s+-f\s+.*ac_cs_root/ ) {
 
97
            $flag = 4;
 
98
            &insert_main_loop();
 
99
            #die "hhhhhhh";
 
100
            if ($ac_version != 2141) {
 
101
                print STDERR "hmm, don't know autoconf version\n";
 
102
            }
 
103
        } elsif (/^\#\s*CONFIG_(HEADER|COMMANDS) section.*|^\s+#\s(Run) the commands associated/) {
 
104
          $flag = 4;
 
105
          my $commands = defined $2;
 
106
          &insert_main_loop();
 
107
          $commands && insert_command_loop();
 
108
          if($ac_version != 250) {
 
109
            print STDERR "hmm, something went wrong :-(\n";
 
110
          }
 
111
        } elsif (/VPATH/ ) {
 
112
            $vpath_seen = 1;
 
113
        }
 
114
    }
 
115
}
 
116
 
 
117
die "wrong input (flag != 4)" unless $flag == 4;
 
118
print STDERR "hmm, don't know autoconf version\n" unless $ac_version;
 
119
 
 
120
sub insert_main_loop {
 
121
 
 
122
  if ($ac_version == 250) {
 
123
    &insert_main_loop_250();
 
124
  }
 
125
  else {
 
126
    &insert_main_loop_213();
 
127
  }
 
128
}
 
129
 
 
130
sub insert_main_loop_250 {
 
131
 
 
132
  print <<EOF;
 
133
  #echo Doing the fast build of Makefiles -- autoconf $ac_version
 
134
EOF
 
135
    if ($vpath_seen) {
 
136
        print <<EOF;
 
137
        # VPATH subst was seen in original config.status main loop
 
138
  echo '/^[     ]*VPATH[        ]*=[^:]*\$/d' >>\$tmp/subs.sed
 
139
EOF
 
140
      }
 
141
  print <<EOF;
 
142
  rm -f \$tmp/subs.files
 
143
  for ac_file in .. \$CONFIG_FILES ; do
 
144
      if test "x\$ac_file" != x..; then
 
145
          echo \$ac_file >> \$tmp/subs.files
 
146
      fi
 
147
  done
 
148
  if test -f \$tmp/subs.files ; then
 
149
      perl $ac_aux_dir/config.pl "\$tmp/subs.sed" "\$tmp/subs.files" "\$srcdir" "\$INSTALL"
 
150
  fi
 
151
  rm -f \$tmp/subs.files
 
152
 
 
153
fi
 
154
EOF
 
155
  return;
 
156
}
 
157
 
 
158
sub insert_main_loop_213 {
 
159
    print <<EOF;
 
160
#echo Doing the fast build of Makefiles -- autoconf $ac_version
 
161
if test "x\$ac_cs_root" = "x" ; then
 
162
    ac_cs_root=conftest
 
163
fi
 
164
EOF
 
165
    if ($vpath_seen) {
 
166
      print <<EOF;
 
167
# VPATH subst was seen in original config.status main loop
 
168
echo '/^[       ]*VPATH[        ]*=[^:]*\$/d' >> \$ac_cs_root.subs
 
169
EOF
 
170
    }
 
171
    print <<EOF;
 
172
rm -f \$ac_cs_root.sacfiles
 
173
for ac_file in .. \$CONFIG_FILES ; do
 
174
    if test "x\$ac_file" != x..; then
 
175
        echo \$ac_file >> \$ac_cs_root.sacfiles
 
176
    fi
 
177
done
 
178
if test -f \$ac_cs_root.sacfiles ; then
 
179
    perl $ac_aux_dir/config.pl "\$ac_cs_root.subs" "\$ac_cs_root.sacfiles" "\$ac_given_srcdir" "\$ac_given_INSTALL"
 
180
fi
 
181
rm -f \$ac_cs_root.s*
 
182
 
 
183
EOF
 
184
    return;
 
185
}
 
186
 
 
187
sub insert_command_loop {
 
188
    print <<EOF;
 
189
  for ac_file in .. \$CONFIG_FILES ; do
 
190
EOF
 
191
}