mkfiles.pl revision 109998
1142215Sglebius#!/usr/local/bin/perl
2142215Sglebius#
3142215Sglebius# This is a hacked version of files.pl for systems that can't do a 'make files'.
4142215Sglebius# Do a perl util/mkminfo.pl >MINFO to build MINFO
5142215Sglebius# Written by Steve Henson 1999.
6142215Sglebius
7142215Sglebius# List of directories to process
8142215Sglebius
9142215Sglebiusmy @dirs = (
10142215Sglebius".",
11142215Sglebius"crypto",
12142215Sglebius"crypto/md2",
13142215Sglebius"crypto/md4",
14142215Sglebius"crypto/md5",
15142215Sglebius"crypto/sha",
16142215Sglebius"crypto/mdc2",
17142215Sglebius"crypto/hmac",
18142215Sglebius"crypto/ripemd",
19142215Sglebius"crypto/des",
20142215Sglebius"crypto/rc2",
21142215Sglebius"crypto/rc4",
22142215Sglebius"crypto/rc5",
23142215Sglebius"crypto/idea",
24142215Sglebius"crypto/bf",
25142215Sglebius"crypto/cast",
26142215Sglebius"crypto/aes",
27142215Sglebius"crypto/bn",
28142215Sglebius"crypto/rsa",
29142215Sglebius"crypto/dsa",
30142215Sglebius"crypto/dso",
31142215Sglebius"crypto/dh",
32142215Sglebius"crypto/ec",
33142215Sglebius"crypto/buffer",
34142215Sglebius"crypto/bio",
35142215Sglebius"crypto/stack",
36142215Sglebius"crypto/lhash",
37142215Sglebius"crypto/rand",
38142215Sglebius"crypto/err",
39142215Sglebius"crypto/objects",
40142215Sglebius"crypto/evp",
41142215Sglebius"crypto/asn1",
42142215Sglebius"crypto/pem",
43142215Sglebius"crypto/x509",
44142215Sglebius"crypto/x509v3",
45142215Sglebius"crypto/conf",
46142215Sglebius"crypto/txt_db",
47142215Sglebius"crypto/pkcs7",
48142215Sglebius"crypto/pkcs12",
49142215Sglebius"crypto/comp",
50142215Sglebius"crypto/engine",
51142215Sglebius"crypto/ocsp",
52142215Sglebius"crypto/ui",
53142215Sglebius"crypto/krb5",
54142215Sglebius"ssl",
55142215Sglebius"apps",
56142215Sglebius"test",
57142215Sglebius"tools"
58142215Sglebius);
59142215Sglebius
60142215Sglebiusforeach (@dirs) {
61142215Sglebius	&files_dir ($_, "Makefile.ssl");
62142215Sglebius}
63142215Sglebius
64142215Sglebiusexit(0);
65142215Sglebius
66142215Sglebiussub files_dir
67142215Sglebius{
68142215Sglebiusmy ($dir, $makefile) = @_;
69142215Sglebius
70142215Sglebiusmy %sym;
71142215Sglebius
72142215Sglebiusopen (IN, "$dir/$makefile") || die "Can't open $dir/$makefile";
73142215Sglebius
74142215Sglebiusmy $s="";
75142215Sglebius
76142215Sglebiuswhile (<IN>)
77142215Sglebius	{
78142215Sglebius	chop;
79164808Simp	s/#.*//;
80164808Simp	if (/^(\S+)\s*=\s*(.*)$/)
81164808Simp		{
82164808Simp		$o="";
83142215Sglebius		($s,$b)=($1,$2);
84142215Sglebius		for (;;)
85142215Sglebius			{
86142215Sglebius			if ($b =~ /\\$/)
87142215Sglebius				{
88142215Sglebius				chop($b);
89142215Sglebius				$o.=$b." ";
90142215Sglebius				$b=<IN>;
91142215Sglebius				chop($b);
92142215Sglebius				}
93142215Sglebius			else
94142215Sglebius				{
95142215Sglebius				$o.=$b." ";
96142215Sglebius				last;
97142215Sglebius				}
98142215Sglebius			}
99142215Sglebius		$o =~ s/^\s+//;
100142215Sglebius		$o =~ s/\s+$//;
101142215Sglebius		$o =~ s/\s+/ /g;
102142215Sglebius
103142215Sglebius		$o =~ s/\$[({]([^)}]+)[)}]/$sym{$1}/g;
104142215Sglebius		$sym{$s}=$o;
105142215Sglebius		}
106142215Sglebius	}
107142215Sglebius
108142215Sglebiusprint "RELATIVE_DIRECTORY=$dir\n";
109142215Sglebius
110142215Sglebiusforeach (sort keys %sym)
111142215Sglebius	{
112142215Sglebius	print "$_=$sym{$_}\n";
113142215Sglebius	}
114142215Sglebiusprint "RELATIVE_DIRECTORY=\n";
115142215Sglebius
116142215Sglebiusclose (IN);
117142215Sglebius}
118142215Sglebius