bat.sh 3.1 KB

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