home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume22 / elm2.3 / part01 next >
Encoding:
Internet Message Format  |  1990-06-07  |  49.5 KB

  1. Subject:  v22i060:  ELM mail syste, release 2.3, Part01/26
  2. Newsgroups: comp.sources.unix
  3. Approved: rsalz@uunet.UU.NET
  4. X-Checksum-Snefru: 20a6ef4d 720001ff 0fbeaae0 c670951c
  5.  
  6. Submitted-by: Syd Weinstein <syd@dsinc.dsi.com>
  7. Posting-number: Volume 22, Issue 60
  8. Archive-name: elm2.3/part01
  9.  
  10. [ This comes from the "Overview" file. --r$ ]
  11.  
  12. Currently on Unix, there seems to be a preponderence of line-oriented
  13. software.  This is most unfortunate as most of the software on Unix tends
  14. to be pretty darn hard to use!  I believe that there is more than a slight
  15. correlation between the two, and, since I was myself having problems using
  16. "mailx" with high-volume mail, I created a new mail system.
  17.  
  18. In the lingo of the mail guru, Elm is a "User Agent" system,  it's
  19. designed to run with "sendmail" or "/bin/rmail" (according to what's on
  20. your system) and is a full replacement of programs like "/bin/mail" and
  21. "mailx".  The system is more than just a single program, however, and
  22. includes programs like "frm" to list a 'table of contents' of your mail,
  23. "printmail" to quickly paginate mail files (to allow 'clean' printouts),
  24. and "autoreply", a systemwide daemon that can autoanswer mail for people
  25. while they're on vacation without having multiple copies spawned on the
  26. system.
  27.  
  28. ---- Cut Here and unpack ----
  29. #!/bin/sh
  30. # shar:    Shell Archiver  (v1.22)
  31. #
  32. # This is part 1 of a multipart archive                                    
  33. # do not concatenate these parts, unpack them in order with /bin/sh        
  34. #
  35. #    Run the following text with /bin/sh to create:
  36. #      README
  37. #      Overview
  38. #      NOTICE
  39. #      MANIFEST
  40. #      Instruct
  41. #      Changes
  42. #      Configure
  43. #      config.h.SH
  44. #      Makefile.SH
  45. #      Patchlist
  46. #      doc/Alias.guide
  47. #      doc/Config.guid
  48. #      doc/Elm.cover
  49. #      doc/Filter.guid
  50. #      doc/Form.guide
  51. #      doc/Makefile.SH
  52. #      doc/Ref.guide
  53. #      doc/Users.guide
  54. #      doc/answer.1
  55. #      doc/autoreply.1
  56. #      doc/chkalias.1
  57. #      doc/elm-help.0
  58. #      doc/elm-help.1
  59. #      doc/elm-help.2
  60. #      doc/elm-help.3
  61. #      doc/elm.1
  62. #      doc/elmrc-info
  63. #      doc/elmrc.samp
  64. #      doc/fastmail.1
  65. #      doc/filter.1
  66. #      doc/frm.1
  67. #      doc/listalias.1
  68. #      doc/messages.1
  69. #      doc/newalias.1
  70. #      doc/newmail.1
  71. #      doc/printmail.1
  72. #      doc/readmsg.1
  73. #      doc/tmac.n
  74. #      doc/wnewmail.1
  75. #      filter/Makefile.SH
  76. #      filter/actions.c
  77. #      filter/buffer.c
  78. #      filter/filter.c
  79. #      filter/lock.c
  80. #      filter/parse.c
  81. #      filter/rules.c
  82. #      filter/summarize.c
  83. #      filter/utils.c
  84. #      hdrs/curses.h
  85. #      hdrs/defs.h
  86. #      hdrs/elm.h
  87. #      hdrs/filter.h
  88. #      hdrs/headers.h
  89. #      hdrs/patchlevel.h
  90. #      hdrs/save_opts.h
  91. #      hdrs/sysdefs.SH
  92. #      src/Makefile.SH
  93. #      src/addr_util.c
  94. #      src/alias.c
  95. #      src/aliasdb.c
  96. #      src/aliaslib.c
  97. #      src/args.c
  98. #      src/bouncebk.c
  99. #      src/builtin.c
  100. #      src/calendar.c
  101. #      src/conn_to.c
  102. #      src/curses.c
  103. #      src/date.c
  104. #      src/delete.c
  105. #      src/domains.c
  106. #      src/edit.c
  107. #      src/editmsg.c
  108. #      src/elm.c
  109. #      src/encode.c
  110. #      src/errno.c
  111. #      src/exitprog.c
  112. #      src/expires.c
  113. #      src/file.c
  114. #      src/file_util.c
  115. #      src/fileio.c
  116. #      src/forms.c
  117. #      src/hdrconfg.c
  118. #      src/help.c
  119. #      src/in_utils.c
  120. #      src/init.c
  121. #      src/leavembox.c
  122. #      src/limit.c
  123. #      src/mailmsg1.c
  124. #      src/mailmsg2.c
  125. #      src/mailtime.c
  126. #      src/mkhdrs.c
  127. #      src/newmbox.c
  128. #      src/opt_utils.c
  129. #      src/options.c
  130. #      src/out_utils.c
  131. #      src/pattern.c
  132. #      src/pmalloc.c
  133. #      src/quit.c
  134. #      src/read_rc.c
  135. #      src/remail.c
  136. #      src/reply.c
  137. #      src/returnadd.c
  138. #      src/save_opts.c
  139. #      src/savecopy.c
  140. #      src/screen.c
  141. #      src/showmsg.c
  142. #      src/showmsg_c.c
  143. #      src/signals.c
  144. #      src/softkeys.c
  145. #      src/sort.c
  146. #      src/string2.c
  147. #      src/strings.c
  148. #      src/syscall.c
  149. #      src/utils.c
  150. #      src/validname.c
  151. #      test/test.empty
  152. #      test/test.mail
  153. #      utils/Makefile.SH
  154. #      utils/answer.c
  155. #      utils/arepdaem.c
  156. #      utils/autoreply.c
  157. #      utils/checkalias
  158. #      utils/expand.c
  159. #      utils/fastmail.c
  160. #      utils/from.c
  161. #      utils/listalias.c
  162. #      utils/mailrc.awk
  163. #      utils/messages
  164. #      utils/newalias.c
  165. #      utils/newmail.c
  166. #      utils/printmail
  167. #      utils/readmsg.c
  168. #
  169. if test -r s2_seq_.tmp
  170. then echo "Must unpack archives in sequence!"
  171.      next=`cat s2_seq_.tmp`; echo "Please unpack part $next next"
  172.      exit 1; fi
  173. echo "Making directories"
  174. mkdir doc filter hdrs src test utils
  175. echo "x - extracting README (Text)"
  176. sed 's/^X//' << 'SHAR_EOF' > README &&
  177. XThis is the 2.3 (USENET) version of the Elm Mail System
  178. X
  179. XSee the NOTICE and Instruct files for further details.
  180. X
  181. XIt is IMPERITIVE that all users rerun newalias after installing
  182. XElm 2.3 when upgrading from a previous version.  Elm's behavoir
  183. Xwith aliases could be unpredictible if this step is not performed.
  184. X
  185. XWhere to find more info on Elm:
  186. X   Much discussion on Elm including interim bug fixes, work arounds
  187. Xand future plans occurs in the Usenet news group comp.mail.elm.  Also
  188. Xa monthly status report on Elm is posted there.  This status report
  189. Xlists the archive sites that have the patches to Elm as well as the
  190. Xlastest version.
  191. X
  192. XPatches to Elm are posted to comp.mail.elm and comp.sources.bugs as
  193. Xsoon as they are released.  They are posted to comp.sources.unix shortly
  194. Xthereafter, to allow time for feedback of problems in the patches.
  195. XPatches should be available from the archive sites, or from the
  196. Xarchive server.  Mail archive-server@DSI.COM for details on how to
  197. Xuse the archive server program.  Ask it for help.
  198. X
  199. XLimitations/Problems you might encounter in installing Elm:
  200. X
  201. X    On some Unix 5.3.2 systems, if only a runtime version of the
  202. XO/S has been installed, not all the include files exist for compiling
  203. Xcurses.c.  The ptem.h include file contains the window sizing structure
  204. Xon this version.  Either comment out the window sizing code, or install
  205. Xthe remaining include files from the development system.
  206. X
  207. X    If you run a nonstandard configuration of Mail, such as Xenix
  208. Xrunning smail, Configure can get confused as to where to place items.
  209. XBe sure and check the config.sh file for the correct placement before
  210. Xcontinuning.  If changes are necessary, rerun Configure and fix the
  211. Xfile before exiting.
  212. X
  213. X    On SCO Xenix, if you are all mail is from user anonymous,
  214. Xthis is because the mail delivery agent should be
  215. X/usr/lib/mail/execmail instead of /usr/bin/rmail or /bin/rmail.
  216. X
  217. X    On some systems, especially those based on the AT&T Port to
  218. X286's the -O flag of the compiler produces improper code causing
  219. Xsegmentation violations.  If this happens, recompile the code without
  220. Xthe -O flag.  This has been seen with Microport SysV/AT type systems.
  221. X
  222. X    The Configuration script has been known to exceed the default
  223. Xstack size in Unix 286 sh's.  If Configure does not run correctly on
  224. Xthis type of machine increase the stack size and rerun it.  On
  225. XMicroport SysV/AT machines, Configure might run correctly under ksh.
  226. XObtain ksh from Microport (available to current version owners without
  227. Xadditional charge) and rerun Configure using it.  Xenix 286 users may
  228. Xhave the same problem, but they can work around it by changing the
  229. Xstack size within the shell as reported a Xenix 286 Elm user:
  230. X> I had the same problems as everyone else is reporting on Microports *nix under
  231. X> SCO XENIX 2.2.1.
  232. X> 
  233. X> The solution is simple, up the stack size for /bin/sh. I used 
  234. X> 
  235. X> # mv /bin/sh /bin/sh.old
  236. X> # cp /bin/sh.old /bin/sh
  237. X> # fixhdr -F 8000 /bin/sh
  238. X> 
  239. X> This may seem a bit over the top, but I put it back after!
  240. X> 
  241. X> # mv /bin/sh /bin/sh.rm
  242. X> # mv /bin/sh.old /bin/sh
  243. X> 
  244. X> Then wait till nobody is using /bin/sh.rm then
  245. X> 
  246. X> # rm /bin/sh.rm
  247. X> 
  248. X> That way you preserve your old shell, ( ie you don't break it ), but you
  249. X> get to use Configure without bus errors etc.
  250. X> 
  251. X> I hope that of use
  252. X> 
  253. X> Keith
  254. X> -- 
  255. X> UUCP ..!uunet!mcvax!ukc!slxsys!g4lzv!keith  | Keith Brazington
  256. X> Smart mail  keith@g4lzv.co.uk            | 5b Northgate Rochester Kent UK
  257. X> Ampanet  [44.131.8.1] and [44.131.8.3]        | +44 634 811594 Voice
  258. X> Packet  G4LZV @ GB7UWS -- G4LZV USENET BB --| +44 634 401210 Data v22,v22bis
  259. X
  260. X    Also on Microport SysV/AT Machines, the C compiler produces
  261. Ximproper code for one of the arithmetic calls.  To fix this problem it
  262. Xis necessary to reduce the complexity of the statement, as reported by
  263. Xone of our testers here is the symptom and his patch.  Being this is a
  264. Xcompiler bug on only one system, we make the information available, but
  265. Xnot incorporate it in the main release.  Note, this may effect other
  266. Xareas of Elm, and in the future, Microport may even fix this problem.
  267. X> I finally tracked down the bug that was causing the lengthy delays when
  268. X> the first message was displayed.  The Microport 80286 C compiler was
  269. X> generating bad code for the computation of padding in showmsg.c.  The
  270. X> compiler generated scratch variables in the expression were being
  271. X> located at weird offsets in the stack segment.  This caused the program
  272. X> to stall while the kernel attempted to grow the stack segment to a size
  273. X> that was large enough to contain the scratch variables.  This explains
  274. X> why it only happened the first time a message was displayed.  Here is a
  275. X> patch that fixes the problem:
  276. X> 
  277. X> *** showmsg.c.dist    Fri Mar 17 21:08:37 1989
  278. X> --- showmsg.c    Sat Mar 18 06:14:04 1989
  279. X> ***************
  280. X> *** 280,289
  281. X>                  atoi(current_header->year), current_header->time);
  282. X>   
  283. X>         /* truncate or pad title2 portion on the right
  284. X> !        * so that line fits exactly */
  285. X> !       padding =
  286. X> !         COLUMNS -
  287. X> !         (strlen(title1) + (buf_len=strlen(title2)) + strlen(title3));
  288. X>   
  289. X>         sprintf(titlebuf, "%s%-*.*s%s\n", title1, buf_len+padding,
  290. X>             buf_len+padding, title2, title3);
  291. X> 
  292. X> --- 280,292 -----
  293. X>                  atoi(current_header->year), current_header->time);
  294. X>   
  295. X>         /* truncate or pad title2 portion on the right
  296. X> !        * so that line fits exactly, expression has been
  297. X> !        * simplified to avoid bug in Microport 80286
  298. X> !        * C compiler */
  299. X> !       padding = COLUMNS;
  300. X> !       padding -= strlen(title1);
  301. X> !       padding -= (buf_len = strlen(title2));
  302. X> !       padding -= strlen(title3);
  303. X>   
  304. X>         sprintf(titlebuf, "%s%-*.*s%s\n", title1, buf_len+padding,
  305. X>             buf_len+padding, title2, title3);
  306. X> 
  307. X> -- 
  308. X> John A. Limpert
  309. X> UUCP:    johnl@n3dmc.UUCP, johnl@n3dmc.UU.NET, uunet!n3dmc!johnl
  310. X
  311. X
  312. X    Some versions of GNUmake are slightly incompatible with
  313. Xstandard make.  If you plan on using GNUmake instead of standard make,
  314. Xyou might need to change instances of:
  315. X    -$(MAKEFLAGS)
  316. Xto:
  317. X    $(MAKEFLAGS)
  318. Xin all Makefiles that contain that construct.
  319. X
  320. X>From pyrdc!uunet!mcvax!sauna.hut.fi!jkp Thu Jul 20 23:06:10 1989
  321. X>From: Jyrki Kuoppala <pyrdc!uunet!mcvax!cs.hut.fi!jkp>
  322. X>Subject: ELM diff for Altos Worknet
  323. X>Organization: Helsinki University of Technology, Finland.
  324. X>There's a bug in the Altos Worknet that makes it impossible to change
  325. X>a file's access time if the file is on another system (via Worknet).
  326. X>To make elm work if you use /usr/mail over Worknet, you need to apply
  327. X>the following patch and define WORKNET when compiling leavembox.c.
  328. X>
  329. X>Note: WORKNET needs to be defined somewhere, the easiest thing is
  330. X>to add it manually to src/Makefile.  That's how I did it.
  331. X>
  332. X>*** elm2.2/src/leavembox.c    Tue Jul 18 20:50:32 1989
  333. X>--- elm2.2.altos/src/leavembox.c    Tue Jul 18 23:36:11 1989
  334. X>***************
  335. X>*** 557,562 ****
  336. X>--- 557,565 ----
  337. X>      utime_buffer.modtime= buf.st_mtime;
  338. X>  #endif
  339. X>  
  340. X>+ #ifndef WORKNET
  341. X>+     /* Braindamaged WorkNet from Altos doesn't know how to change
  342. X>+        a file's access time if it is on another system */
  343. X>  #ifdef BSD
  344. X>      if (utime(cur_folder, utime_buffer) != 0) {
  345. X>  #else
  346. X>***************
  347. X>*** 569,574 ****
  348. X>--- 572,578 ----
  349. X>        error2("Error %s trying to change file %s access time.", 
  350. X>             error_name(errno), cur_folder);
  351. X>      }
  352. X>+ #endif  /* WORKNET */
  353. X>  
  354. X>  
  355. X>      mailfile_size = bytes(cur_folder);
  356. X>
  357. X>
  358. X>Jyrki Kuoppala    Helsinki University of Technology, Finland.
  359. X>Internet :        jkp@cs.hut.fi           [128.214.3.119]
  360. X>BITNET :          jkp@fingate.bitnet      Gravity is a myth, the Earth sucks!
  361. X
  362. X                    Syd Weinstein
  363. X                    Elm Coordinator
  364. X                    elm@DSI.COM
  365. X                    (dsinc!elm)
  366. SHAR_EOF
  367. chmod 0444 README || echo "restore of README fails"
  368. echo "x - extracting Overview (Text)"
  369. sed 's/^X//' << 'SHAR_EOF' > Overview &&
  370. X            An Overview of the Elm Mail System
  371. X            ----------------------------------
  372. X
  373. XIntroduction
  374. X
  375. X    This file discusses the functionality of the Elm mail system
  376. Xand explains some of the motivation behind the various features.
  377. X
  378. X1. What is Elm?
  379. X
  380. X    Currently on Unix, there seems to be a preponderence of line-oriented 
  381. Xsoftware.  This is most unfortunate as most of the software on Unix tends to
  382. Xbe pretty darn hard to use!  I believe that there is more than a slight
  383. Xcorrelation between the two, and, since I was myself having problems using
  384. X"mailx" with high-volume mail, I created a new mail system.
  385. X
  386. X    In the lingo of the mail guru, Elm is a "User Agent" system,  it's
  387. Xdesigned to run with "sendmail" or "/bin/rmail" (according to what's on
  388. Xyour system) and is a full replacement of programs like "/bin/mail" and
  389. X"mailx".  The system is more than just a single program, however, and
  390. Xincludes programs like "frm" to list a 'table of contents' of your
  391. Xmail, "printmail" to quickly paginate mail files (to allow 'clean'
  392. Xprintouts), and "autoreply", a systemwide daemon that can autoanswer
  393. Xmail for people while they're on vacation without having multiple
  394. Xcopies spawned on the system.
  395. X
  396. X2. What's New about Elm?
  397. X
  398. X    The most significant difference between Elm and earlier mail
  399. Xsystems is that Elm is screen-oriented.  Upon further use, however,
  400. Xusers will find that Elm is also quite a bit easier to use, and quite
  401. Xa bit more "intelligent" about sending mail and so on.   For example,
  402. Xsay you're on "usenet" and receive a message from someone on the
  403. XARPANET.  The sender also "cc'd" another person on ARPA.  With Elm
  404. Xyou can simply G)roup reply and it will build the correct return
  405. Xaddresses.
  406. X
  407. X    There are lots of subtleties like that in the program, most of
  408. Xwhich you'll probably find when you need them.
  409. X
  410. X3. What systems does it work on?
  411. X
  412. X    Elm was originally written on HP-UX, HP's proprietary version
  413. Xof Bell system V, with a little BSD thrown in.  Since then, it has been
  414. Xported to Bell, Berkeley, Sun, UTS, Pyramid and Xenix and should run on 
  415. Xall these systems without any modifications (if there turn out to be 
  416. Xmodifications, please notify the author as soon as possible).
  417. X
  418. X4. Does it obey existing mail standards?
  419. X
  420. X    Yes!  That's another of the basic reasons the program was 
  421. Xoriginally written!  To ensure that the date field, the "From:" line
  422. Xand so on were all added in the correct format.  The program is 100%
  423. Xcorrect according to the RFC-822 electronic mail header protocol
  424. Xguide.
  425. X
  426. X5. What were the main motivating factors?
  427. X
  428. X    The first two I've already mentioned, but here's a (somewhat
  429. Xpartial) list;
  430. X
  431. X    -  To have a mail system that exploited the CRT instead of
  432. X       assuming I'm on a teletype.
  433. X
  434. X    - To have a mailer that was 100% correct when dealing with     
  435. X      network mail (ie RFC-822).
  436. X
  437. X    - To create a system that needed no documentation for the
  438. X      casual user, but was still powerful enough and sophisticated
  439. X      enough for a mail expert.
  440. X
  441. X    - To write a "significant" piece of software as a learning
  442. X      experience (I admit it!)
  443. X
  444. X    - To find out how reasonable it is to try to modify a program
  445. X      to meet the expectations of the users, rather than vice-versa.
  446. X
  447. X    - To basically correct some of the dumb things that the current
  448. X      mailers do, like letting you send mail to addresses that it
  449. X      could trivially figure out are going to result in 'dead.letter'
  450. X
  451. X    - To tie in intimately with the pathalias program output, and
  452. X      allow users to specify machine!user or user@machine and have
  453. X      the COMPUTER do the work of figuring out addresses...
  454. X
  455. X6. Is it reliable?
  456. X
  457. X    The mailer, in various incarnations, has logged literally
  458. Xthousands upon thousands of hours without any problems that aren't
  459. Xnow corrected.  As new problems arise they're dealt with in as
  460. Xrapid a manner as possible...
  461. X
  462. X7. Disclaimers 
  463. X
  464. X    The author of this program will deny all liability for any
  465. Xdamages, either real or imagined, due to the execution of this program
  466. Xor anything related to either the software or the system.  Furthermore,
  467. Xthe entire system and all source within, including the presentation
  468. Xscreens and commands, are legally copyrighted by the author, and while
  469. Xthey can be used, and abused, for public domain systems, it will be in 
  470. Xviolation of the law if used in systems or programs sold for profit.
  471. X
  472. X    By installing the mailer or even extracting it from the network,
  473. Xyou are agreeing to the above disclaimer.
  474. X
  475. X8. Finally
  476. X
  477. X    I think it's a good program, and I can cite at least 75 people
  478. Xwho would (begrudgingly, I'm sure) agree.  You should most certainly
  479. Xinstall the program and try it!!
  480. X
  481. X
  482. X                -- Dave Taylor
  483. X                
  484. X                taylor@hplabs.HP.COM
  485. X
  486. XMarch 13th, 1986
  487. SHAR_EOF
  488. chmod 0444 Overview || echo "restore of Overview fails"
  489. echo "x - extracting NOTICE (Text)"
  490. sed 's/^X//' << 'SHAR_EOF' > NOTICE &&
  491. X
  492. X                The Elm(tm) Mail System General Public License
  493. X           
  494. X
  495. X            (C) Copyright 1986, 1987, by Dave Taylor
  496. X                    (C) Copyright 1988, 1989, 1990, USENET Community Trust
  497. X
  498. X
  499. X                  COPYING POLICIES
  500. X
  501. X     Permission is hereby granted for copying and distribution of copies of
  502. X  the Elm source files, and that of any part thereof, subject to the following 
  503. X  license conditions:
  504. X
  505. X        1. You may, without additional permission from the authors, distribute 
  506. X           Elm or components of Elm, with or without additions developed by 
  507. X           you or by others at no charge.  You may also distribute Elm along 
  508. X           with any other product for sale, provided that the cost of the 
  509. X           bundled package is the same regardless of whether Elm is included,
  510. X           and provided that those interested only in Elm must be notified 
  511. X           that it is a product freely available from the Elm Development Group.
  512. X
  513. X        2. Furthermore, if you distribute Elm software or parts of Elm, with 
  514. X           or without additions developed by you or others, then you must 
  515. X           either make available the source to all portions of the Elm system 
  516. X           (exclusive of any additions made by you or by others) upon request, 
  517. X           or instead you may notify anyone requesting source that it is 
  518. X           freely available from the Elm Development Group.
  519. X
  520. X        3. In addition, you may not omit any of the copyright notices
  521. X           on either the source files, the executable file, or the 
  522. X           documentation, and
  523. X
  524. X        4. Also, you may not omit transmission of this License agreement with 
  525. X           whatever portions of Elm that are distributed.
  526. X
  527. X        5. Lastly, any users of this software must be notified that it is
  528. X           without warrantee or guarantee of any nature, express or implied, 
  529. X           nor is there any fitness for use represented.
  530. X
  531. XSoftware is a malleable thing - especially Unix - and the authors can in no
  532. Xway guarantee that using this program will not cause grevious damage to your
  533. Xsystem.  Of course this isn't anticipated, but if it does happen, the authors
  534. Xcannot be held liable for any damages either directly or indirectly caused
  535. Xby this event.
  536. X
  537. XModification of the system is encouraged, providing that the portions of 
  538. Xthe system that are from the original still carry the appropriate copyright
  539. Xnotices and that the changed sections are clearly delimited as such.  The
  540. Xauthors requests copies of any changes made to ensure that the various versions
  541. Xstay reasonably in sync with each other.  Please send all revisions to
  542. Xelm@DSI.COM.
  543. X
  544. XNOTE that it is not permitted to copy, sublicense, distribute or transfer any
  545. Xof the Elm software except as expressly indicated herein.  Any attempts to
  546. Xdo otherwise will be considered a violation of this license and your rights
  547. Xto the Elm software will be voided.
  548. X
  549. X
  550. XComments on the system and/or this licensing agreement is encouraged.  Send
  551. Xelectronic mail to "taylor@hplabs.HP.COM".  This license was written with
  552. Xhelp from Scott McGregor.  Thanks Scott!
  553. X
  554. X----
  555. XElm is a trademark of Dave Taylor. 
  556. X
  557. XNOTE: Elm is now in the public trust. Comments, suggestions, bug reports and the
  558. Xlike should be sent to Syd Weinstein; elm@DSI.COM (dsinc!elm)
  559. SHAR_EOF
  560. chmod 0444 NOTICE || echo "restore of NOTICE fails"
  561. echo "x - extracting MANIFEST (Text)"
  562. sed 's/^X//' << 'SHAR_EOF' > MANIFEST &&
  563. XREADME
  564. XOverview
  565. XNOTICE
  566. XMANIFEST
  567. XInstruct
  568. XChanges
  569. XConfigure
  570. Xconfig.h.SH
  571. XMakefile.SH
  572. XPatchlist
  573. Xdoc/Alias.guide
  574. Xdoc/Config.guid
  575. Xdoc/Elm.cover
  576. Xdoc/Filter.guid
  577. Xdoc/Form.guide
  578. Xdoc/Makefile.SH
  579. Xdoc/Ref.guide
  580. Xdoc/Users.guide
  581. Xdoc/answer.1
  582. Xdoc/autoreply.1
  583. Xdoc/chkalias.1
  584. Xdoc/elm-help.0
  585. Xdoc/elm-help.1
  586. Xdoc/elm-help.2
  587. Xdoc/elm-help.3
  588. Xdoc/elm.1
  589. Xdoc/elmrc-info
  590. Xdoc/elmrc.samp
  591. Xdoc/fastmail.1
  592. Xdoc/filter.1
  593. Xdoc/frm.1
  594. Xdoc/listalias.1
  595. Xdoc/messages.1
  596. Xdoc/newalias.1
  597. Xdoc/newmail.1
  598. Xdoc/printmail.1
  599. Xdoc/readmsg.1
  600. Xdoc/tmac.n
  601. Xdoc/wnewmail.1
  602. Xfilter/Makefile.SH
  603. Xfilter/actions.c
  604. Xfilter/buffer.c
  605. Xfilter/filter.c
  606. Xfilter/lock.c
  607. Xfilter/parse.c
  608. Xfilter/rules.c
  609. Xfilter/summarize.c
  610. Xfilter/utils.c
  611. Xhdrs/curses.h
  612. Xhdrs/defs.h
  613. Xhdrs/elm.h
  614. Xhdrs/filter.h
  615. Xhdrs/headers.h
  616. Xhdrs/patchlevel.h
  617. Xhdrs/save_opts.h
  618. Xhdrs/sysdefs.SH
  619. Xsrc/Makefile.SH
  620. Xsrc/addr_util.c
  621. Xsrc/alias.c
  622. Xsrc/aliasdb.c
  623. Xsrc/aliaslib.c
  624. Xsrc/args.c
  625. Xsrc/bouncebk.c
  626. Xsrc/builtin.c
  627. Xsrc/calendar.c
  628. Xsrc/conn_to.c
  629. Xsrc/curses.c
  630. Xsrc/date.c
  631. Xsrc/delete.c
  632. Xsrc/domains.c
  633. Xsrc/edit.c
  634. Xsrc/editmsg.c
  635. Xsrc/elm.c
  636. Xsrc/encode.c
  637. Xsrc/errno.c
  638. Xsrc/exitprog.c
  639. Xsrc/expires.c
  640. Xsrc/file.c
  641. Xsrc/file_util.c
  642. Xsrc/fileio.c
  643. Xsrc/forms.c
  644. Xsrc/hdrconfg.c
  645. Xsrc/help.c
  646. Xsrc/in_utils.c
  647. Xsrc/init.c
  648. Xsrc/leavembox.c
  649. Xsrc/limit.c
  650. Xsrc/mailmsg1.c
  651. Xsrc/mailmsg2.c
  652. Xsrc/mailtime.c
  653. Xsrc/mkhdrs.c
  654. Xsrc/newmbox.c
  655. Xsrc/opt_utils.c
  656. Xsrc/options.c
  657. Xsrc/out_utils.c
  658. Xsrc/pattern.c
  659. Xsrc/pmalloc.c
  660. Xsrc/quit.c
  661. Xsrc/read_rc.c
  662. Xsrc/remail.c
  663. Xsrc/reply.c
  664. Xsrc/returnadd.c
  665. Xsrc/save_opts.c
  666. Xsrc/savecopy.c
  667. Xsrc/screen.c
  668. Xsrc/showmsg.c
  669. Xsrc/showmsg_c.c
  670. Xsrc/signals.c
  671. Xsrc/softkeys.c
  672. Xsrc/sort.c
  673. Xsrc/string2.c
  674. Xsrc/strings.c
  675. Xsrc/syscall.c
  676. Xsrc/utils.c
  677. Xsrc/validname.c
  678. Xtest/test.empty
  679. Xtest/test.mail
  680. Xutils/Makefile.SH
  681. Xutils/answer.c
  682. Xutils/arepdaem.c
  683. Xutils/autoreply.c
  684. Xutils/checkalias
  685. Xutils/expand.c
  686. Xutils/fastmail.c
  687. Xutils/from.c
  688. Xutils/listalias.c
  689. Xutils/mailrc.awk
  690. Xutils/messages
  691. Xutils/newalias.c
  692. Xutils/newmail.c
  693. Xutils/printmail
  694. Xutils/readmsg.c
  695. SHAR_EOF
  696. chmod 0444 MANIFEST || echo "restore of MANIFEST fails"
  697. echo "x - extracting Instruct (Text)"
  698. sed 's/^X//' << 'SHAR_EOF' > Instruct &&
  699. X                Instructions
  700. X                ------------
  701. X
  702. X                Last Update: $Date: 90/04/28 22:40:43 $
  703. X
  704. X
  705. X    This file contains instructions on how to create and install
  706. Xthe entire ELM mail system.  It should be read BEFORE any attempts
  707. Xare made at actually creating and/or installing any of the software
  708. Xcontained herein!
  709. X
  710. X    There is actually really one step needed - unpack all the shar
  711. Xfiles and then;
  712. X
  713. X    $ cd <where-ever you're keeping the Elm sources>
  714. X
  715. X    $ sh Configure
  716. X
  717. X    Answer the questions of that program,, then let it create the
  718. Xlocalized Makefiles and system definition files for you.  When it's
  719. Xdone you can double check the configuration (or customize it further)
  720. Xby reading the Configuration Guide and then rerunning Configure.
  721. XThere are lots of neat features that are unique to this mailer - it's
  722. Xworth a quick perusal at least!
  723. X
  724. X    Once you're happy with the localized files, you then need to
  725. Xcreate the documentation (so there's a bit of a catch-22 that you need
  726. Xto format the Configuration guide before you are happy with the
  727. Xlocalization but can't do that until you're happy with the
  728. Xlocalization...oh well).
  729. X
  730. X    $
  731. X
  732. X    $ make documentation
  733. X
  734. X    When that's done, or even if it fails (don't worry too much about
  735. Xit), do the following:
  736. X
  737. X    $ make all > MAKELOG 2>&1 &
  738. X    $ tail -f MAKELOG
  739. X
  740. X    (if you're in "csh", substitute: "make all >& MAKELOG &")
  741. X
  742. XThis will take a fair while, so it's recommended that you go and eat 
  743. Xlunch or play a game for a while!! (alternatively, spend lots of money
  744. Xon a really FAST machine and blink your eyes a few times...)
  745. X
  746. XAssuming there are no errors during compilation (we'll have to assume
  747. Xthat for the moment) you should now be able to list the directory "bin"
  748. Xand find the following files:
  749. X
  750. X  answer        checkalias     filter         messages      printmail
  751. X  arepdaemon    elm            frm            newalias      readmsg
  752. X  autoreply     fastmail       listalais      newmail
  753. X
  754. Xnext, you can install all the software on your system by;
  755. X
  756. X    $ make install
  757. X    
  758. XNote: On some systems the mailer runs as setgid mail to have the ability
  759. Xto WRITE to the mail directory (for lock files).   If you have a different
  760. Xscheme at your site, feel free to set it up to use that instead.
  761. X
  762. XFinally, we're just about done!   The final checks can be made
  763. Xby the following commands:
  764. X
  765. X    $ elm -z
  766. X
  767. Xshould say "no mail" if nothing's in your incoming mailbox or should
  768. Xstart up the Elm program if there is, and
  769. X
  770. X    $ elm -f test/test.mail
  771. X
  772. Xshould read in EIGHT messages from various people.  While here, try to
  773. XA)lias C)urrent message for each of the eight messages to confirm that
  774. Xthe reply/address system is working okay.  Now Q)uit without having 
  775. Xmarked anything for deletion...answer the questions accordingly.
  776. X
  777. XIf you get this far you're in wonderful shape!  In fact, you're done!
  778. X
  779. XCongratulations!  You've just installed one of the best electronic mail
  780. Xsystems available today on your machine (if I say so myself!)
  781. X
  782. XIF UPGRADING FROM AN EARLIER VERSION OF ELM, even 2.3 beta, it will
  783. Xbe necessary for all users alias files, as well as the systems alias
  784. Xfile, be upgraded to the new format.  Also some error checking of
  785. Xalias files has been added.  All users should run the newalias command.
  786. X
  787. XHANDY HINTS:  If you want to create a print of the entire set of
  788. Xsources, including this file, use the command:
  789. X
  790. X    $ make listing
  791. X
  792. XAlso, if you have a number of machines on a network, you can rlogin
  793. Xto the remote machine and then do a remote install (after checking
  794. Xto ensure that the networking copy method in the Makefile under the
  795. Xtarget "remote-install" is correct) by typing:
  796. X
  797. X    $ make -f <remote Makefile> REMOTE=<remote file system> rmt-install
  798. X
  799. X(for example, if we had installed the system on machine "machx" and 
  800. X wanted to install it on "machy", with the Makefile in /src/Elm on
  801. X "machx", we could type from "machy";
  802. X     $ make -f machx:/src/Elm/Makefile REMOTE=machx: rmt-install
  803. X to have it install the system on machine y!)
  804. X
  805. XThat's it!
  806. X----------
  807. X
  808. X    Author's address:    taylor@hplabs.HP.COM
  809. X                hplabs!taylor
  810. X
  811. X  This document and the entire mail system is
  812. X
  813. X    (C) Copyright 1986, 1987 by Dave Taylor
  814. X    (C) Copyright 1988, 1989, 1990 by the Usenet Community Trust
  815. X
  816. XElm is now in the public trust.  Bug reports, comments, suggestions,
  817. Xetc. should be sent to:
  818. X
  819. X    Elm group's address:    elm@DSI.COM
  820. X                dsinc!elm
  821. X
  822. X    Mail address:        Syd Weinstein
  823. X                Datacomp Systems, Inc.
  824. X                3837 Byron Road
  825. X                Huntingdon Valley, PA 19006-2320
  826. SHAR_EOF
  827. chmod 0444 Instruct || echo "restore of Instruct fails"
  828. echo "x - extracting Changes (Text)"
  829. sed 's/^X//' << 'SHAR_EOF' > Changes &&
  830. XThis file describes major changes made to the Elm source distribution
  831. Xbetween Releases 2.2 and 2.3.  Please remember that Elm is a volunteer
  832. Xproject, we did what we had time for, and perhaps, what interested us.
  833. XIf you have a suggestion, or a fix, submit it, and better yet,
  834. Xvolunteer to impliment it.
  835. X
  836. X        Syd Weinstein        Sat Apr 28 22:16:46 EDT 1990
  837. X
  838. XComplete rewrite of date parsing to allow for RFC822 dates and time zones.
  839. X
  840. XDEL is no longer a syn. for x.
  841. X
  842. XAdd BSD style screen sizing when the IOCTL calls exist.
  843. X
  844. XRemove direct access to the L.sys/Systems file and only use uuname.
  845. X
  846. XAdd -v option for Elm version and options information.
  847. X
  848. XAllows specifying the temp directory to be used by Elm.
  849. X
  850. XAllow for restricting shell escapes from Elm.  (But of course, not
  851. Xfrom any pager or editor Elm would invoke)
  852. X
  853. XAdd PID type locking to the lock file.
  854. X
  855. XMake Elm confirm an x command if changes pending, allow X to be the
  856. Xold non confirming x command.
  857. X
  858. XAllow for disabling the X-Mailer header if desired.
  859. X
  860. XComplete revamp of Configure using new Metaconfig modules.
  861. X
  862. XAdd some checking for space problems and force an emergency exit in those
  863. Xcases.
  864. X
  865. XAllow the alias file to be used across heterogenous networks by
  866. Xkeeping it in network byte order if NFS is available.
  867. X
  868. XAdd support for MMDF style mailboxes.
  869. X
  870. XAliases are now case insensitive as per survey results
  871. X
  872. XRecursive aliases now work again.
  873. X
  874. XAnd many bug fixes.
  875. X
  876. X************************************************************************
  877. SHAR_EOF
  878. chmod 0444 Changes || echo "restore of Changes fails"
  879. echo "x - extracting Configure (Text)"
  880. sed 's/^X//' << 'SHAR_EOF' > Configure &&
  881. X#! /bin/sh
  882. X#
  883. X# If these # comments don't work, trim them.  Don't worry about any other
  884. X# shell scripts, Configure will trim # comments from them for you.
  885. X#
  886. X# (If you are trying to port this package to a machine without sh, I would
  887. X# suggest you cut out the prototypical config.h from the end of Configure
  888. X# and edit it to reflect your system.  Some packages may include samples
  889. X# of config.h for certain machines, so you might look for one of those.)
  890. X#
  891. X# $Header: /files/home/users/syd/elm.rel/RCS/Configure,v 4.1 90/04/28 22:40:46 syd Exp $
  892. X#
  893. X# Yes, you may rip this off to use in other distribution packages.
  894. X# (Note: this Configure script was generated automatically.  Rather than
  895. X# working with this copy of Configure, you may wish to get metaconfig.)
  896. X
  897. X: sanity checks
  898. XPATH=".:/bin:/usr/bin:/usr/local/bin:/usr/ucb:/usr/local:/usr/lbin:/etc:/usr/new:/usr/new/bin:/usr/nbin:$PATH"
  899. Xexport PATH || (echo "OOPS, this isn't sh.  Desperation time.  I will feed myself to sh."; sh $0; kill $$)
  900. X
  901. Xif test ! -t 0; then
  902. X    echo "Say 'sh Configure', not 'sh <Configure'"
  903. X    exit 1
  904. Xfi
  905. X
  906. X(alias) >/dev/null 2>&1 && \
  907. X    echo "(I see you are using the Korn shell.  Some ksh's blow up on Configure," && \
  908. X    echo "especially on exotic machines.  If yours does, try the Bourne shell instead.)"
  909. X
  910. Xif test ! -d ../UU; then
  911. X    if test ! -d UU; then
  912. X    mkdir UU
  913. X    fi
  914. X    cd UU
  915. Xfi
  916. X
  917. Xcase "$1" in
  918. X-d) shift; fastread='yes';;
  919. Xesac
  920. X
  921. Xdefine=''
  922. Xeunicefix=''
  923. XLog=''
  924. XHeader=''
  925. Xbin=''
  926. Xbyteorder=''
  927. Xcontains=''
  928. Xcppstdin=''
  929. Xcppminus=''
  930. Xd_crypt=''
  931. Xcryptlib=''
  932. Xd_getopt=''
  933. Xd_havetlib=''
  934. Xtermlib=''
  935. Xd_mkdir=''
  936. Xd_portable=''
  937. Xd_rename=''
  938. Xd_sigvec=''
  939. Xd_sigvectr=''
  940. Xd_symlink=''
  941. Xd_vfork=''
  942. Xd_whoami=''
  943. Xdefeditor=''
  944. Xhostname=''
  945. Xphostname=''
  946. Xmydomain=''
  947. Xi_time=''
  948. Xi_systime=''
  949. Xd_systimekernel=''
  950. Xmaildir=''
  951. Xn=''
  952. Xc=''
  953. Xpackage=''
  954. Xpager=''
  955. Xprefshell=''
  956. Xspitshell=''
  957. Xshsharp=''
  958. Xsharpbang=''
  959. Xstartsh=''
  960. Xd_eunice=''
  961. Xloclist=''
  962. Xexpr=''
  963. Xsed=''
  964. Xecho=''
  965. Xcat=''
  966. Xrm=''
  967. Xmv=''
  968. Xcp=''
  969. Xtail=''
  970. Xtr=''
  971. Xmkdir=''
  972. Xsort=''
  973. Xuniq=''
  974. Xgrep=''
  975. Xtrylist=''
  976. Xtest=''
  977. Xinews=''
  978. Xegrep=''
  979. Xmore=''
  980. Xpg=''
  981. XMcc=''
  982. Xvi=''
  983. Xmailx=''
  984. Xmail=''
  985. Xcpp=''
  986. Xperl=''
  987. Xemacs=''
  988. Xls=''
  989. Xrmail=''
  990. Xsendmail=''
  991. Xshar=''
  992. Xsmail=''
  993. Xtbl=''
  994. Xtroff=''
  995. Xnroff=''
  996. Xuname=''
  997. Xuuname=''
  998. Xline=''
  999. Xchgrp=''
  1000. Xchmod=''
  1001. Xlint=''
  1002. Xsleep=''
  1003. Xpr=''
  1004. Xtar=''
  1005. Xln=''
  1006. Xlpr=''
  1007. Xlp=''
  1008. Xtouch=''
  1009. Xmake=''
  1010. Xdate=''
  1011. Xcsh=''
  1012. Xc_date=''
  1013. Xd_calendar=''
  1014. Xcalendar=''
  1015. Xd_cuserid=''
  1016. Xd_flock=''
  1017. Xd_flockonly=''
  1018. Xlock_dir=''
  1019. Xd_gethname=''
  1020. Xd_douname=''
  1021. Xd_phostname=''
  1022. Xd_host_comp=''
  1023. Xd_havedbm=''
  1024. Xdbm=''
  1025. Xd_index=''
  1026. Xd_internet=''
  1027. Xd_mboxedit=''
  1028. Xd_mmdf=''
  1029. Xd_newauto=''
  1030. Xd_nfs=''
  1031. Xd_networkorder=''
  1032. Xd_noxheader=''
  1033. Xd_optreturn=''
  1034. Xd_pafirst=''
  1035. Xd_notouchadd=''
  1036. Xd_noaddfrom=''
  1037. Xd_usedomain=''
  1038. Xd_nocheckvalid=''
  1039. Xd_pidcheck=''
  1040. Xd_ptem=''
  1041. Xd_remlock=''
  1042. Xmaxattempts=''
  1043. Xd_setgid=''
  1044. Xmailermode=''
  1045. Xd_strcspn=''
  1046. Xd_strspn=''
  1047. Xd_strings=''
  1048. Xd_pwdinsys=''
  1049. Xstrings=''
  1050. Xincludepath=''
  1051. Xd_subshell=''
  1052. Xd_tempnam=''
  1053. Xtempnamo=''
  1054. Xtempnamc=''
  1055. Xd_termio=''
  1056. Xd_termios=''
  1057. Xd_tz_min=''
  1058. Xd_useembed=''
  1059. Xd_utimbuf=''
  1060. Xd_voidsig=''
  1061. Xdefbatsub=''
  1062. Xelmalias=''
  1063. Xmaxsysalias=''
  1064. Xmaxuseralias=''
  1065. Xlib=''
  1066. Xlibc=''
  1067. Xlinepr=''
  1068. Xmailer=''
  1069. Xmailgrp=''
  1070. Xmansrc=''
  1071. Xmanext=''
  1072. Xmodels=''
  1073. Xsplit=''
  1074. Xsmall=''
  1075. Xmedium=''
  1076. Xlarge=''
  1077. Xhuge=''
  1078. Xoptimize=''
  1079. Xccflags=''
  1080. Xcppflags=''
  1081. Xldflags=''
  1082. Xcc=''
  1083. Xlibs=''
  1084. Xnametype=''
  1085. Xd_passnames=''
  1086. Xd_berknames=''
  1087. Xd_usgnames=''
  1088. Xpasscat=''
  1089. Xpathalias=''
  1090. Xdomains=''
  1091. Xrmttape=''
  1092. Xroff=''
  1093. Xtmpdir=''
  1094. Xxencf=''
  1095. Xxenlf=''
  1096. Xd_xenix=''
  1097. Xd_bsd=''
  1098. XCONFIG=''
  1099. X: set package name
  1100. Xpackage=elm2
  1101. X
  1102. Xecho " "
  1103. Xecho "Beginning of configuration questions for $package kit."
  1104. X: Eunice requires " " instead of "", can you believe it
  1105. Xecho " "
  1106. X
  1107. Xdefine='define'
  1108. Xundef='undef'
  1109. X: change the next line if compiling for Xenix/286 on Xenix/386
  1110. Xxlibpth='/usr/lib/386 /lib/386 /lib'
  1111. Xlibpth='/usr/lib /usr/local/lib /usr/lib/large /lib '$xlibpth' /lib/large /usr/lib/small /lib/small'
  1112. Xsmallmach='pdp11 i8086 z8000 i80286 iAPX286'
  1113. Xrmlist='kit[1-9]isdone kit[1-9][0-9]isdone'
  1114. Xtrap 'echo " "; rm -f $rmlist; exit 1' 1 2 3
  1115. X
  1116. X: We must find out about Eunice early
  1117. Xeunicefix=':'
  1118. Xif test -f /etc/unixtovms; then
  1119. X    eunicefix=/etc/unixtovms
  1120. Xfi
  1121. Xif test -f /etc/unixtovms.exe; then
  1122. X    eunicefix=/etc/unixtovms.exe
  1123. Xfi
  1124. X
  1125. X: Now test for existence of everything in MANIFEST
  1126. X
  1127. Xecho "First let's make sure your kit is complete.  Checking..."
  1128. X(cd ..; awk '' `awk '$1 !~ /PACKINGLIST/ {print $1}' MANIFEST` >/dev/null || kill $$)
  1129. Xecho "Looks good..."
  1130. X
  1131. Xattrlist="mc68000 sun gcos unix ibm gimpel interdata tss os mert pyr"
  1132. Xattrlist="$attrlist vax pdp11 i8086 z8000 u3b2 u3b5 u3b20 u3b200"
  1133. Xattrlist="$attrlist hpux hp9000s300 hp9000s500 hp9000s800"
  1134. Xattrlist="$attrlist ns32000 ns16000 iAPX286 mc300 mc500 mc700 sparc"
  1135. Xattrlist="$attrlist nsc32000 sinix xenix venix posix ansi M_XENIX"
  1136. Xattrlist="$attrlist $mc68k __STDC__ UTS M_I8086 M_I186 M_I286 M_I386"
  1137. Xattrlist="$attrlist i186 __m88k__ m88k DGUX __DGUX__"
  1138. Xd_newshome="/usr/NeWS"
  1139. Xdefvoidused=7
  1140. Xpth="/usr/ucb /bin /usr/bin /usr/local /usr/local/bin /usr/lbin /usr/plx /usr/5bin /vol/local/bin /etc /usr/lib /lib /usr/local/lib /sys5.3/bin /sys5.3/usr/bin /bsd4.3/bin /bsd4.3/usr/bin /bsd4.3/usr/ucb /usr/convex"
  1141. X
  1142. X: check for out bin directory
  1143. Xif test ! -d ../bin; then
  1144. X    echo "Making bin directory"
  1145. X    mkdir ../bin
  1146. Xelse
  1147. X    echo "Found bin directory"
  1148. Xfi
  1149. X
  1150. X: some greps do not return status, grrr.
  1151. Xecho "grimblepritz" >grimble
  1152. Xif grep blurfldyick grimble >/dev/null 2>&1 ; then
  1153. X    contains=contains
  1154. Xelif grep grimblepritz grimble >/dev/null 2>&1 ; then
  1155. X    contains=grep
  1156. Xelse
  1157. X    contains=contains
  1158. Xfi
  1159. Xrm -f grimble
  1160. X: the following should work in any shell
  1161. Xcase "$contains" in
  1162. Xcontains*)
  1163. X    echo " "
  1164. X    echo "AGH!  Grep doesn't return a status.  Attempting remedial action."
  1165. X    cat >contains <<'EOSS'
  1166. Xgrep "$1" "$2" >.greptmp && cat .greptmp && test -s .greptmp
  1167. XEOSS
  1168. Xchmod +x contains
  1169. Xesac
  1170. X
  1171. X: see if sh knows # comments
  1172. Xecho " "
  1173. Xecho "Checking your sh to see if it knows about # comments..."
  1174. Xif sh -c '#' >/dev/null 2>&1 ; then
  1175. X    echo "Your sh handles # comments correctly."
  1176. X    shsharp=true
  1177. X    spitshell=cat
  1178. X    echo " "
  1179. X    echo "Okay, let's see if #! works on this system..."
  1180. X    echo "#!/bin/echo hi" > try
  1181. X    $eunicefix try
  1182. X    chmod +x try
  1183. X    ./try > today
  1184. X    if $contains hi today >/dev/null 2>&1; then
  1185. X    echo "It does."
  1186. X    sharpbang='#!'
  1187. X    else
  1188. X    echo "#! /bin/echo hi" > try
  1189. X    $eunicefix try
  1190. X    chmod +x try
  1191. X    ./try > today
  1192. X    if test -s today; then
  1193. X        echo "It does."
  1194. X        sharpbang='#! '
  1195. X    else
  1196. X        echo "It doesn't."
  1197. X        sharpbang=': use '
  1198. X    fi
  1199. X    fi
  1200. Xelse
  1201. X    echo "Your sh doesn't grok # comments--I will strip them later on."
  1202. X    shsharp=false
  1203. X    echo "exec grep -v '^#'" >spitshell
  1204. X    chmod +x spitshell
  1205. X    $eunicefix spitshell
  1206. X    spitshell=`pwd`/spitshell
  1207. X    echo "I presume that if # doesn't work, #! won't work either!"
  1208. X    sharpbang=': use '
  1209. Xfi
  1210. X
  1211. X: figure out how to guarantee sh startup
  1212. Xecho " "
  1213. Xecho "Checking out how to guarantee sh startup..."
  1214. Xstartsh=$sharpbang'/bin/sh'
  1215. Xecho "Let's see if '$startsh' works..."
  1216. Xcat >try <<EOSS
  1217. X$startsh
  1218. Xset abc
  1219. Xtest "$?abc" != 1
  1220. XEOSS
  1221. X
  1222. Xchmod +x try
  1223. X$eunicefix try
  1224. Xif ./try; then
  1225. X    echo "Yup, it does."
  1226. Xelse
  1227. X    echo "Nope.  You may have to fix up the shell scripts to make sure sh runs them."
  1228. Xfi
  1229. Xrm -f try today
  1230. X
  1231. X: first determine how to suppress newline on echo command
  1232. Xecho "Checking echo to see how to suppress newlines..."
  1233. X(echo "hi there\c" ; echo " ") >.echotmp
  1234. Xif $contains c .echotmp >/dev/null 2>&1 ; then
  1235. X    echo "...using -n."
  1236. X    n='-n'
  1237. X    c=''
  1238. Xelse
  1239. X    cat <<'EOM'
  1240. X...using \c
  1241. XEOM
  1242. X    n=''
  1243. X    c='\c'
  1244. Xfi
  1245. Xecho $n "Type carriage return to continue.  Your cursor should be here-->$c"
  1246. Xread ans
  1247. Xrm -f .echotmp
  1248. X
  1249. X: now set up to do reads with possible shell escape and default assignment
  1250. Xcat <<EOSC >myread
  1251. Xcase "\$fastread" in
  1252. Xyes) ans=''; echo " " ;;
  1253. X*) ans='!';;
  1254. Xesac
  1255. Xwhile expr "X\$ans" : "X!" >/dev/null; do
  1256. X    read ans
  1257. X    case "\$ans" in
  1258. X    !)
  1259. X    sh
  1260. X    echo " "
  1261. X    echo $n "\$rp $c"
  1262. X    ;;
  1263. X    !*)
  1264. X    set \`expr "X\$ans" : "X!\(.*\)\$"\`
  1265. X    sh -c "\$*"
  1266. X    echo " "
  1267. X    echo $n "\$rp $c"
  1268. X    ;;
  1269. X    esac
  1270. Xdone
  1271. Xrp='Your answer:'
  1272. Xcase "\$ans" in
  1273. X'') ans="\$dflt";;
  1274. Xesac
  1275. XEOSC
  1276. X
  1277. X: general instructions
  1278. Xcat <<EOH
  1279. XThis installation shell script will examine your system and ask you questions
  1280. Xto determine how the $package package should be installed.  If you get stuck
  1281. Xon a question, you may use a ! shell escape to start a subshell or execute
  1282. Xa command.  Many of the questions will have default answers in square
  1283. Xbrackets--typing carriage return will give you the default.
  1284. X
  1285. XOn some of the questions which ask for file or directory names you are
  1286. Xallowed to use the ~name construct to specify the login directory belonging
  1287. Xto "name", even if you don't have a shell which knows about that.  Questions
  1288. Xwhere this is allowed will be marked "(~name ok)".
  1289. X
  1290. XEOH
  1291. Xrp="[Type carriage return to continue]"
  1292. Xecho $n "$rp $c"
  1293. X. myread
  1294. Xcat <<EOH
  1295. X
  1296. XMuch effort has been expended to ensure that this shell script will run
  1297. Xon any Unix system.  If despite that it blows up on you, your best bet is
  1298. Xto edit Configure and run it again. Also, let me (lwall@jpl-devvax.jpl.nasa.gov)
  1299. Xknow how I blew it.  If you can't run Configure for some reason, you'll have
  1300. Xto generate a config.sh file by hand.
  1301. X
  1302. XThis installation script affects things in two ways: 1) it may do direct
  1303. Xvariable substitutions on some of the files included in this kit, and
  1304. X2) it builds a config.h file for inclusion in C programs.  You may edit
  1305. Xany of these files as the need arises after running this script.
  1306. X
  1307. XIf you make a mistake on a question, there is no easy way to back up to it
  1308. Xcurrently.  The easiest thing to do is to edit config.sh and rerun all the
  1309. XSH files.  Configure will offer to let you do this before it runs the SH files.
  1310. X
  1311. XEOH
  1312. Xrp="[Type carriage return to continue]"
  1313. Xecho $n "$rp $c"
  1314. X. myread
  1315. X
  1316. X: get old answers, if there is a config file out there
  1317. Xif test -f ../config.sh; then
  1318. X    echo " "
  1319. X    dflt=y
  1320. X    rp="I see a config.sh file.  Did Configure make it on THIS system? [$dflt]"
  1321. X    echo $n "$rp $c"
  1322. X    . myread
  1323. X    case "$ans" in
  1324. X    n*) echo "OK, I'll ignore it.";;
  1325. X    *)  echo "Fetching default answers from your old config.sh file..."
  1326. X    tmp="$n"
  1327. X    ans="$c"
  1328. X        . ../config.sh
  1329. X    n="$tmp"
  1330. X    c="$ans"
  1331. X    ;;
  1332. X    esac
  1333. Xfi
  1334. X
  1335. X: find out where common programs are
  1336. Xecho " "
  1337. Xecho "Locating common programs..."
  1338. Xcat <<EOSC >loc
  1339. X$startsh
  1340. Xcase \$# in
  1341. X0) exit 1;;
  1342. Xesac
  1343. Xthing=\$1
  1344. Xshift
  1345. Xdflt=\$1
  1346. Xshift
  1347. Xfor dir in \$*; do
  1348. X    case "\$thing" in
  1349. X    .)
  1350. X    if test -d \$dir/\$thing; then
  1351. X        echo \$dir
  1352. X        exit 0
  1353. X    fi
  1354. X    ;;
  1355. X    *)
  1356. X    if test -f \$dir/\$thing; then
  1357. X        echo \$dir/\$thing
  1358. X        exit 0
  1359. X    elif test -f \$dir/\$thing.exe; then
  1360. X        : on Eunice apparently
  1361. X        echo \$dir/\$thing
  1362. X        exit 0
  1363. X    fi
  1364. X    ;;
  1365. X    esac
  1366. Xdone
  1367. Xecho \$dflt
  1368. Xexit 1
  1369. XEOSC
  1370. Xchmod +x loc
  1371. X$eunicefix loc
  1372. Xloclist="
  1373. Xcat
  1374. Xchgrp
  1375. Xchmod
  1376. Xcp
  1377. Xecho
  1378. Xexpr
  1379. Xgrep
  1380. Xln
  1381. Xls
  1382. Xmake
  1383. Xmv
  1384. Xrm
  1385. Xsed
  1386. Xsleep
  1387. Xtouch
  1388. Xtr
  1389. X"
  1390. Xtrylist="
  1391. XMcc
  1392. Xcpp
  1393. Xdate
  1394. Xemacs
  1395. Xline
  1396. Xlint
  1397. Xlp
  1398. Xlpr
  1399. Xmailx
  1400. Xmore
  1401. Xnroff
  1402. Xpg
  1403. Xpr
  1404. Xrmail
  1405. Xsendmail
  1406. Xshar
  1407. Xsmail
  1408. Xtar
  1409. Xtbl
  1410. Xtest
  1411. Xtroff
  1412. Xuname
  1413. Xuuname
  1414. Xvi
  1415. X"
  1416. Xfor file in $loclist; do
  1417. X    xxx=`loc $file $file $pth`
  1418. X    eval $file=$xxx
  1419. X    eval _$file=$xxx
  1420. X    case "$xxx" in
  1421. X    /*)
  1422. X    echo $file is in $xxx.
  1423. X    ;;
  1424. X    *)
  1425. X    echo "I don't know where $file is.  I hope it's in everyone's PATH."
  1426. X    ;;
  1427. X    esac
  1428. Xdone
  1429. Xecho " "
  1430. Xecho "Don't worry if any of the following aren't found..."
  1431. Xans=offhand
  1432. Xfor file in $trylist; do
  1433. X    xxx=`loc $file $file $pth`
  1434. X    eval $file=$xxx
  1435. X    eval _$file=$xxx
  1436. X    case "$xxx" in
  1437. X    /*)
  1438. X    echo $file is in $xxx.
  1439. X    ;;
  1440. X    *)
  1441. X    echo "I don't see $file out there, $ans."
  1442. X    ans=either
  1443. X    ;;
  1444. X    esac
  1445. Xdone
  1446. Xcase "$egrep" in
  1447. Xegrep)
  1448. X    echo "Substituting grep for egrep."
  1449. X    egrep=$grep
  1450. X    ;;
  1451. Xesac
  1452. Xcase "$test" in
  1453. Xtest)
  1454. X    echo "Hopefully test is built into your sh."
  1455. X    ;;
  1456. X/bin/test)
  1457. X    if sh -c "PATH= test true" >/dev/null 2>&1; then
  1458. X    echo "Using the test built into your sh."
  1459. X    test=test
  1460. X    fi
  1461. X    ;;
  1462. X*)
  1463. X    test=test
  1464. X    ;;
  1465. Xesac
  1466. Xcase "$echo" in
  1467. Xecho)
  1468. X    echo "Hopefully echo is built into your sh."
  1469. X    ;;
  1470. X/bin/echo)
  1471. X    echo " "
  1472. X    echo "Checking compatibility between /bin/echo and builtin echo (if any)..."
  1473. X    $echo $n "hi there$c" >foo1
  1474. X    echo $n "hi there$c" >foo2
  1475. X    if cmp foo1 foo2 >/dev/null 2>&1; then
  1476. X    echo "They are compatible.  In fact, they may be identical."
  1477. X    else
  1478. X    case "$n" in
  1479. X    '-n') n='' c='\c' ans='\c' ;;
  1480. X    *) n='-n' c='' ans='-n' ;;
  1481. X    esac
  1482. X    cat <<FOO
  1483. XThey are not compatible!  You are probably running ksh on a non-USG system.
  1484. XI'll have to use /bin/echo instead of the builtin, since Bourne shell doesn't
  1485. Xhave echo built in and we may have to run some Bourne shell scripts.  That
  1486. Xmeans I'll have to use $ans to suppress newlines now.  Life is ridiculous.
  1487. X
  1488. XFOO
  1489. X    rp="Your cursor should be here-->"
  1490. X    $echo $n "$rp$c"
  1491. X    . myread
  1492. X    fi
  1493. X    $rm -f foo1 foo2
  1494. X    ;;
  1495. X*)
  1496. X    : cross your fingers
  1497. X    echo=echo
  1498. X    ;;
  1499. Xesac
  1500. Xrmlist="$rmlist loc"
  1501. X
  1502. X: set up shell script to do ~ expansion
  1503. Xcat >filexp <<EOSS
  1504. X$startsh
  1505. X: expand filename
  1506. Xcase "\$1" in
  1507. X ~/*|~)
  1508. X    echo \$1 | $sed "s|~|\${HOME-\$LOGDIR}|"
  1509. X    ;;
  1510. X ~*)
  1511. X    if $test -f /bin/csh; then
  1512. X    /bin/csh -f -c "glob \$1"
  1513. X    echo ""
  1514. X    else
  1515. X    name=\`$expr x\$1 : '..\([^/]*\)'\`
  1516. X    dir=\`$sed -n -e "/^\${name}:/{s/^[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:\([^:]*\).*"'\$'"/\1/" -e p -e q -e '}' </etc/passwd\`
  1517. X    if $test ! -d "\$dir"; then
  1518. X        me=\`basename \$0\`
  1519. X        echo "\$me: can't locate home directory for: \$name" >&2
  1520. X        exit 1
  1521. X    fi
  1522. X    case "\$1" in
  1523. X    */*)
  1524. X        echo \$dir/\`$expr x\$1 : '..[^/]*/\(.*\)'\`
  1525. X        ;;
  1526. X    *)
  1527. X        echo \$dir
  1528. X        ;;
  1529. X    esac
  1530. X    fi
  1531. X    ;;
  1532. X*)
  1533. X    echo \$1
  1534. X    ;;
  1535. Xesac
  1536. XEOSS
  1537. Xchmod +x filexp
  1538. X$eunicefix filexp
  1539. X
  1540. X: determine where public executables go
  1541. Xcase "$bin" in
  1542. X'')
  1543. X    dflt=`loc . /bin /usr/local/bin /usr/lbin /usr/local /usr/bin`
  1544. X    ;;
  1545. X*)  dflt="$bin"
  1546. X    ;;
  1547. Xesac
  1548. Xcont=true
  1549. Xwhile $test "$cont" ; do
  1550. X    echo " "
  1551. X    rp="Where do you want to put the public executables? [$dflt]"
  1552. X    $echo $n "$rp $c"
  1553. X    . myread
  1554. X    bin="$ans"
  1555. X    bin=`filexp $bin`
  1556. X    if test -d $bin; then
  1557. X    cont=''
  1558. X    else
  1559. X    case "$fastread" in
  1560. X    yes) dflt=y;;
  1561. X    *) dflt=n;;
  1562. X    esac
  1563. X    rp="Directory $bin doesn't exist.  Use that name anyway? [$dflt]"
  1564. X    $echo $n "$rp $c"
  1565. X    . myread
  1566. X    dflt=''
  1567. X    case "$ans" in
  1568. X    y*) cont='';;
  1569. X    esac
  1570. X    fi
  1571. Xdone
  1572. X
  1573. X: see if date exists, if so, init c_date
  1574. Xif $test ! "x$date" = "x" ; then
  1575. X    c_date=`$date`
  1576. Xelse
  1577. X    c_date='date was unavailable at configuration'
  1578. Xfi
  1579. X
  1580. X: make some quick guesses about what we are up against
  1581. Xecho " "
  1582. X$echo $n "Hmm...  $c"
  1583. Xif $test -n "$uname"; then
  1584. X    uname_os=`uname -s`
  1585. X    uname_rel=`uname -r`
  1586. X    uname_rel=`expr "$uname" : "\(...\).*"`
  1587. Xelse
  1588. X    uname_os=unknown
  1589. X    uname_rel=unknown
  1590. Xfi
  1591. Xcat /usr/include/signal.h /usr/include/sys/signal.h >foo
  1592. Xif test `echo abc | tr a-z A-Z` = Abc ; then
  1593. X    echo "Looks kind of like a USG system, but we'll see..."
  1594. X    echo exit 1 >bsd
  1595. X    echo exit 0 >usg
  1596. X    echo exit 1 >v7
  1597. Xelif $contains SIGTSTP foo >/dev/null 2>&1 ; then
  1598. X    if $test "$uname_os" = "SunOs" -a "$uname_rel" = "4.1" ; then
  1599. X    echo "Looks like SunOs 4.1, a USG system, but we'll see..."
  1600. X    echo exit 1 >bsd
  1601. X    echo exit 0 >usg
  1602. X    echo exit 1 >v7
  1603. X    else
  1604. X    echo "Looks kind of like a BSD system, but we'll see..."
  1605. X    echo exit 0 >bsd
  1606. X    echo exit 1 >usg
  1607. X    echo exit 1 >v7
  1608. X    fi
  1609. Xelse
  1610. X    echo "Looks kind of like a version 7 system, but we'll see..."
  1611. X    echo exit 1 >bsd
  1612. X    echo exit 1 >usg
  1613. X    echo exit 0 >v7
  1614. Xfi
  1615. Xcase "$eunicefix" in
  1616. X*unixtovms*)
  1617. X    cat <<'EOI'
  1618. XThere is, however, a strange, musty smell in the air that reminds me of
  1619. Xsomething...hmm...yes...I've got it...there's a VMS nearby, or I'm a Blit.
  1620. XEOI
  1621. X    echo "exit 0" >eunice
  1622. X    d_eunice="$define"
  1623. X    ;;
  1624. X*)
  1625. X    echo " "
  1626. X    echo "Congratulations.  You aren't running Eunice."
  1627. X    d_eunice="$undef"
  1628. X    echo "exit 1" >eunice
  1629. X    ;;
  1630. Xesac
  1631. Xif test -f /xenix; then
  1632. X    echo "Actually, this looks more like a XENIX system..."
  1633. X    echo "exit 0" >xenix
  1634. Xelse
  1635. X    echo " "
  1636. X    echo "It's not Xenix..."
  1637. X    echo "exit 1" >xenix
  1638. Xfi
  1639. Xchmod +x xenix
  1640. X$eunicefix xenix
  1641. Xif test -f /venix; then
  1642. X    echo "Actually, this looks more like a VENIX system..."
  1643. X    echo "exit 0" >venix
  1644. Xelse
  1645. X    echo " "
  1646. X    if xenix; then
  1647. X    : null
  1648. X    else
  1649. X    echo "Nor is it Venix..."
  1650. X    fi
  1651. X    echo "exit 1" >venix
  1652. Xfi
  1653. Xchmod +x bsd usg v7 eunice venix
  1654. X$eunicefix bsd usg v7 eunice venix
  1655. Xrm -rf foo
  1656. Xrmlist="$rmlist bsd usg v7 eunice venix xenix"
  1657. X
  1658. X: determine text processor to use, default to troff if found.
  1659. Xcase "$roff" in
  1660. X'')
  1661. X    if $test -n "$troff"; then
  1662. X    dflt="$troff"
  1663. X    else
  1664. X    dflt=$nroff
  1665. X    fi
  1666. X    ;;
  1667. X*)  dflt="$roff";;
  1668. Xesac
  1669. X$cat <<EOM
  1670. X
  1671. XThe Elm manuals are set up for troff.  If you only have nroff, it can
  1672. Xbe used, but the manuals will not be as readable.  If you use an alternate
  1673. Xprocessor for troff/nroff documents it can be specified here.
  1674. X
  1675. XEOM
  1676. Xcont=true
  1677. Xwhile $test "$cont" ; do
  1678. X    echo " "
  1679. X    echo "Give the name of the program used to process manual pages on your"
  1680. X    $echo $n "system: [$dflt] $c"
  1681. X    rp="Preferred troff/nroff program: [$dflt]"
  1682. X    . myread
  1683. X    roff=$ans;
  1684. X    if $test -f "$ans"; then
  1685. X    cont=''
  1686. X    else
  1687. X    lookup=`loc "$ans" "" . $pth`
  1688. X    if $test -f "$lookup"; then
  1689. X        cont=''
  1690. X        roff=$lookup
  1691. X    else
  1692. X        if $test "$fastread" = yes; then
  1693. X        dflt=y
  1694. X        else
  1695. X        dflt=n
  1696. X        fi
  1697. X        echo "Text processor $ans doesn't exist."
  1698. X        rp="Use that name anyway? [$dflt]"
  1699. X        $echo $n "$rp $c"
  1700. X        . myread
  1701. X        dflt=''
  1702. X        case "$ans" in
  1703. X        y*) cont='';;
  1704. X        esac
  1705. X    fi
  1706. X    fi
  1707. Xdone
  1708. X
  1709. X: determine where manual pages go
  1710. X$cat <<EOM
  1711. X  
  1712. X$package has manual pages that need to be installed in source form.
  1713. XEOM
  1714. Xcase "$mansrc" in
  1715. X'')
  1716. X    dflt=`loc . /usr/man/man1 /usr/man/mann /usr/man/manl /usr/man/local/man1 /usr/man/u_man/man1 /usr/man/man1 /usr/man/man.L`
  1717. X    ;;
  1718. X*)  dflt="$mansrc"
  1719. X    ;;
  1720. Xesac
  1721. Xcont=true
  1722. Xwhile $test "$cont" ; do
  1723. X    echo " "
  1724. X    rp="Where do the manual pages (source) go? [$dflt]"
  1725. X    $echo $n "$rp $c"
  1726. X    . myread
  1727. X    mansrc=`filexp "$ans"`
  1728. X    if $test -d "$mansrc"; then
  1729. X    cont=''
  1730. X    else
  1731. X    if $test "$fastread" = yes; then
  1732. X        dflt=y
  1733. X    else
  1734. X        dflt=n
  1735. X    fi
  1736. X    rp="Directory $mansrc doesn't exist.  Use that name anyway? [$dflt]"
  1737. X    $echo $n "$rp $c"
  1738. X    . myread
  1739. X    dflt=''
  1740. X    case "$ans" in
  1741. X    y*) cont='';;
  1742. X    esac
  1743. X    fi
  1744. Xdone
  1745. Xcase "$mansrc" in
  1746. X*l)
  1747. X    manext=l
  1748. X    ;;
  1749. X*n)
  1750. X    manext=n
  1751. X    ;;
  1752. X*o)
  1753. X    manext=l
  1754. X    ;;
  1755. X*p)
  1756. X    manext=n
  1757. X    ;;
  1758. X*C)
  1759. X    manext=C
  1760. X    ;;
  1761. X*L)
  1762. X    manext=L
  1763. X    ;;
  1764. X*)
  1765. X    manext=1
  1766. X    ;;
  1767. Xesac
  1768. X
  1769. X: default clear to no extra flags
  1770. Xxencf=
  1771. Xxenlf=
  1772. Xd_xenix="$undef"
  1773. Xd_bsd="$undef"
  1774. X: see if we are xenix 
  1775. Xif xenix; then
  1776. X    d_xenix="$define"
  1777. X:    now are we a 286
  1778. X    case "`uname -p`" in
  1779. X    i80286) 
  1780. X        xencf="-LARGE -Ml2et32"
  1781. X        xenlf="-Ml2t32 -F 5600 -SEG 512"
  1782. X      esac
  1783. Xfi
  1784. Xif bsd; then
  1785. X    d_bsd="$define"
  1786. Xfi
  1787. X
  1788. X: see what memory models we can support
  1789. Xcase "$models" in
  1790. X'')
  1791. X    : We may not use Cppsym or we get a circular dependency through cc.
  1792. X    : But this should work regardless of which cc we eventually use.
  1793. X    cat >pdp11.c <<'EOP'
  1794. Xmain() {
  1795. X#ifdef pdp11
  1796. X    exit(0);
  1797. X#else
  1798. X    exit(1);
  1799. X#endif
  1800. X}
  1801. XEOP
  1802. X    cc -o pdp11 pdp11.c >/dev/null 2>&1
  1803. X    if pdp11 2>/dev/null; then
  1804. X    dflt='unsplit split'
  1805. X    else
  1806. X    ans=`loc . X /lib/small /lib/large /usr/lib/small /usr/lib/large /lib/medium /usr/lib/medium /lib/huge`
  1807. X    case "$ans" in
  1808. X    X) dflt='none';;
  1809. X    *)  if $test -d /lib/small || $test -d /usr/lib/small; then
  1810. X        dflt='small'
  1811. X        else
  1812. X        dflt=''
  1813. X        fi
  1814. X        if $test -d /lib/medium || $test -d /usr/lib/medium; then
  1815. X        dflt="$dflt medium"
  1816. X        fi
  1817. X        if $test -d /lib/large || $test -d /usr/lib/large; then
  1818. X        dflt="$dflt large"
  1819. X        fi
  1820. X        if $test -d /lib/huge || $test -d /usr/lib/huge; then
  1821. X        dflt="$dflt huge"
  1822. X        fi
  1823. X    esac
  1824. X    fi
  1825. X    ;;
  1826. X*)  dflt="$models" ;;
  1827. Xesac
  1828. Xif $test -z "$xencf" ; then
  1829. X$cat <<EOM
  1830. XSome systems have different model sizes.  On most systems they are called
  1831. Xsmall, medium, large, and huge.  On the PDP11 they are called unsplit and
  1832. Xsplit.  If your system doesn't support different memory models, say "none".
  1833. XIf you wish to force everything to one memory model, say "none" here and
  1834. Xput the appropriate flags later when it asks you for other cc and ld flags.
  1835. XXenix and Venix systems may wish to put "none" and let the compiler figure
  1836. Xthings out.
  1837. X(In the following question multiple model names should be space separated.)
  1838. X
  1839. XEOM
  1840. Xrp="Which models are supported? [$dflt]"
  1841. X$echo $n "$rp $c"
  1842. X. myread
  1843. Xmodels="$ans"
  1844. X
  1845. Xcase "$models" in
  1846. Xnone)
  1847. X    small=''
  1848. X    medium=''
  1849. X    large=''
  1850. X    huge=''
  1851. X    unsplit=''
  1852. X    split=''
  1853. X    ;;
  1854. X*split)
  1855. X    case "$split" in
  1856. X    '') 
  1857. X    if $contains '\-i' $mansrc/man1/ld.1 >/dev/null 2>&1 || \
  1858. X       $contains '\-i' $mansrc/man1/cc.1 >/dev/null 2>&1; then
  1859. X        dflt='-i'
  1860. X    else
  1861. X        dflt='none'
  1862. X    fi
  1863. X    ;;
  1864. X    *) dflt="$split";;
  1865. X    esac
  1866. X    rp="What flag indicates separate I and D space? [$dflt]"
  1867. X    $echo $n "$rp $c"
  1868. X    . myread
  1869. X    case "$ans" in
  1870. X    none) ans='';;
  1871. X    esac
  1872. X    split="$ans"
  1873. X    unsplit=''
  1874. X    ;;
  1875. X*large*|*small*|*medium*|*huge*)
  1876. X    case "$models" in
  1877. SHAR_EOF
  1878. echo "End of part 1"
  1879. echo "File Configure is continued in part 2"
  1880. echo "2" > s2_seq_.tmp
  1881. exit 0
  1882.  
  1883. exit 0 # Just in case...
  1884.