~ubuntu-branches/ubuntu/vivid/kdesudo/vivid

« back to all changes in this revision

Viewing changes to admin/conf.change.pl

  • Committer: Bazaar Package Importer
  • Author(s): Anthony Mercatante
  • Date: 2008-07-16 17:08:30 UTC
  • mfrom: (1.1.11 upstream)
  • Revision ID: james.westby@ubuntu.com-20080716170830-bem298ajm207fua9
Tags: 3.2-0ubuntu1
New upstream release

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., 51 Franklin Street, Fifth Floor,
23
 
#   Boston, MA 02110-1301, 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
 
}