home *** CD-ROM | disk | FTP | other *** search
/ ftp.madoka.org / 2014.12.ftp.madoka.org.tar / ftp.madoka.org / pub / plum / 1.x / plum11.lzh / plum11 / chksock < prev    next >
Text File  |  1997-08-28  |  3KB  |  117 lines

  1. #!/bin/perl -w
  2.  
  3. $| = 1;
  4. print 'Ñ╜Ñ▒Ñ├Ñ╚ñ╬Ñ┴ѺÑ├Ñ»ñ≥╣╘ñññ▐ñ╣íú', "\n";
  5. print 'perlñ╬Ñ╨í╝Ñ╕ÑτÑ≤ñ╧', sprintf('%1.3f', $]), 'ñ╟ñ╣íú', "\n";
  6. if ($] >= 5) {
  7.   print 'Socket.pmñ≥├╡ñ╖ñ╞ñññ▐ñ╣...';
  8.   eval("use Socket");
  9.   if ($@) {
  10.     print '╕½ñ─ñ½ñΩñ▐ñ╗ñ≤ñ╟ñ╖ñ┐íú', "\n";
  11.   } else {
  12.     print '╕½ñ─ñ½ñΩñ▐ñ╖ñ┐íú', "\n";
  13.     if (&AF_INET && &PF_INET && &SOCK_STREAM) {
  14.       print 'Socket.pmñ¼═°═╤ñ╟ñ¡ñ▐ñ╣íú', "\n";
  15.       exit;
  16.     } else {
  17.       print 'ñ│ñ╬Socket.pmñ╧═°═╤ñ╟ñ¡ñ▐ñ╗ñ≤íú', "\n";
  18.     }
  19.   }
  20. }
  21. print 'sys/socket.phñ≥├╡ñ╖ñ╞ñññ▐ñ╣...';
  22. $sys_socket_ph = '';
  23. foreach $inc (@INC) {
  24.   if (-r "$inc/sys/socket.ph") {
  25.     print "$inc/sys/socket.ph", 'ñ╟ñ╣íú', "\n";
  26.     $sys_socket_ph = "$inc/sys/socket.ph";
  27.     eval "do 'sys/socket.ph'";
  28.     if (defined(&AF_INET) && defined(&PF_INET) && defined(&SOCK_STREAM)) {
  29.       print $sys_socket_ph, 'ñ¼═°═╤ñ╟ñ¡ñ▐ñ╣íú', "\n";
  30.       exit;
  31.     } else {
  32.       print 'ñ│ñ╬socket.phñ╧═°═╤ñ╟ñ¡ñ▐ñ╗ñ≤íú', "\n";
  33.     }
  34.   }
  35. }
  36. if (!$sys_socket_ph) {
  37.   print '╕½ñ─ñ½ñΩñ▐ñ╗ñ≤ñ╟ñ╖ñ┐íú', "\n";
  38. }
  39. print 'sys/socket.phñ≥║ε└«ñ╖ñ▐ñ╣íú', "\n";
  40. if (!-d 'sys') {
  41.   print 'sysÑ╟ÑúÑ∞Ñ»Ñ╚ÑΩñ≥║ε└«ñ╖ñ▐ñ╣íú', "\n";
  42.   $umask = 022;
  43.   eval '$umask = umask';
  44.   mkdir('sys', ($umask ^ 0777) | 0700);
  45. }
  46. print 'h2phñ≥├╡ñ╖ñ╞ñññ▐ñ╣...';
  47. $PATH = $ENV{'PATH'};
  48. $PATH .= ':/usr/bin:/usr/local/bin:/usr/sbin:.';
  49. foreach $path (split(/\:/, $PATH)) {
  50.   if (-x "$path/h2ph") {
  51.     print "$path/h2ph", 'ñ╟ñ╣íú', "\n";
  52.     $h2ph = "$path/h2ph";
  53.     last;
  54.   }
  55. }
  56. if ($h2ph) {
  57.   system("$h2ph < /usr/include/sys/socket.h > sys/socket.ph");
  58.   print 'sys/socket.phñ≥║ε└«ñ╖ñ▐ñ╖ñ┐íú', "\n";
  59.   eval "do 'sys/socket.ph'";
  60.   if (defined(&AF_INET) && defined(&PF_INET) && defined(&SOCK_STREAM)) {
  61.     print 'sys/socket.phñ¼═°═╤ñ╟ñ¡ñ▐ñ╣íú', "\n";
  62.     exit;
  63.   } else {
  64.     print 'ñ│ñ╬socket.phñ╧═°═╤ñ╟ñ¡ñ▐ñ╗ñ≤íú', "\n";
  65.   }
  66. } else {
  67.   print '╕½ñ─ñ½ñΩñ▐ñ╗ñ≤ñ╟ñ╖ñ┐íú', "\n";
  68. }
  69. if (open(MKSOCK, '>./mksock.c')) {
  70.   $dir = '.';
  71. } elsif (open(MKSOCK, ">$HOME/mksock.c")) {
  72.   $dir = $HOME;
  73. } elsif (open(MKSOCK, '>/tmp/mksock.c')) {
  74.   $dir = '/tmp';
  75. } elsif (defined($ENV{'TMP'}) && open(MKSOCK, ">$ENV{'TMP'}/mksock.c")) {
  76.   $dir = "$ENV{'TMP'}";
  77. } else {
  78.   print 'Ñ╒ÑíÑñÑδñ¼║ε└«ñ╟ñ¡ñ▐ñ╗ñ≤íú', "\n";
  79.   exit;
  80. }
  81. print MKSOCK <<EOF;
  82. #include <stdio.h>
  83. #include <sys/types.h>
  84. #include <sys/socket.h>
  85.  
  86. main()
  87. {
  88.   printf("sub AF_INET {%d;}\\n", AF_INET);
  89.   printf("sub PF_INET {%d;}\\n", PF_INET);
  90.   printf("sub SOCK_STREAM {%d;}\\n", SOCK_STREAM);
  91.   printf("1;\\n");
  92. }
  93. EOF
  94. close(MKSOCK);
  95. print 'CÑ│Ñ≤Ñ╤ÑñÑΘñ≥├╡ñ╖ñ╞ñññ▐ñ╣...';
  96. foreach $path (split(/\:/, $PATH)) {
  97.   if (-x "$path/cc") {
  98.     $cc = "$path/cc";
  99.     last;
  100.   } elsif (-x "$path/gcc") {
  101.     $cc = "$path/gcc";
  102.     last;
  103.   }
  104. }
  105. if (!$cc) {
  106.   print 'CÑ│Ñ≤Ñ╤ÑñÑΘñ¼╕½ñ─ñ½ñΩñ▐ñ╗ñ≤íú', "\n";
  107.   exit;
  108. }
  109. print $cc, 'ñ╟ñ╣íú', "\n";
  110. system("$cc -o $dir/mksock $dir/mksock.c");
  111. system("$dir/mksock > sys/socket.ph");
  112. unlink("$dir/mksock.c");
  113. unlink("$dir/mksock");
  114. print 'sys/socket.phñ≥║ε└«ñ╖ñ▐ñ╖ñ┐íú', "\n";
  115. print 'sys/socket.phñ¼═°═╤ñ╟ñ¡ñ▐ñ╣íú', "\n";
  116. exit;
  117.