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