home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume24 / yabbawhap / part03 / sysconf < prev    next >
Text File  |  1991-10-09  |  5KB  |  110 lines

  1. #!/bin/sh
  2. # Public domain.
  3.  
  4. # Configure, eat your heart out.
  5.  
  6. # make sure we're using sh (stolen from Configure)
  7. PATH='.:/bin:/usr/bin:/usr/local/bin:/usr/ucb:/usr/local:/usr/lbin:/etc'
  8. export PATH || (echo "Aargh! This isn't sh. Desperation time. I will now feed myself to sh..."; exec sh $0; sh $0; kill $$)
  9. echo "We're using sh. Good."
  10.  
  11. # make sure cmp works
  12. if cmp README README >/dev/null 2>&1
  13. then if cmp README FORMLETTER >/dev/null 2>&1
  14.      then echo 'Aargh! cmp returns a zero exit code for different files. This is hopeless.'
  15.       exit 1
  16.      else echo 'You have a normal cmp. Good.'
  17.      fi
  18. else echo 'Aargh! cmp returns a nonzero exit code for the same file. This is hopeless.'
  19.      exit 1
  20. fi
  21.  
  22. # test for bzero()
  23. cat > .bzero.$$.c << 'YOW'
  24. extern bzero(); main() { char c = 1; bzero(&c,1); printf("%d\n",c); }
  25. YOW
  26. if cc -o .bzero.$$ .bzero.$$.c >/dev/null 2>&1
  27. then ./.bzero.$$ > .bzero.$$.out
  28.      echo 0 > .zero.$$.out
  29.      if cmp .zero.$$.out .bzero.$$.out >/dev/null 2>&1
  30.      then echo 'You have bzero(). Enabling it...'
  31.       sed '2s/$/ -DBZERO/' < Makefile | sed '2s/-UBZERO /-DBZERO /g' | sed '2s/-DBZERO\(.*\) -DBZERO$/-DBZERO\1/' > Makefile.new
  32.       mv Makefile.new Makefile
  33.      else echo 'You seem to have bzero(), but it doesn'\''t work. Disabling it...'
  34.       sed '2s/$/ -UBZERO/' < Makefile | sed '2s/-DBZERO /-UBZERO /g' | sed '2s/-UBZERO\(.*\) -UBZERO$/-UBZERO\1/' > Makefile.new
  35.       mv Makefile.new Makefile
  36.      fi
  37. else echo 'You do not have bzero(). Disabling it...'
  38.      sed '2s/$/ -UBZERO/' < Makefile | sed '2s/-DBZERO /-UBZERO /g' | sed '2s/-UBZERO\(.*\) -UBZERO$/-UBZERO\1/' > Makefile.new
  39.      mv Makefile.new Makefile
  40. fi
  41. rm -f .bzero.$$ .bzero.$$.out .bzero.$$.c .zero.$$.out
  42.  
  43. # test for memset()
  44. cat > .mmset.$$.c << 'YOW'
  45. extern memset(); main() { char c = 1; memset(&c,0,1); printf("%d\n",c); }
  46. YOW
  47. if cc -o .mmset.$$ .mmset.$$.c >/dev/null 2>&1
  48. then ./.mmset.$$ > .mmset.$$.out
  49.      echo 0 > .zero.$$.out
  50.      if cmp .zero.$$.out .mmset.$$.out >/dev/null 2>&1
  51.      then echo 'You have memset(). Enabling it...'
  52.       sed '2s/$/ -DMEMZERO/' < Makefile | sed '2s/-UMEMZERO /-DMEMZERO /g' | sed '2s/-DMEMZERO\(.*\) -DMEMZERO$/-DMEMZERO\1/' > Makefile.new
  53.       mv Makefile.new Makefile
  54.      else echo 'You seem to have memset(), but it doesn'\''t work. Disabling it...'
  55.       sed '2s/$/ -UMEMZERO/' < Makefile | sed '2s/-DMEMZERO /-UMEMZERO /g' | sed '2s/-UMEMZERO\(.*\) -UMEMZERO$/-UMEMZERO\1/' > Makefile.new
  56.       mv Makefile.new Makefile
  57.      fi
  58. else echo 'You do not have memset(). Disabling it...'
  59.      sed '2s/$/ -UMEMZERO/' < Makefile | sed '2s/-DMEMZERO /-UMEMZERO /g' | sed '2s/-UMEMZERO\(.*\) -UMEMZERO$/-UMEMZERO\1/' > Makefile.new
  60.      mv Makefile.new Makefile
  61. fi
  62. rm -f .mmset.$$ .mmset.$$.out .mmset.$$.c .zero.$$.out
  63.  
  64. # test for putchar not sign-extending correctly
  65. cat > .bozo.$$.c << 'YOW'
  66. #include <stdio.h>
  67. main() { int i=255; putchar(25); exit(putchar((char)i) != EOF); }
  68. YOW
  69. if cc -o .bozo.$$ .bozo.$$.c >/dev/null 2>&1
  70. then if ./.bozo.$$ >/dev/null
  71.      then echo 'You have the putchar((char) 255) == EOF bug.'
  72.       echo 'Let me put -DBRAINDAMAGED into the Makefile for you...'
  73.       sed '2s/$/ -DBRAINDAMAGED/' < Makefile | sed '2s/-UBRAINDAMAGED /-DBRAINDAMAGED /g' | sed '2s/-DBRAINDAMAGED\(.*\) -DBRAINDAMAGED$/-DBRAINDAMAGED\1/' > Makefile.new
  74.       mv Makefile.new Makefile
  75.       echo 'You *must* make sure to leave this defined.'
  76.      else echo 'You do not have the putchar((char) 255) == EOF bug.'
  77.       echo 'Making sure -DBRAINDAMAGED is not in the Makefile...'
  78.       sed '2s/$/ -UBRAINDAMAGED/' < Makefile | sed '2s/-DBRAINDAMAGED /-UBRAINDAMAGED /g' | sed '2s/-UBRAINDAMAGED\(.*\) -UBRAINDAMAGED$/-UBRAINDAMAGED\1/' > Makefile.new
  79.       mv Makefile.new Makefile
  80.      fi
  81. else echo 'Weird, cannot compile normal stdio program.'
  82.      echo 'Making sure -DBRAINDAMAGED is not in the Makefile...'
  83.      sed '2s/$/ -UBRAINDAMAGED/' < Makefile | sed '2s/-DBRAINDAMAGED /-UBRAINDAMAGED /g' | sed '2s/-UBRAINDAMAGED\(.*\) -UBRAINDAMAGED$/-UBRAINDAMAGED\1/' > Makefile.new
  84.      mv Makefile.new Makefile
  85. fi
  86. rm -f .bozo.$$ .bozo.$$.out .bozo.$$.c .zero.$$.out
  87.  
  88. # set ZEROFILLED
  89. echo "Since you're running this script, I assume that you're on a UNIX machine,"
  90. echo "and static arrays are zero-filled by default. Enabling -DZEROFILLED..."
  91. sed '2s/$/ -DZEROFILLED/' < Makefile | sed '2s/-UZEROFILLED /-DZEROFILLED /g' | sed '2s/-DZEROFILLED\(.*\) -DZEROFILLED$/-DZEROFILLED\1/' > Makefile.new
  92. mv Makefile.new Makefile
  93.  
  94. echo ' '
  95. echo 'Okay, now you should make checkconf and run it.'
  96. echo 'If you would like me to do this for you, press return.'
  97. echo 'Otherwise type no and press return, or just interrupt this script.'
  98. read foo
  99. case x"$foo"y in
  100. xy) echo 'make checkconf'
  101.     if make checkconf
  102.     then echo './checkconf'
  103.      ./checkconf
  104.     else echo 'Oops, make checkconf failed. I give up: you figure it out.'
  105.     fi
  106.     ;;
  107. esac
  108.  
  109. exit 0
  110.