first 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. case $0 in
  2. */first)
  3. FDIR=`expr $0 : '\(.*\)/first'`
  4. ;;
  5. first) FDIR=.
  6. ;;
  7. esac
  8. echo check write-ability of /tmp and /usr/tmp ...
  9. if ( >/usr/tmp/aaax.$$ )
  10. then
  11. rm /usr/tmp/aaax.$$
  12. else
  13. echo /usr/tmp must exist and be writable.
  14. exit 2
  15. fi
  16. if ( >/tmp/aaax.$$ )
  17. then
  18. rm /tmp/aaax.$$
  19. else
  20. echo /tmp must exist and be writable.
  21. exit 2
  22. fi
  23. echo "/tmp and /usr/tmp ok"
  24. if [ -f echo ]
  25. then :
  26. else
  27. echo compile own echo program, so that we know how it works ...
  28. if cc -o echo $FDIR/myecho.c > /dev/null 2>&1
  29. then
  30. echo compilation succeeded
  31. else
  32. echo "Sorry, cc does not seem to work"
  33. exit 8
  34. fi
  35. fi
  36. if [ -f macros ]
  37. then
  38. . macros
  39. fi
  40. : "Now get system name and directories"
  41. . $FDIR/get_sys
  42. : "Take action according to the system used"
  43. BM=1
  44. OLDACM=$ACM
  45. OLDSYS=$SYS
  46. case $SYSNAME in
  47. vax_bsd4_1a) ACM=vax4 ; SYS=BSD4_1 ; BYTE_ORDER=0123 ;;
  48. vax_bsd4_2) ACM=vax4 ; SYS=BSD4_2 ; BYTE_ORDER=0123 ;;
  49. vax_sysV_2) ACM=vax4 ; SYS=SYS_5 ; BYTE_ORDER=0123 ;;
  50. i386) ACM=i386 ; SYS=SYS_5 ; BYTE_ORDER=0123 ;;
  51. sun3) ACM=sun3 ; SYS=BSD4_2; BYTE_ORDER=3210 ;;
  52. sun2) ACM=sun2 ; SYS=BSD4_2; BYTE_ORDER=3210 ;;
  53. m68_unisoft|m68k2) ACM=m68k2 ; SYS=V7; BYTE_ORDER=3210 ;;
  54. m68_sysV_0|mantra) ACM=mantra ; SYS=SYS_5; BYTE_ORDER=3210 ;;
  55. m68020) ACM=m68020 ; SYS=SYS_5; BYTE_ORDER=3210 ;;
  56. sparc) ACM=sparc ; SYS=BSD4_2; BYTE_ORDER=3210 ;;
  57. i86) ACM=i86 ; SYS=SYS_5; BYTE_ORDER=0123 ;;
  58. xenix3) ACM=xenix3 ; SYS=SYS_5; BYTE_ORDER=0123 ;;
  59. minix) ACM=minix ; SYS=V7; BYTE_ORDER=0123 ;;
  60. pmds) ACM=pmds ; SYS=V7; BYTE_ORDER=3210 ;;
  61. pmds4) ACM=pmds4 ; SYS=V7; BYTE_ORDER=3210 ;;
  62. minixST) ACM=minixST ; SYS=V7; BYTE_ORDER=3210 ;;
  63. m68k4) ACM=m68k4 ; SYS=V7; BYTE_ORDER=3210 ;;
  64. *) ACM=XXX ; SYS=XXX ; BYTE_ORDER=XXX ;;
  65. esac
  66. : do not change the order in MACH_LIST. check limit_enquire first.
  67. MACH_LIST="i86 xenix3 minix i386 6500 6800 6805 6809 i80 em22 em24 em44 m68k2 pmds minixST m68k4 pmds4 sun2 mantra m68020 sun3 sparc ns pdp s2650 vax4 z80 z8000 arm"
  68. while :
  69. do
  70. for i in $MACH_LIST
  71. do
  72. if [ $i = $ACM ]
  73. then break
  74. fi
  75. done
  76. if [ $i = $ACM ]
  77. then break
  78. fi
  79. echo "This installation script has no knowledge about $SYSNAME.
  80. You will have to specify the default machine that you want ACK to
  81. compile for. Choices:"
  82. l=
  83. x=
  84. for i in $MACH_LIST
  85. do
  86. l="$l $i"
  87. x=x$x
  88. case $x in
  89. xxxxxxxxxx) echo $l
  90. x=
  91. l=
  92. ;;
  93. esac
  94. done
  95. ACM=$OLDACM
  96. echo $l
  97. ./echo -n "Your choice: [$OLDACM] "
  98. . $FDIR/get_answer
  99. case $ANS in
  100. '') ANS="$ACM";;
  101. esac
  102. ACM="$ANS"
  103. done
  104. while :
  105. do
  106. case $SYS in
  107. V7|BSD4_1|BSD4_2|SYS_5)
  108. break
  109. ;;
  110. *)
  111. SYS=$OLDSYS
  112. echo 'What kind of Unix is the target system running?
  113. Choices:
  114. V7 for Unix V7, BSD 2.*
  115. BSD4_1 for Berkeley 4.1
  116. BSD4_2 for Berkeley 4.2, 4.3, SunOS
  117. SYS_5 for Xenix, System III, System V'
  118. ./echo -n "Your choice (V7|BSD4_1|BSD4_2|SYS_5): [$OLDSYS] "
  119. . $FDIR/get_answer
  120. case $ANS in
  121. '') ANS="$SYS";;
  122. esac
  123. SYS="$ANS"
  124. ;;
  125. esac
  126. done
  127. rm -f local.h
  128. sed -e /ACKM/s/'".*"'/'"'$ACM'"'/ -e /BIGMACH/s/'[01]'/$BM/ -e /SYSTEM/s/'^#[ ]*define[ ]*[a-zA-Z_][a-zA-Z0-9_]*'/"# define $SYS"/ < $FDIR/local.h.src >local.h
  129. case $BYTE_ORDER in
  130. XXX) ;;
  131. *) echo '/* Optional definition of BYTE_ORDER: */' >> local.h
  132. echo "#define BYTE_ORDER 0x$BYTE_ORDER" >> local.h
  133. ;;
  134. esac
  135. echo "Your default machine to compile for is $ACM"
  136. DISABLE_LANG=
  137. echo "Installation of the complete ACK takes a long time. Limiting the
  138. number of languages, runtime libraries, back-ends, and assemblers to be
  139. installed may save a lot of time. If you want to install everything,
  140. answer no to the next question. Otherwise, answer yes, and you will be
  141. prompted for details"
  142. while :
  143. do
  144. ./echo -n "Do you want to limit the installation in any way? (y/n) [$LIMIT] "
  145. . $FDIR/get_answer
  146. case $ANS in
  147. '') ANS="$LIMIT";;
  148. esac
  149. case X$ANS in
  150. Xj*|Xy*)
  151. LIMIT=y
  152. . $FDIR/limit_enquire
  153. break
  154. ;;
  155. Xn*) . $FDIR/get_sysvax
  156. LIMIT=n
  157. DO_MACHINE_INDEP=y
  158. break
  159. ;;
  160. *) echo "I do not understand your answer ($ANS). Try again."
  161. ;;
  162. esac
  163. done
  164. . $FDIR/get_makepars
  165. echo TARGET_HOME=\"$TARGET_HOME\" > macros
  166. echo UTIL_HOME=\"$UTIL_HOME\" >> macros
  167. echo SRC_HOME=\"$SRC_HOME\" >> macros
  168. echo SYSNAME=\"$SYSNAME\" >> macros
  169. echo ACM=\"$ACM\" >> macros
  170. echo CURRENT=\"$CURRENT\" >> macros
  171. echo SYS=\"$SYS\" >> macros
  172. echo LIMIT=\"$LIMIT\" >> macros
  173. echo CONFIG=\"$CONFIG\" >> macros
  174. echo DISABLE_LANG=\"$DISABLE_LANG\" >> macros
  175. echo DISABLE_SUP=\"$DISABLE_SUP\" >> macros
  176. echo DO_MACHINE_INDEP=\"$DO_MACHINE_INDEP\" >> macros
  177. echo MACH_LIST=\"$MACH_LIST\" >> macros
  178. echo SYSVAX=\"$SYSVAX\" >> macros
  179. echo WS=\"$WS\" >> macros
  180. echo PS=\"$PS\" >> macros
  181. cat macros $FDIR/install_tail > INSTALL
  182. chmod +x INSTALL
  183. exit 0