xref: /minix/crypto/external/bsd/openssl/dist/util/bat.sh (revision 0a6a1f1d)
1#!/usr/local/bin/perl
2
3$infile="/home/eay/ssl/SSLeay/MINFO";
4
5open(IN,"<$infile") || die "unable to open $infile:$!\n";
6$_=<IN>;
7for (;;)
8	{
9	chop;
10
11	($key,$val)=/^([^=]+)=(.*)/;
12	if ($key eq "RELATIVE_DIRECTORY")
13		{
14		if ($lib ne "")
15			{
16			$uc=$lib;
17			$uc =~ s/^lib(.*)\.a/$1/;
18			$uc =~ tr/a-z/A-Z/;
19			$lib_nam{$uc}=$uc;
20			$lib_obj{$uc}.=$libobj." ";
21			}
22		last if ($val eq "FINISHED");
23		$lib="";
24		$libobj="";
25		$dir=$val;
26		}
27
28	if ($key eq "TEST")
29		{ $test.=&var_add($dir,$val); }
30
31	if (($key eq "PROGS") || ($key eq "E_OBJ"))
32		{ $e_exe.=&var_add($dir,$val); }
33
34	if ($key eq "LIB")
35		{
36		$lib=$val;
37		$lib =~ s/^.*\/([^\/]+)$/$1/;
38		}
39
40	if ($key eq "EXHEADER")
41		{ $exheader.=&var_add($dir,$val); }
42
43	if ($key eq "HEADER")
44		{ $header.=&var_add($dir,$val); }
45
46	if ($key eq "LIBSRC")
47		{ $libsrc.=&var_add($dir,$val); }
48
49	if (!($_=<IN>))
50		{ $_="RELATIVE_DIRECTORY=FINISHED\n"; }
51	}
52close(IN);
53
54@a=split(/\s+/,$libsrc);
55foreach (@a)
56	{
57	print "${_}.c\n";
58	}
59
60sub var_add
61	{
62	local($dir,$val)=@_;
63	local(@a,$_,$ret);
64
65	return("") if $no_engine && $dir =~ /\/engine/;
66	return("") if $no_idea && $dir =~ /\/idea/;
67	return("") if $no_rc2  && $dir =~ /\/rc2/;
68	return("") if $no_rc4  && $dir =~ /\/rc4/;
69	return("") if $no_rsa  && $dir =~ /\/rsa/;
70	return("") if $no_rsa  && $dir =~ /^rsaref/;
71	return("") if $no_dsa  && $dir =~ /\/dsa/;
72	return("") if $no_dh   && $dir =~ /\/dh/;
73	if ($no_des && $dir =~ /\/des/)
74		{
75		if ($val =~ /read_pwd/)
76			{ return("$dir/read_pwd "); }
77		else
78			{ return(""); }
79		}
80	return("") if $no_mdc2 && $dir =~ /\/mdc2/;
81	return("") if $no_sock && $dir =~ /\/proxy/;
82	return("") if $no_bf   && $dir =~ /\/bf/;
83	return("") if $no_cast && $dir =~ /\/cast/;
84
85	$val =~ s/^\s*(.*)\s*$/$1/;
86	@a=split(/\s+/,$val);
87	grep(s/\.[och]$//,@a);
88
89	@a=grep(!/^e_.*_3d$/,@a) if $no_des;
90	@a=grep(!/^e_.*_d$/,@a) if $no_des;
91	@a=grep(!/^e_.*_i$/,@a) if $no_idea;
92	@a=grep(!/^e_.*_r2$/,@a) if $no_rc2;
93	@a=grep(!/^e_.*_bf$/,@a) if $no_bf;
94	@a=grep(!/^e_.*_c$/,@a) if $no_cast;
95	@a=grep(!/^e_rc4$/,@a) if $no_rc4;
96
97	@a=grep(!/(^s2_)|(^s23_)/,@a) if $no_ssl2;
98	@a=grep(!/(^s3_)|(^s23_)/,@a) if $no_ssl3;
99
100	@a=grep(!/(_sock$)|(_acpt$)|(_conn$)|(^pxy_)/,@a) if $no_sock;
101
102	@a=grep(!/(^md2)|(_md2$)/,@a) if $no_md2;
103	@a=grep(!/(^md5)|(_md5$)/,@a) if $no_md5;
104
105	@a=grep(!/(^d2i_r_)|(^i2d_r_)/,@a) if $no_rsa;
106	@a=grep(!/(^p_open$)|(^p_seal$)/,@a) if $no_rsa;
107	@a=grep(!/(^pem_seal$)/,@a) if $no_rsa;
108
109	@a=grep(!/(m_dss$)|(m_dss1$)/,@a) if $no_dsa;
110	@a=grep(!/(^d2i_s_)|(^i2d_s_)|(_dsap$)/,@a) if $no_dsa;
111
112	@a=grep(!/^n_pkey$/,@a) if $no_rsa || $no_rc4;
113
114	@a=grep(!/_dhp$/,@a) if $no_dh;
115
116	@a=grep(!/(^sha[^1])|(_sha$)|(m_dss$)/,@a) if $no_sha;
117	@a=grep(!/(^sha1)|(_sha1$)|(m_dss1$)/,@a) if $no_sha1;
118	@a=grep(!/_mdc2$/,@a) if $no_mdc2;
119
120	@a=grep(!/^engine$/,@a) if $no_engine;
121	@a=grep(!/(^rsa$)|(^genrsa$)|(^req$)|(^ca$)/,@a) if $no_rsa;
122	@a=grep(!/(^dsa$)|(^gendsa$)|(^dsaparam$)/,@a) if $no_dsa;
123	@a=grep(!/^gendsa$/,@a) if $no_sha1;
124	@a=grep(!/(^dh$)|(^gendh$)/,@a) if $no_dh;
125
126	@a=grep(!/(^dh)|(_sha1$)|(m_dss1$)/,@a) if $no_sha1;
127
128	grep($_="$dir/$_",@a);
129	@a=grep(!/(^|\/)s_/,@a) if $no_sock;
130	@a=grep(!/(^|\/)bio_sock/,@a) if $no_sock;
131	$ret=join(' ',@a)." ";
132	return($ret);
133	}
134
135