libftdi: (gerd) add a real libftdi with autoconf stuff, remove include of usb.h in...
[libftdi] / admin / conf.change.pl
1 #!/usr/bin/perl -w
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 File::Basename;
31
32 my $ac_aux_dir = dirname($0);
33 my ($flag);
34 local $ac_version = 0;
35 my $vpath_seen = 0;
36 $flag = 0;
37
38 while (<>) {
39 # usage of $flag: 0 -- we have seen nothing yet
40 #   1 -- we are in (1)
41 #   2 -- we have ended (1)
42 #   3 -- we are in (2)
43 #   4 -- we ended (2)
44
45     if ($flag == 4) {
46         print;
47     } elsif ($flag == 0) {
48 # 1. begins with (including): "ac_max_sed_\S+\s*=\s*[0-9]+..."
49 #    ends with (excluding) "CONFIG_FILE=..."
50 #    in later autoconf (2.14.1) there is no CONFIG_FILES= line,
51 #    but instead the (2) directly follow (1)
52         if (/^\s*ac_max_sed_([a-z]+).*=\s*([0-9]+)/ ) {
53             $flag = 1;
54             if ($1 eq 'lines') {
55                 # lets hope its different with 2141, 
56                 # wasn't able to verify that
57               if ($2 eq '48') {
58                 $ac_version = 250;
59               }
60               else {
61                 $ac_version = 2141;
62               }
63             } elsif ($1 eq 'cmds') {
64                 $ac_version = 213;
65             }
66             # hmm, we don't know the autoconf version, but we try anyway
67         } else {
68             print;
69         }
70     } elsif ($flag == 1) {
71         if (/^\s*CONFIG_FILES=/ && ($ac_version != 250)) {
72              print;
73              $flag = 2;
74         } elsif (/^\s*for\s+ac_file\s+in\s+.*CONFIG_FILES/ ) {
75              $flag = 3;
76         }
77     } elsif ($flag == 2) {
78 # 2. begins with: "for ac_file in.*CONFIG_FILES"  (the next 'for' after (1))
79 #    end with: "rm -f conftest.s\*"
80 # on autoconf 250, it ends with '# CONFIG_HEADER section'
81         if (/^\s*for\s+ac_file\s+in\s+.*CONFIG_FILES/ ) {
82             $flag = 3;
83         } else {
84             print;
85         }
86     } elsif ($flag == 3) {
87         if (/^\s*rm\s+-f\s+conftest/ ) {
88             $flag = 4;
89             &insert_main_loop();
90         } elsif (/^\s*rm\s+-f\s+.*ac_cs_root/ ) {
91             $flag = 4;
92             &insert_main_loop();
93             #die "hhhhhhh";
94             if ($ac_version != 2141) {
95                 print STDERR "hmm, don't know autoconf version\n";
96             }
97         } elsif (/^\#\s*CONFIG_HEADER section.*/) {
98           $flag = 4;
99           &insert_main_loop();
100           if($ac_version != 250) {
101             print STDERR "hmm, something went wrong :-(\n";
102           }
103         } elsif (/VPATH/ ) {
104             $vpath_seen = 1;
105         }
106     }
107 }
108
109 die "wrong input (flag != 4)" unless $flag == 4;
110 print STDERR "hmm, don't know autoconf version\n" unless $ac_version;
111
112 sub insert_main_loop {
113
114   if ($ac_version == 250) {
115     &insert_main_loop_250();
116   }
117   else {
118     &insert_main_loop_213();
119   }
120 }
121
122 sub insert_main_loop_250 {
123
124   print <<EOF;
125   #echo Doing the fast build of Makefiles -- autoconf $ac_version
126 EOF
127     if ($vpath_seen) {
128         print <<EOF;
129         # VPATH subst was seen in original config.status main loop
130   echo '/^[     ]*VPATH[        ]*=[^:]*\$/d' >>\$tmp/subs.sed
131 EOF
132       }
133   print <<EOF;
134   rm -f \$tmp/subs.files
135   for ac_file in .. \$CONFIG_FILES ; do
136       if test "x\$ac_file" != x..; then
137           echo \$ac_file >> \$tmp/subs.files
138       fi
139   done
140   if test -f \$tmp/subs.files ; then
141       perl $ac_aux_dir/config.pl "\$tmp/subs.sed" "\$tmp/subs.files" "\$srcdir" "\$INSTALL"
142   fi
143   rm -f \$tmp/subs.files
144
145 fi
146 EOF
147   return;
148 }
149
150 sub insert_main_loop_213 {
151     print <<EOF;
152 #echo Doing the fast build of Makefiles -- autoconf $ac_version
153 if test "x\$ac_cs_root" = "x" ; then
154     ac_cs_root=conftest
155 fi
156 EOF
157     if ($vpath_seen) {
158       print <<EOF;
159 # VPATH subst was seen in original config.status main loop
160 echo '/^[       ]*VPATH[        ]*=[^:]*\$/d' >> \$ac_cs_root.subs
161 EOF
162     }
163     print <<EOF;
164 rm -f \$ac_cs_root.sacfiles
165 for ac_file in .. \$CONFIG_FILES ; do
166     if test "x\$ac_file" != x..; then
167         echo \$ac_file >> \$ac_cs_root.sacfiles
168     fi
169 done
170 if test -f \$ac_cs_root.sacfiles ; then
171     perl $ac_aux_dir/config.pl "\$ac_cs_root.subs" "\$ac_cs_root.sacfiles" "\$ac_given_srcdir" "\$ac_given_INSTALL"
172 fi
173 rm -f \$ac_cs_root.s*
174
175 EOF
176     return;
177 }