1 Add roken-h-process.pl from:
2 https://raw.github.com/heimdal/heimdal/master/cf/roken-h-process.pl
3 It's required for cross-compiling and missing from release tarballs:
4 http://kerberos.996246.n3.nabble.com/Missing-roken-h-process-pl-when-cross-compiling-v1-5-2-td38806.html
6 Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
8 diff -Nura heimdal-1.5.3.orig/cf/roken-h-process.pl heimdal-1.5.3/cf/roken-h-process.pl
9 --- heimdal-1.5.3.orig/cf/roken-h-process.pl 1969-12-31 21:00:00.000000000 -0300
10 +++ heimdal-1.5.3/cf/roken-h-process.pl 2013-12-18 11:32:38.157625167 -0300
14 +require 'getopts.pl';
18 +Getopts('dc:p:o:') || die "foo";
24 +die "missing arg" if (!defined $opt_c || !defined $opt_p || !defined $opt_o);
30 +print "parse config.h\n" if ($debug);
32 +open IN, $opt_c || die "failed open ${opt_c}";
39 + if (m/\s*#ifdef\s+(.*)/) {
41 + if (defined $defines{$var}) {
47 + } elsif (m/\s*#ifndef\s+(.*)/) {
49 + if (defined $defines{$var}) {
55 + } elsif (m/\s*#else/) {
56 + my $var = pop @nesting;
58 + push @nesting, $var;
60 + } elsif ($nesting[$#nesting] and m/\s*#define\s+(\w+)\s+(\S+)/) {
62 + $res = 1 if (!defined $res);
63 + $defines{$1} = $res;
70 + foreach my $i (keys %defines) {
71 + print "k: $i v: $defines{$i}\n";
75 +open IN, "$opt_p" || die "failed open ${opt_p}";
76 +open OUT, ">$opt_o" || die "failed open ${opt_o}";
78 +print "parse roken.h.in\n" if ($debug);
80 +print OUT "/* This is an OS dependent, generated file */\n";
83 +print OUT "#ifndef __ROKEN_H__\n";
84 +print OUT "#define __ROKEN_H__\n";
90 + if (m/\s*#ifdef\s+(.*)/) {
92 + if (defined $defines{$var}) {
98 + } elsif (m/\s*#ifndef\s+(.*)/) {
100 + if (defined $defines{$var}) {
106 + } elsif (m/\s*#if\s+(.*)/) {
107 + my $res = parse_if($1);
108 + print "line = $res: $1\n" if ($debug);
109 + push @nesting, $res;
111 + } elsif (m/\s*#elif\s+(.*)/) {
112 + my $res = pop @nesting;
116 + my $res = parse_if($1);
118 + push @nesting, $res;
120 + } elsif (m/\s*#else/) {
121 + my $var = pop @nesting;
123 + push @nesting, $var;
125 + } elsif (m/\s*#endif/) {
129 + print "line: $_\n" if ($debug);
130 + print "nesting dep $#{nesting}\n" if ($debug);
132 + while ($i le $#nesting) {
133 + $t = 0 if ($nesting[$i] le 0);
134 + print "nesting $i val $nesting[$i] -> $t\n" if ($debug);
143 +print OUT "#endif /* __ROKEN_H__ */\n";
157 + print "end $_\n" if ($debug);
159 + } elsif (m/^([^&]+)\&\&(.*)$/) {
160 + print "$1 and $2\n" if ($debug);
161 + return parse_if($1) and parse_if($2);
162 + } elsif (m/^\(([^&]+)\&\&(.*)$/) {
163 + print "$1 and $2\n" if ($debug);
164 + return parse_if($1) and parse_if($2);
165 + } elsif (m/^([^\|]+)\|\|(.*)$/) {
166 + print "$1 or $2\n" if ($debug);
167 + return parse_if($1) or parse_if($2);
168 + } elsif (m/^\s*(\!)?\s*defined\((\w+)\)/) {
169 + ($neg, $var) = ($1, $2);
170 + print "def: ${neg}-defined(${var})\n" if ($debug);
171 + my $res = defined $defines{$var};
179 + print "res: $res\n" if ($debug);
181 + } elsif (m/^\s*(\!)?(\w+)/) {
182 + ($neg, $var) = ($1, $2);
183 + print "var: $neg $var\n" if ($debug);
185 + if (defined $defines{$var}) {
186 + $res = $defines{$var};
190 + $res = ! $res if ($neg =~ m/!/);
191 + print "res: $res\n" if ($debug);
194 + die "failed parse: $_\n";