Small change to Timecode display (SMTPE) in the Mackie.
[ardour.git] / libs / taglib / admin / conf.change.pl
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 }