home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume32 / ecu / part04 < prev    next >
Text File  |  1992-09-11  |  58KB  |  2,200 lines

  1. Newsgroups: comp.sources.misc
  2. From: wht@n4hgf.mt-park.ga.us (Warren Tucker)
  3. Subject:  v32i039:  ecu - ECU Asynchronous Communications v3.20, Part04/40
  4. Message-ID: <1992Sep11.192317.6420@sparky.imd.sterling.com>
  5. X-Md4-Signature: 05cbcc207ba3a515c581f6323a5ffb00
  6. Date: Fri, 11 Sep 1992 19:23:17 GMT
  7. Approved: kent@sparky.imd.sterling.com
  8.  
  9. Submitted-by: wht@n4hgf.mt-park.ga.us (Warren Tucker)
  10. Posting-number: Volume 32, Issue 39
  11. Archive-name: ecu/part04
  12. Environment: SCO,XENIX,ISC,SUNOS,SYSVR4,HDB,Curses
  13. Supersedes: ecu: Volume 21, Issue 53-89
  14.  
  15. ---- Cut Here and feed the following to sh ----
  16. #!/bin/sh
  17. # this is ecu320.04 (part 4 of ecu320)
  18. # do not concatenate these parts, unpack them in order with /bin/sh
  19. # file Make.src continued
  20. #
  21. if test ! -r _shar_seq_.tmp; then
  22.     echo 'Please unpack part 1 first!'
  23.     exit 1
  24. fi
  25. (read Scheck
  26.  if test "$Scheck" != 4; then
  27.     echo Please unpack part "$Scheck" next!
  28.     exit 1
  29.  else
  30.     exit 0
  31.  fi
  32. ) < _shar_seq_.tmp || exit 1
  33. if test ! -f _shar_wnt_.tmp; then
  34.     echo 'x - still skipping Make.src'
  35. else
  36. echo 'x - continuing file Make.src'
  37. sed 's/^X//' << 'SHAR_EOF' >> 'Make.src' &&
  38. X    cd help; $(MAKE) -$(MAKEFLAGS) install
  39. X    @if [ ! -f $(HDBLIBDIR)/Devices ]; then \
  40. X        cp models/*.mi $(ECULIBDIR); \
  41. X        echo "==> edit $(ECULIBDIR)/*.mi for your tty lines per ecu.man"; \
  42. X    fi
  43. X    @echo '\012'Installation complete.  Follow the yellow brick road.
  44. X
  45. Xshar.fls: Makefile
  46. X    csh -c 'ls $(SHARFLS) | sort > shar.fls'
  47. X
  48. X# for shar 3.461
  49. Xshar: shar.fls
  50. X    csh -c 'shar -F -c -s "wht@n4hgf.Mt-Park.GA.US" -a \
  51. X    -E 'SCO,XENIX,ISC,SUNOS,SYSVR4,HDB,Curses' \
  52. X-n$(ECUSHARNAME) -L57 -o/tmp/$(ECUSHARNAME) $(SHARFLS)' 
  53. X    cd doc;make
  54. X    shar -F -c -s "wht@n4hgf.Mt-Park.GA.US" -a \
  55. X    -E 'SCO,XENIX,ISC,SUNOS,SYSVR4,HDB,Curses' \
  56. X-n$(MANSHARNAME) -L57 -o/tmp/$(MANSHARNAME) doc/ecu.man doc/proc.man
  57. X
  58. Xcpio: shar.fls
  59. X    @echo Making /tmp/$(ECUSHARNAME)cpio.Z
  60. X    cd doc;make
  61. X    rm -f /tmp/ecu.cpio.fls
  62. X    cat shar.fls > /tmp/ecu.cpio.fls
  63. X    echo doc/ecu.man >> /tmp/ecu.cpio.fls
  64. X    echo doc/proc.man >> /tmp/ecu.cpio.fls
  65. X    sed -e 's:^:ecu/:' < /tmp/ecu.cpio.fls > cpio.fls
  66. X    rm -f /tmp/ecu.cpio.fls
  67. X    cd ..;cat ecu/cpio.fls | sort -y | cpio -oc | \
  68. X         compress > /tmp/$(ECUSHARNAME)cpio.Z
  69. X    zcat /tmp/$(ECUSHARNAME)cpio.Z | cpio -itv | head
  70. X
  71. X# tools for making ecu
  72. Xafterlint: afterlint.c
  73. X    cc -O afterlint.c -o $@
  74. X    -if [ -x /usr/bin/mcs ]; then /usr/bin/mcs -d $@; fi
  75. X    strip $@
  76. X
  77. Xmkoldproto: mkoldproto.l
  78. X    lex mkoldproto.l
  79. X    cc -O lex.yy.c -ll -o $@
  80. X    -if [ -x /usr/bin/mcs ]; then /usr/bin/mcs -d $@; fi
  81. X    strip $@
  82. X    rm lex.yy.?
  83. X
  84. X# lint is outdated old biddy, but is worth consulting once per millineum
  85. X# hack LINT_ARGS into your config.local file
  86. Xlint.out: Makefile $(SRC)
  87. X    lint $(LINT_ARGS) $(SRC) > lint.out
  88. X
  89. Xneat:
  90. X    rm -f core tags cscope.out makedate.c makedate.o
  91. X    rm -f *~ *# *.orig *.rej make.log a.out
  92. X    rm -f */*~ */*# */*.orig */*.rej
  93. X    rm -f makedirs kbdtest kbdtest3
  94. X    rm -f bperr/bperr shar.fls cpio.fls /tmp/ecu.cpio.fls
  95. X    rm -f .make.* depend.tmp eddep.tmp Makefile.new *.bak *.BAK
  96. X    cd help; $(MAKE) -$(MAKEFLAGS) neat
  97. X    cd z; $(MAKE) -$(MAKEFLAGS) neat
  98. X    cd sea; $(MAKE) -$(MAKEFLAGS) neat
  99. X    if [ $(USE_ECUUNGETTY) = yes ]; then \
  100. X        cd ecuungetty; $(MAKE) -$(MAKEFLAGS) neat; \
  101. X    fi
  102. X
  103. Xclean: neat
  104. X    rm -f $(OBJ) makedirs.o
  105. X    rm -f config kbdtest kbdtest3 makedirs afterlint mkoldproto
  106. X    cd help; $(MAKE) -$(MAKEFLAGS) clean
  107. X    cd z; $(MAKE) -$(MAKEFLAGS) clean
  108. X    cd sea; $(MAKE) -$(MAKEFLAGS) clean
  109. X    if [ $(USE_ECUUNGETTY) = yes ]; then \
  110. X        cd ecuungetty; $(MAKE) -$(MAKEFLAGS) clean; \
  111. X    fi
  112. X    -if [ -f gendial/Makefile ]; then \
  113. X        cd gendial; $(MAKE) -$(MAKEFLAGS) clean; \
  114. X    fi
  115. X    -if [ -f timetest/Makefile ]; then \
  116. X        cd timetest; $(MAKE) -$(MAKEFLAGS) clean; \
  117. X    fi
  118. X
  119. Xclobber: clean
  120. X    rm -f $(PROGRAM) $(PROGRAM)~
  121. X    rm -f kbdtest3.out
  122. X    cd help; $(MAKE) -$(MAKEFLAGS) clobber
  123. X    cd z; $(MAKE) -$(MAKEFLAGS) clobber
  124. X    cd sea; $(MAKE) -$(MAKEFLAGS) clobber
  125. X    if [ $(USE_ECUUNGETTY) = yes ]; then \
  126. X        cd ecuungetty; $(MAKE) -$(MAKEFLAGS) clobber; \
  127. X    fi
  128. X
  129. X#regenerate .o:.h dependencies automatically
  130. Xdepend:
  131. X    rm -f depend.tmp
  132. X    if test '$(SRC)' ;\
  133. X    then (grep '^#include' $(SRC) \
  134. X    | sed    -e 's?:[^<]*<\([^>]*\)>.*?: /usr/include/\1?'\
  135. X        -e 's?:[^"]*"\([^"]*\)".*?: \1?'\
  136. X        -e 's?\(.*\)\.c?\1.o?'\
  137. X     >> depend.tmp) ;\
  138. X    fi
  139. X
  140. X    echo '/^# DO NOT DELETE THIS LINE' >eddep.tmp
  141. X    echo '.+1,$$d' >>eddep.tmp
  142. X    echo 'r depend.tmp' >> eddep.tmp
  143. X    echo 'w' >> eddep.tmp
  144. X    cp Makefile Makefile.new
  145. X    ed Makefile.new < eddep.tmp
  146. X    rm eddep.tmp depend.tmp
  147. X    echo '# DEPENDENCIES MUST END AT END OF FILE' >>Makefile.new
  148. X    echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY'>>Makefile.new
  149. X    echo '# see make depend above'>>Makefile.new
  150. X    mv Makefile Makefile.bak
  151. X    mv Makefile.new Makefile
  152. X    cd help; $(MAKE) -$(MAKEFLAGS) depend
  153. X    cd z; $(MAKE) -$(MAKEFLAGS) depend
  154. X    cd sea; $(MAKE) -$(MAKEFLAGS) depend
  155. X    if [ $(USE_ECUUNGETTY) = yes ]; then \
  156. X        cd ecuungetty; $(MAKE) -$(MAKEFLAGS) depend; \
  157. X    fi
  158. X
  159. X# DO NOT DELETE THIS LINE
  160. X# DEPENDENCIES MUST END AT END OF FILE
  161. X# IF YOU PUT STUFF HERE IT WILL GO AWAY
  162. X# see make depend above
  163. SHAR_EOF
  164. echo 'File Make.src is complete' &&
  165. chmod 0644 Make.src ||
  166. echo 'restore of Make.src failed'
  167. Wc_c="`wc -c < 'Make.src'`"
  168. test 9934 -eq "$Wc_c" ||
  169.     echo 'Make.src: original size 9934, current size' "$Wc_c"
  170. rm -f _shar_wnt_.tmp
  171. fi
  172. # ============= ecufriend/Make.src ==============
  173. if test ! -d 'ecufriend'; then
  174.     echo 'x - creating directory ecufriend'
  175.     mkdir 'ecufriend'
  176. fi
  177. if test -f 'ecufriend/Make.src' -a X"$1" != X"-c"; then
  178.     echo 'x - skipping ecufriend/Make.src (File already exists)'
  179.     rm -f _shar_wnt_.tmp
  180. else
  181. > _shar_wnt_.tmp
  182. echo 'x - extracting ecufriend/Make.src (Text)'
  183. sed 's/^X//' << 'SHAR_EOF' > 'ecufriend/Make.src' &&
  184. X#----------------------------------------------------------------
  185. X# Makefile for sample ecufriend
  186. X# wht@n4hgf.Mt-Park.GA.US
  187. X#----------------------------------------------------------------
  188. X#+:EDITS:*/
  189. X#:09-10-1992-13:58-wht@n4hgf-ECU release 3.20
  190. X#:08-22-1992-15:38-wht@n4hgf-ECU release 3.20 BETA
  191. X#:08-26-1991-05:59-wht@n4hgf2-default target was .o not executable
  192. X#:07-25-1991-12:56-wht@n4hgf-ECU release 3.10
  193. X#:04-21-1991-12:05-wht@n4hgf-convert to Make.src
  194. X
  195. XSHELL = /bin/sh
  196. XPROGRAM = ecufriend
  197. X
  198. X.SUFFIXES:
  199. X.SUFFIXES: .c .o .h
  200. X
  201. X.c.o:;    $(BINTIME) $(CC) -c $(CFLAGS) $*.c 
  202. X
  203. XOBJ = $(PROGRAM).o
  204. X
  205. Xall: $(PROGRAM)
  206. X
  207. X$(PROGRAM): $(OBJ)
  208. X    $(BINTIME) $(CC) -o $@ $(LDFLAGS) $(OBJ) $(LIBS)
  209. X
  210. X$(OBJ): Makefile
  211. X$(OBJ): ../ecushm.h
  212. X
  213. Xclean:
  214. X    rm -f $(OBJ) core Makefile.bak tags cscope.out
  215. X
  216. Xclobber: clean
  217. X    rm -f $(PROGRAM)
  218. X
  219. SHAR_EOF
  220. chmod 0644 ecufriend/Make.src ||
  221. echo 'restore of ecufriend/Make.src failed'
  222. Wc_c="`wc -c < 'ecufriend/Make.src'`"
  223. test 810 -eq "$Wc_c" ||
  224.     echo 'ecufriend/Make.src: original size 810, current size' "$Wc_c"
  225. rm -f _shar_wnt_.tmp
  226. fi
  227. # ============= ecuungetty/Make.src ==============
  228. if test ! -d 'ecuungetty'; then
  229.     echo 'x - creating directory ecuungetty'
  230.     mkdir 'ecuungetty'
  231. fi
  232. if test -f 'ecuungetty/Make.src' -a X"$1" != X"-c"; then
  233.     echo 'x - skipping ecuungetty/Make.src (File already exists)'
  234.     rm -f _shar_wnt_.tmp
  235. else
  236. > _shar_wnt_.tmp
  237. echo 'x - extracting ecuungetty/Make.src (Text)'
  238. sed 's/^X//' << 'SHAR_EOF' > 'ecuungetty/Make.src' &&
  239. X#+---------------------------------------------------------------
  240. X# Makefile for ecuungetty
  241. X# wht@n4hgf.Mt-Park.GA.US
  242. X#
  243. X# must be root to run make install
  244. X#----------------------------------------------------------------
  245. X#+:EDITS:*/
  246. X#:09-10-1992-13:59-wht@n4hgf-ECU release 3.20
  247. X#:08-22-1992-15:38-wht@n4hgf-ECU release 3.20 BETA
  248. X#:02-10-1992-05:47-wht@n4hgf-mcs avail on some systems when non-COFF produced
  249. X#:07-25-1991-12:57-wht@n4hgf-ECU release 3.10
  250. X#:04-21-1991-12:05-wht@n4hgf-convert to Make.src
  251. X
  252. XSHELL = /bin/sh
  253. XPROGRAM = ecuungetty
  254. XINSTALLABLE = $(ECULIBDIR)/$(PROGRAM)
  255. X
  256. X.SUFFIXES:
  257. X.SUFFIXES: .c .o .h
  258. X
  259. X.c.o:;    $(BINTIME) $(CC) -c $(CFLAGS) $*.c 
  260. X
  261. XSRC = \
  262. X    ecuungetty.c
  263. X
  264. XOBJ = \
  265. X    ../ecuuclc.o\
  266. X    ../ecuLCK.o\
  267. X    ../utmpstat.o\
  268. X    ../bamboozle.o\
  269. X    ../ttynaming.o\
  270. X    ecuungetty.o
  271. X
  272. Xall: $(PROGRAM)
  273. X
  274. X$(PROGRAM): $(OBJ)
  275. X    $(BINTIME) $(CC) -o $@ $(LDFLAGS) $(OBJ) $(LIBS)
  276. X
  277. X$(OBJ): Makefile
  278. X
  279. Xinstall: $(PROGRAM)
  280. X    ../makedirs -m 755 $(ECULIBDIR)
  281. X    rm -f $(INSTALLABLE)
  282. X    if [ -f $(INSTALLABLE) ]; then mv $(INSTALLABLE) $(INSTALLABLE)~; fi
  283. X    cp $(PROGRAM) $(INSTALLABLE)
  284. X    strip $(INSTALLABLE)
  285. X    -if [ -x /usr/bin/mcs ]; then /usr/bin/mcs -d $(INSTALLABLE); fi
  286. X    chown root $(INSTALLABLE)
  287. X    chgrp bin $(INSTALLABLE)
  288. X    chmod 4711 $(INSTALLABLE)
  289. X
  290. Xneat:
  291. X    rm -f .make.* depend.tmp eddep.tmp Makefile.new *.bak *.BAK
  292. X    rm -f core tags cscope.out
  293. X    -rm -f *~ *# *.orig *.rej make.log a.out
  294. X
  295. Xclean: neat
  296. X    rm -f $(PROGRAM).o
  297. X
  298. Xclobber: clean
  299. X    rm -f $(PROGRAM)
  300. X
  301. X../bamboozle.o: ../bamboozle.c
  302. X    cd ..;make bamboozle.o
  303. X
  304. X../utmpstat.o: ../utmpstat.c
  305. X    cd ..;make utmpstat.o
  306. X
  307. X../ecuuclc.o: ../ecuuclc.c
  308. X    cd ..;make ecuuclc.o
  309. X
  310. X../ecuLCK.o: ../ecuLCK.c
  311. X    cd ..;make ecuLCK.o
  312. X
  313. X../ttynaming.o: ../ttynaming.c
  314. X    cd ..;make ttynaming.o
  315. X
  316. X#regenerate .o:.h dependencies automatically
  317. Xdepend:
  318. X    rm -f depend.tmp
  319. X    if test '$(SRC)' ;\
  320. X    then (grep '^#include' $(SRC) \
  321. X    | sed    -e 's?:[^<]*<\([^>]*\)>.*?: /usr/include/\1?'\
  322. X        -e 's?:[^"]*"\([^"]*\)".*?: \1?'\
  323. X        -e 's?\(.*\)\.c?\1.o?'\
  324. X     >> depend.tmp) ;\
  325. X    fi
  326. X
  327. X    echo '/^# DO NOT DELETE THIS LINE' >eddep.tmp
  328. X    echo '.+1,$$d' >>eddep.tmp
  329. X    echo 'r depend.tmp' >> eddep.tmp
  330. X    echo 'w' >> eddep.tmp
  331. X    cp Makefile Makefile.new
  332. X    ed Makefile.new < eddep.tmp
  333. X    rm eddep.tmp depend.tmp
  334. X    echo '# DEPENDENCIES MUST END AT END OF FILE' >>Makefile.new
  335. X    echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY'>>Makefile.new
  336. X    echo '# see make depend above'>>Makefile.new
  337. X    mv Makefile Makefile.bak
  338. X    mv Makefile.new Makefile
  339. X
  340. X# DO NOT DELETE THIS LINE
  341. X# DEPENDENCIES MUST END AT END OF FILE
  342. X# IF YOU PUT STUFF HERE IT WILL GO AWAY
  343. X# see make depend above
  344. SHAR_EOF
  345. chmod 0644 ecuungetty/Make.src ||
  346. echo 'restore of ecuungetty/Make.src failed'
  347. Wc_c="`wc -c < 'ecuungetty/Make.src'`"
  348. test 2527 -eq "$Wc_c" ||
  349.     echo 'ecuungetty/Make.src: original size 2527, current size' "$Wc_c"
  350. rm -f _shar_wnt_.tmp
  351. fi
  352. # ============= gendial/Make.src ==============
  353. if test ! -d 'gendial'; then
  354.     echo 'x - creating directory gendial'
  355.     mkdir 'gendial'
  356. fi
  357. if test -f 'gendial/Make.src' -a X"$1" != X"-c"; then
  358.     echo 'x - skipping gendial/Make.src (File already exists)'
  359.     rm -f _shar_wnt_.tmp
  360. else
  361. > _shar_wnt_.tmp
  362. echo 'x - extracting gendial/Make.src (Text)'
  363. sed 's/^X//' << 'SHAR_EOF' > 'gendial/Make.src' &&
  364. X#+-------------------------------------------------------------------
  365. X# ECU generic dialer makefile
  366. X# wht@n4hgf.Mt-Park.GA.US
  367. X#
  368. X# you must be root to run this
  369. X# edit PROGRAMS to choose the dialers you want
  370. X#--------------------------------------------------------------------
  371. X#+:EDITS:*/
  372. X#:09-10-1992-13:59-wht@n4hgf-ECU release 3.20
  373. X#:08-22-1992-15:38-wht@n4hgf-ECU release 3.20 BETA
  374. X#:07-27-1992-05:04-wht@n4hgf-fix COMMON_OBJ misdeclaration
  375. X#:07-17-1992-18:26-wht@n4hgf-use ../nap.o
  376. X#:05-11-1992-17:03-wht@gyro-add dialgT3000
  377. X#:01-26-1992-15:31-wht@n4hgf-gendial 1.2 for ecu 3.20- better hangup
  378. X#:07-25-1991-12:58-wht@n4hgf-ECU release 3.10
  379. X#:04-21-1991-12:05-wht@n4hgf-convert to Make.src
  380. X
  381. XPROGRAMS = \
  382. X    dialgHA24 
  383. X#    dialgHA24 \
  384. X#    dialgMC9624 \
  385. X#    dialgMPAD \
  386. X#    dialgT2500 \
  387. X#    dialgT3000 \
  388. X#    dialgTBPlus \
  389. X#    dialgUSR24
  390. X
  391. XSHELL = /bin/sh
  392. X
  393. XCFLAGS_EXTRA = -DHDB_UUCP
  394. X
  395. X.SUFFIXES:
  396. X.SUFFIXES: .c .o .h
  397. X.c.o:;    $(BINTIME) $(CC) -c $(CFLAGS) $*.c 
  398. X
  399. XSRC = \
  400. X    dceHA24.c \
  401. X    dceMC9624.c \
  402. X    dceMPAD.c \
  403. X    dceT2500.c \
  404. X    dceT3000.c \
  405. X    dceTBPlus.c \
  406. X    dceUSR24.c \
  407. X    gendial.c
  408. X
  409. XCOMMON_OBJ = \
  410. X    ../nap.o \
  411. X    gendial.o
  412. X
  413. Xall:    $(PROGRAMS)
  414. X
  415. XdialgMC9624: $(COMMON_OBJ) dceMC9624.o
  416. X    $(BINTIME) $(CC) $(LDFLAGS) $(COMMON_OBJ) dceMC9624.o $(LIBS) -o $@
  417. X
  418. XdceTBPlus.o: tbit.sync.h
  419. XdialgTBPlus: $(COMMON_OBJ) dceTBPlus.o
  420. X    $(BINTIME) $(CC) $(LDFLAGS) $(COMMON_OBJ) dceTBPlus.o $(LIBS) -o $@
  421. X
  422. XdceT2500.o: tbit.sync.h
  423. XdialgT2500: $(COMMON_OBJ) dceT2500.o
  424. X    $(BINTIME) $(CC) $(LDFLAGS) $(COMMON_OBJ) dceT2500.o $(LIBS) -o $@
  425. X
  426. XdceT3000.o: tbit.sync.h
  427. XdialgT3000: $(COMMON_OBJ) dceT3000.o
  428. X    $(BINTIME) $(CC) $(LDFLAGS) $(COMMON_OBJ) dceT3000.o $(LIBS) -o $@
  429. X
  430. XdialgHA24: $(COMMON_OBJ) dceHA24.o
  431. X    $(BINTIME) $(CC) $(LDFLAGS) $(COMMON_OBJ) dceHA24.o $(LIBS) -o $@
  432. X
  433. XdialgUSR24: $(COMMON_OBJ) dceUSR24.o
  434. X    $(BINTIME) $(CC) $(LDFLAGS) $(COMMON_OBJ) dceUSR24.o $(LIBS) -o $@
  435. X
  436. XdialgMPAD: $(COMMON_OBJ) dceMPAD.o
  437. X    $(BINTIME) $(CC) $(LDFLAGS) $(COMMON_OBJ) dceMPAD.o $(LIBS) -o $@
  438. X
  439. X../nap.o:
  440. X    cd ..;make nap.o
  441. X
  442. Xinstall: $(PROGRAMS)
  443. X    -chmod +x ./install_dialer
  444. X    ./install_dialer $(HDBLIBDIR) $(PROGRAMS)
  445. X
  446. Xneat:
  447. X    rm -f .make.* *.tmp Makefile.new *.bak *.BAK
  448. X    rm -f core tags cscope.out
  449. X
  450. Xclean: neat
  451. X    rm -f *.o
  452. X
  453. Xclobber: clean
  454. X    rm -f dialg*
  455. X
  456. X#regenerate .o:.h dependencies automatically
  457. Xdepend:
  458. X    rm -f depend.tmp
  459. X    if test '$(SRC)' ;\
  460. X    then (grep '^#include' $(SRC) \
  461. X    | sed    -e 's?:[^<]*<\([^>]*\)>.*?: /usr/include/\1?'\
  462. X        -e 's?:[^"]*"\([^"]*\)".*?: \1?'\
  463. X        -e 's?\(.*\)\.c?\1.o?'\
  464. X     >> depend.tmp) ;\
  465. X    fi
  466. X
  467. X    echo '/^# DO NOT DELETE THIS LINE' >eddep.tmp
  468. X    echo '.+1,$$d' >>eddep.tmp
  469. X    echo 'r depend.tmp' >> eddep.tmp
  470. X    echo 'w' >> eddep.tmp
  471. X    cp Makefile Makefile.new
  472. X    ed Makefile.new < eddep.tmp
  473. X    rm eddep.tmp depend.tmp
  474. X    echo '# DEPENDENCIES MUST END AT END OF FILE' >>Makefile.new
  475. X    echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY'>>Makefile.new
  476. X    echo '# see make depend above'>>Makefile.new
  477. X    mv Makefile Makefile.bak
  478. X    mv Makefile.new Makefile
  479. X
  480. X# DO NOT DELETE THIS LINE
  481. X# see make depend above
  482. SHAR_EOF
  483. chmod 0644 gendial/Make.src ||
  484. echo 'restore of gendial/Make.src failed'
  485. Wc_c="`wc -c < 'gendial/Make.src'`"
  486. test 2943 -eq "$Wc_c" ||
  487.     echo 'gendial/Make.src: original size 2943, current size' "$Wc_c"
  488. rm -f _shar_wnt_.tmp
  489. fi
  490. # ============= help/Make.src ==============
  491. if test ! -d 'help'; then
  492.     echo 'x - creating directory help'
  493.     mkdir 'help'
  494. fi
  495. if test -f 'help/Make.src' -a X"$1" != X"-c"; then
  496.     echo 'x - skipping help/Make.src (File already exists)'
  497.     rm -f _shar_wnt_.tmp
  498. else
  499. > _shar_wnt_.tmp
  500. echo 'x - extracting help/Make.src (Text)'
  501. sed 's/^X//' << 'SHAR_EOF' > 'help/Make.src' &&
  502. X#  CHK=0xFF6D
  503. X#+---------------------------------------------------------------
  504. X# Makefile for helpgen (ecu help system)
  505. X#----------------------------------------------------------------
  506. X#+:EDITS:*/
  507. X#:09-10-1992-13:59-wht@n4hgf-ECU release 3.20
  508. X#:08-22-1992-15:39-wht@n4hgf-ECU release 3.20 BETA
  509. X#:07-25-1991-12:58-wht@n4hgf-ECU release 3.10
  510. X#:04-21-1991-13:31-wht@n4hgf-convert to Make.src
  511. X
  512. XSHELL = /bin/sh
  513. XPROGRAM = helpgen
  514. X
  515. X.SUFFIXES:
  516. X.SUFFIXES: .c .o .h .src .data
  517. X.c.o:;    $(BINTIME) $(CC) -c $(CFLAGS) $*.c 
  518. X
  519. XSRC    = \
  520. X    $(PROGRAM).c\
  521. X    util.c
  522. X
  523. XOBJ    = \
  524. X    $(PROGRAM).o\
  525. X    util.o
  526. X
  527. Xall: $(PROGRAM) ecuhelp.data # ecuhelp.doc
  528. X
  529. X$(PROGRAM): $(OBJ)
  530. X    $(BINTIME) $(CC) $(LDFLAGS) $(OBJ) $(LIBS) -o $(PROGRAM) 
  531. X
  532. X$(OBJ): Makefile
  533. X
  534. Xecuhelp.data: ecuhelp.src $(PROGRAM)
  535. X    ./$(PROGRAM) -b
  536. X
  537. Xecuhelp.doc: ecuhelp.src $(PROGRAM)
  538. X    ./$(PROGRAM) -d
  539. X
  540. X$(PROGRAM).fls: Makefile
  541. X    ls $(SRC) >$(PROGRAM).fls
  542. X
  543. Xinstall: $(PROGRAM) ecuhelp.data # ecuhelp.doc
  544. X    ../makedirs -m 755 $(ECULIBDIR)
  545. X    rm -f  $(ECULIBDIR)/ecuhelp.data
  546. X    cp ecuhelp.data $(ECULIBDIR)/ecuhelp.data
  547. X    chown bin $(ECULIBDIR)/ecuhelp.data
  548. X    chgrp bin $(ECULIBDIR)/ecuhelp.data
  549. X    chmod 644 $(ECULIBDIR)/ecuhelp.data
  550. X
  551. Xneat:
  552. X    rm -f .make.* depend.tmp eddep.tmp Makefile.new *.bak *.BAK
  553. X    rm -f core tags cscope.out
  554. X    -rm -f *~ *# *.orig *.rej make.log a.out
  555. X
  556. Xclean: neat
  557. X    rm -f $(OBJ)
  558. X
  559. Xclobber: clean
  560. X    rm -f $(PROGRAM) ecuhelp.data ecuhelp.doc
  561. X
  562. X#MSC -Zg is broken and even my kludge mechanism can't make this one
  563. X#anymore.  Decommitted until some future day.
  564. X#protos: $(PROGRAM).fls
  565. X#    echo > protos.h
  566. X#    csh ../zgcc $(PROGRAM).fls protos.h ..
  567. X
  568. X#
  569. X# MAKE DEPEND: regenerate .c:.h, .ol:.c, .ol:.asm dependencies automatically
  570. X#
  571. Xdepend:
  572. X    rm -f depend.tmp
  573. X    if test '$(SRC)' ;\
  574. X    then (grep '^#include' $(SRC) \
  575. X    | sed    -e 's?:[^<]*<\([^>]*\)>.*?: /usr/include/\1?'\
  576. X        -e 's?:[^"]*"\([^"]*\)".*?: \1?'\
  577. X        -e 's?\(.*\)\.c?\1.o?'\
  578. X     >> depend.tmp) ;\
  579. X    fi
  580. X
  581. X    echo '/^# DO NOT DELETE THIS LINE' >eddep.tmp
  582. X    echo '.+1,$$d' >>eddep.tmp
  583. X    echo 'r depend.tmp' >> eddep.tmp
  584. X    echo 'w' >> eddep.tmp
  585. X    cp Makefile Makefile.new
  586. X    ed Makefile.new < eddep.tmp
  587. X    rm eddep.tmp depend.tmp
  588. X    echo '# DEPENDENCIES MUST END AT END OF FILE' >>Makefile.new
  589. X    echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY'>>Makefile.new
  590. X    echo '# see make depend above'>>Makefile.new
  591. X    mv Makefile Makefile.bak
  592. X    mv Makefile.new Makefile
  593. X
  594. X# DO NOT DELETE THIS LINE
  595. X# DEPENDENCIES MUST END AT END OF FILE
  596. X# IF YOU PUT STUFF HERE IT WILL GO AWAY
  597. X# see make depend above
  598. SHAR_EOF
  599. chmod 0644 help/Make.src ||
  600. echo 'restore of help/Make.src failed'
  601. Wc_c="`wc -c < 'help/Make.src'`"
  602. test 2437 -eq "$Wc_c" ||
  603.     echo 'help/Make.src: original size 2437, current size' "$Wc_c"
  604. rm -f _shar_wnt_.tmp
  605. fi
  606. # ============= sea/Make.src ==============
  607. if test ! -d 'sea'; then
  608.     echo 'x - creating directory sea'
  609.     mkdir 'sea'
  610. fi
  611. if test -f 'sea/Make.src' -a X"$1" != X"-c"; then
  612.     echo 'x - skipping sea/Make.src (File already exists)'
  613.     rm -f _shar_wnt_.tmp
  614. else
  615. > _shar_wnt_.tmp
  616. echo 'x - extracting sea/Make.src (Text)'
  617. sed 's/^X//' << 'SHAR_EOF' > 'sea/Make.src' &&
  618. X#  CHK=0x8F7A
  619. X#+----------------------------------------------------------
  620. X# Makefile for ecusea
  621. X# wht@n4hgf.Mt-Park.GA.US
  622. X#-----------------------------------------------------------
  623. X#+:EDITS:*/
  624. X#:09-10-1992-14:00-wht@n4hgf-ECU release 3.20
  625. X#:08-22-1992-15:39-wht@n4hgf-ECU release 3.20 BETA
  626. X#:08-21-1992-15:04-wht@n4hgf-executable goes to lib dir
  627. X#:07-17-1992-18:26-wht@n4hgf-use ../nap.o
  628. X#:02-10-1992-05:47-wht@n4hgf-mcs avail on some systems when non-COFF produced
  629. X#:07-25-1991-12:59-wht@n4hgf-ECU release 3.10
  630. X#:04-21-1991-12:05-wht@n4hgf-convert to Make.src
  631. X
  632. XSHELL = /bin/sh
  633. XPROGRAM = ecusea
  634. XINSTALLABLE = $(ECULIBDIR)/$(PROGRAM)
  635. X
  636. X.SUFFIXES:
  637. X.SUFFIXES: .c .o .h
  638. X
  639. X.c.o:;    $(BINTIME) $(CC) -c $(CFLAGS) $*.c 
  640. X
  641. XSRC = \
  642. X    ecusea.c\
  643. X    scurses.c
  644. X
  645. XOBJ = \
  646. X    ecusea.o\
  647. X    scurses.o\
  648. X    ../nap.o
  649. X
  650. Xall: $(PROGRAM)
  651. X
  652. X$(PROGRAM): $(OBJ) Makefile
  653. X    $(BINTIME) $(CC) -o $@ $(LDFLAGS) $(OBJ) $(LIBS)
  654. X
  655. X$(OBJ): Makefile
  656. X
  657. X../nap.o:
  658. X    cd ..;make nap.o
  659. X
  660. X../makedirs:
  661. X    cd ..;make makedirs
  662. X
  663. Xinstall: ../makedirs $(PROGRAM)
  664. X    ../makedirs -m 755 $(ECULIBDIR)
  665. X    rm -f $(INSTALLABLE) $(INSTALLABLE)~
  666. X    if [ -f $(INSTALLABLE) ]; then mv $(INSTALLABLE) $(INSTALLABLE)~; fi
  667. X    cp $(PROGRAM) $(INSTALLABLE)
  668. X    strip $(INSTALLABLE)
  669. X    -if [ -x /usr/bin/mcs ]; then /usr/bin/mcs -d $(INSTALLABLE); fi
  670. X    chown bin $(INSTALLABLE)
  671. X    chgrp bin $(INSTALLABLE)
  672. X    chmod 711 $(INSTALLABLE)
  673. X
  674. Xneat:
  675. X    rm -f .make.* depend.tmp eddep.tmp Makefile.new *.bak *.BAK
  676. X    rm -f core tags cscope.out
  677. X    -rm -f *~ *# *.orig *.rej make.log a.out
  678. X
  679. Xclean: neat
  680. X    rm -f $(OBJ)
  681. X
  682. Xclobber: clean
  683. X    rm -f $(PROGRAM)
  684. X
  685. X$(PROGRAM).fls: Makefile
  686. X    ls $(SRC) >$(PROGRAM).fls
  687. X
  688. Xprotos: $(PROGRAM).fls
  689. X    echo > protos.h
  690. X    csh ../zgcc $(PROGRAM).fls protos.h .. -DSIGTYPE=$(SIGTYPE)
  691. X
  692. X#regenerate .o:.h dependencies automatically
  693. Xdepend:
  694. X    rm -f depend.tmp
  695. X    if test '$(SRC)' ;\
  696. X    then (grep '^#include' $(SRC) \
  697. X    | sed    -e 's?:[^<]*<\([^>]*\)>.*?: /usr/include/\1?'\
  698. X        -e 's?:[^"]*"\([^"]*\)".*?: \1?'\
  699. X        -e 's?\(.*\)\.c?\1.o?'\
  700. X     >> depend.tmp) ;\
  701. X    fi
  702. X
  703. X    echo '/^# DO NOT DELETE THIS LINE' >eddep.tmp
  704. X    echo '.+1,$$d' >>eddep.tmp
  705. X    echo 'r depend.tmp' >> eddep.tmp
  706. X    echo 'w' >> eddep.tmp
  707. X    cp Makefile Makefile.new
  708. X    ed Makefile.new < eddep.tmp
  709. X    rm eddep.tmp depend.tmp
  710. X    echo '# DEPENDENCIES MUST END AT END OF FILE' >>Makefile.new
  711. X    echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY'>>Makefile.new
  712. X    echo '# see make depend above'>>Makefile.new
  713. X    mv Makefile Makefile.bak
  714. X    mv Makefile.new Makefile
  715. X
  716. X# DO NOT DELETE THIS LINE
  717. X
  718. SHAR_EOF
  719. chmod 0644 sea/Make.src ||
  720. echo 'restore of sea/Make.src failed'
  721. Wc_c="`wc -c < 'sea/Make.src'`"
  722. test 2416 -eq "$Wc_c" ||
  723.     echo 'sea/Make.src: original size 2416, current size' "$Wc_c"
  724. rm -f _shar_wnt_.tmp
  725. fi
  726. # ============= z/Make.src ==============
  727. if test ! -d 'z'; then
  728.     echo 'x - creating directory z'
  729.     mkdir 'z'
  730. fi
  731. if test -f 'z/Make.src' -a X"$1" != X"-c"; then
  732.     echo 'x - skipping z/Make.src (File already exists)'
  733.     rm -f _shar_wnt_.tmp
  734. else
  735. > _shar_wnt_.tmp
  736. echo 'x - extracting z/Make.src (Text)'
  737. sed 's/^X//' << 'SHAR_EOF' > 'z/Make.src' &&
  738. X#  CHK=0xC8A5
  739. X#+-------------------------------------------------------------------
  740. X# Makefile for ecurz/ecusz (ecu file transfer)
  741. X# wht@n4hgf.Mt-Park.GA.US
  742. X#--------------------------------------------------------------------
  743. X#+:EDITS:*/
  744. X#:09-10-1992-14:00-wht@n4hgf-ECU release 3.20
  745. X#:08-22-1992-15:39-wht@n4hgf-ECU release 3.20 BETA
  746. X#:08-21-1992-15:04-wht@n4hgf-executables goes to lib dir
  747. X#:07-17-1992-18:26-wht@n4hgf-use ../nap.o
  748. X#:02-10-1992-05:47-wht@n4hgf-mcs avail on some systems when non-COFF produced
  749. X#:08-06-1991-15:28-wht@n4hgf-neat used wrong rm args
  750. X#:07-25-1991-12:59-wht@n4hgf-ECU release 3.10
  751. X#:04-21-1991-12:05-wht@n4hgf-convert to Make.src
  752. X
  753. XSHELL = /bin/sh
  754. XINSTALLED_SZ = $(ECULIBDIR)/ecusz
  755. XINSTALLED_RZ = $(ECULIBDIR)/ecurz
  756. X
  757. X.SUFFIXES:
  758. X.SUFFIXES: .c .o .h
  759. X
  760. X.c.o:;    $(BINTIME) $(CC) -c $(CFLAGS) $*.c 
  761. XCFLAGS_EXTRA = -DMD -DREADCHECK -DLOG_XFER
  762. X
  763. X
  764. XCOM_SRC = \
  765. X    zcommon.c\
  766. X    zmodem.c\
  767. X    zcurses.c\
  768. X    baudtest.c\
  769. X    zdebug.c
  770. X
  771. XCOM_OBJ = \
  772. X    zcommon.o\
  773. X    zmodem.o\
  774. X    zcurses.o\
  775. X    baudtest.o\
  776. X    ../logevent.o\
  777. X    ../nap.o
  778. X
  779. Xall: ecusz ecurz
  780. X
  781. Xecusz: ecusz.o $(COM_OBJ)
  782. X    echo 'char *makedate="@(#)ecusz '`date` $(SYSTEM)'";'  >ecuszmake.c
  783. X    $(CC) -c $(CFLAGS) ecuszmake.c ; rm ecuszmake.c
  784. X    $(BINTIME) $(CC) -o $@ $(LDFLAGS) ecusz.o ecuszmake.o $(COM_OBJ) $(LIBS)
  785. X    rm -f ecuszmake.o
  786. X
  787. Xecurz: ecurz.o $(COM_OBJ)
  788. X    echo 'char *makedate="@(#)ecurz '`date` $(SYSTEM)'";'  >ecurzmake.c
  789. X    $(CC) -c $(CFLAGS) ecurzmake.c ; rm ecurzmake.c
  790. X    $(BINTIME) $(CC) -o $@ $(LDFLAGS) ecurz.o ecurzmake.o $(COM_OBJ) $(LIBS) 
  791. X    rm -f ecurzmake.o
  792. X
  793. Xecusz.o ecurz.o $(COM_OBJ): Makefile
  794. X
  795. X../makedirs:
  796. X    cd ..;make makedirs
  797. X
  798. Xinstall: ../makedirs ecusz ecurz
  799. X    ../makedirs -m 755 $(ECULIBDIR)
  800. X    rm -f $(INSTALLED_SZ) $(INSTALLED_SZ)~
  801. X    if [ -f $(INSTALLED_SZ) ]; then mv $(INSTALLED_SZ) $(INSTALLED_SZ)~; fi
  802. X    cp ecusz $(INSTALLED_SZ)
  803. X    strip $(INSTALLED_SZ)
  804. X    -if [ -x /usr/bin/mcs ]; then /usr/bin/mcs -d $(INSTALLED_SZ); fi
  805. X    chown bin $(INSTALLED_SZ)
  806. X    chgrp bin $(INSTALLED_SZ)
  807. X    chmod 711 $(INSTALLED_SZ)
  808. X    rm -f $(INSTALLED_RZ) $(INSTALLED_RZ)~
  809. X    if [ -f $(INSTALLED_RZ) ]; then mv $(INSTALLED_RZ) $(INSTALLED_RZ)~; fi
  810. X    cp ecurz $(INSTALLED_RZ)
  811. X    strip $(INSTALLED_RZ)
  812. X    -if [ -x /usr/bin/mcs ]; then /usr/bin/mcs -d $(INSTALLED_RZ); fi
  813. X    chown bin $(INSTALLED_RZ)
  814. X    chgrp bin $(INSTALLED_RZ)
  815. X    chmod 711 $(INSTALLED_RZ)
  816. X
  817. Xneat:
  818. X    rm -f .make.* depend.tmp eddep.tmp Makefile.new *.bak *.BAK
  819. X    rm -f core tags cscope.out
  820. X    rm -f ecuszmake.c ecuszmake.o ecurzmake.c ecurzmake.o
  821. X    -rm -f *~ *# *.orig *.rej make.log a.out
  822. X
  823. Xclean: neat
  824. X    rm -f *.o
  825. X
  826. Xclobber: clean
  827. X    rm -f ecusz ecurz
  828. X
  829. Xcomsrc.fls: Makefile
  830. X    ls $(COM_SRC) > comsrc.fls
  831. X
  832. Xprotos: comsrc.fls
  833. X    echo ' ' > protos.h
  834. X    csh ../zgcc comsrc.fls protos.h ..
  835. X
  836. X../logevent.o:
  837. X    cd ..;make logevent.o
  838. X
  839. X../nap.o:
  840. X    cd ..;make nap.o
  841. X
  842. X#
  843. X# MAKE DEPEND: regenerate .c:.h, .ol:.c, .ol:.asm dependencies automatically
  844. X#
  845. Xdepend:
  846. X    rm -f depend.tmp
  847. X    if test '$(COM_SRC)' ;\
  848. X    then (grep '^#include' $(COM_SRC) \
  849. X    | sed    -e 's?:[^<]*<\([^>]*\)>.*?: /usr/include/\1?'\
  850. X        -e 's?:[^"]*"\([^"]*\)".*?: \1?'\
  851. X        -e 's?\(.*\)\.c?\1.o?'\
  852. X     >> depend.tmp) ;\
  853. X    fi
  854. X
  855. X    echo '/^# DO NOT DELETE THIS LINE' >eddep.tmp
  856. X    echo '.+1,$$d' >>eddep.tmp
  857. X    echo 'r depend.tmp' >> eddep.tmp
  858. X    echo 'w' >> eddep.tmp
  859. X    cp Makefile Makefile.new
  860. X    ed Makefile.new < eddep.tmp
  861. X    rm eddep.tmp depend.tmp
  862. X    echo '# DEPENDENCIES MUST END AT END OF FILE' >>Makefile.new
  863. X    echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY'>>Makefile.new
  864. X    echo '# see make depend above'>>Makefile.new
  865. X    mv Makefile Makefile.bak
  866. X    mv Makefile.new Makefile
  867. X
  868. X# DO NOT DELETE THIS LINE
  869. X# DEPENDENCIES MUST END AT END OF FILE
  870. X# IF YOU PUT STUFF HERE IT WILL GO AWAY
  871. X# see make depend above
  872. SHAR_EOF
  873. chmod 0644 z/Make.src ||
  874. echo 'restore of z/Make.src failed'
  875. Wc_c="`wc -c < 'z/Make.src'`"
  876. test 3601 -eq "$Wc_c" ||
  877.     echo 'z/Make.src: original size 3601, current size' "$Wc_c"
  878. rm -f _shar_wnt_.tmp
  879. fi
  880. # ============= afterlint.c ==============
  881. if test -f 'afterlint.c' -a X"$1" != X"-c"; then
  882.     echo 'x - skipping afterlint.c (File already exists)'
  883.     rm -f _shar_wnt_.tmp
  884. else
  885. > _shar_wnt_.tmp
  886. echo 'x - extracting afterlint.c (Text)'
  887. sed 's/^X//' << 'SHAR_EOF' > 'afterlint.c' &&
  888. X/* CHK=0xC2C5 */
  889. Xchar *rev = "1.20";
  890. X/*+-------------------------------------------------------------------------
  891. X    afterlint.c -- process MSC -Zg output (for *some* MSC versions)
  892. X
  893. XThis works for ecu but maybe not other code collections;
  894. Xreturning a typedefed but unnamed structure (or pointer)
  895. Xwill, for instance, produce bad output.
  896. X
  897. XUse with zgcc.
  898. X--------------------------------------------------------------------------*/
  899. X/*+:EDITS:*/
  900. X/*:09-10-1992-13:58-wht@n4hgf-ECU release 3.20 */
  901. X/*:08-22-1992-15:38-wht@n4hgf-ECU release 3.20 BETA */
  902. X/*:01-21-1992-03:03-wht@n4hgf-better handling of commented items with UNNAMED */
  903. X/*:07-25-1991-12:55-wht@n4hgf-ECU release 3.10 */
  904. X/*:01-09-1991-22:31-wht@n4hgf-ISC port */
  905. X/*:11-18-1990-21:15-wht@n4hgf-clobber 'extern  ' in prototypes */
  906. X/*:07-13-1988-19:50-wht-creation */
  907. X
  908. X# include <stdio.h>
  909. X# include <sys/types.h>
  910. X
  911. X#ifdef BSD
  912. X# include <sys/time.h>
  913. X#define strchr index
  914. X#define strrchr rindex
  915. Xchar *index();
  916. Xchar *rindex();
  917. X/*************************/
  918. X#else    /* assuming SYSV */
  919. X/*************************/
  920. X# include <time.h>
  921. Xchar *strchr();
  922. Xchar *strrchr();
  923. X#endif    /* system dependencies */
  924. X
  925. X
  926. Xstruct tm *localtime();
  927. X
  928. X/*+-------------------------------------------------------------------------
  929. X    emit_editnote(fp)
  930. X--------------------------------------------------------------------------*/
  931. Xvoid
  932. Xemit_editnote(fp)
  933. XFILE    *fp;
  934. X{
  935. X    struct tm *ltime;
  936. X    long cur_time;
  937. X
  938. X    time(&cur_time);
  939. X    ltime = localtime(&cur_time);
  940. X
  941. X    fputs("/*+:EDITS:*/\n",fp);
  942. X    fprintf(fp,"/*:%02d-%02d-%04d-%02d:%02d-afterlint %s-creation */\n",
  943. X        ltime->tm_mon+1,ltime->tm_mday,ltime->tm_year + 1900,
  944. X        ltime->tm_hour,ltime->tm_min,rev);
  945. X
  946. X}    /* end of emit_editnote */
  947. X
  948. X/*+-------------------------------------------------------------------------
  949. X    instr(str1,str2) - is str2 contained in str1?
  950. X
  951. Xreturn 1 if so, else 0
  952. X--------------------------------------------------------------------------*/
  953. Xint
  954. Xinstr(str1,str2)
  955. Xregister char *str1;    /* the (target) string to search */
  956. Xregister char *str2;    /* the (comparand) string to search for */
  957. X{
  958. Xregister int lstr2 = strlen(str2);
  959. X
  960. X    if(lstr2 > strlen(str1))
  961. X        return(0);
  962. X    while(*str1)
  963. X    {
  964. X        if(*str1 == *str2)
  965. X        {
  966. X            if(!strncmp(str1,str2,lstr2))
  967. X                return(1);
  968. X        }
  969. X        ++str1;
  970. X    }
  971. X    return(0);
  972. X
  973. X}    /* end of instr */
  974. X
  975. X/*+-------------------------------------------------------------------------
  976. X    main(argc,argv,envp)
  977. X--------------------------------------------------------------------------*/
  978. Xmain(argc,argv,envp)
  979. Xint argc;
  980. Xchar **argv;
  981. Xchar **envp;
  982. X{
  983. X    register char *cptr;
  984. X    register FILE *fpin;
  985. X    register FILE *fpout;
  986. X    char buf[256];
  987. X    char *basename;
  988. X
  989. X    if(argc < 2)
  990. X    {
  991. X        fprintf(stderr,"usage: afterlint <infile> [<outfile>]\n");
  992. X        fprintf(stderr,"if outfile not supplied, output is to stdout\n");
  993. X        exit(1);
  994. X    }
  995. X
  996. X    if(!(fpin = fopen(argv[1],"r")))
  997. X    {
  998. X        perror(argv[1]);
  999. X        exit(1);
  1000. X    }
  1001. X
  1002. X    if(argc > 2)
  1003. X    {
  1004. X        if(!(fpout = fopen(argv[2],"w")))
  1005. X        {
  1006. X            perror(argv[2]);
  1007. X            exit(1);
  1008. X        }
  1009. X        basename = argv[2];
  1010. X    }
  1011. X    else
  1012. X        fpout = stdout;
  1013. X
  1014. X    fprintf(fpout,
  1015. X        "/*+-----------------------------------------------------------------------\n");
  1016. X    if(argc > 2)
  1017. X        fprintf(fpout,"\t%s\n",basename);
  1018. X    else
  1019. X        fprintf(fpout,"\tfunction declarations\n",basename);
  1020. X    fprintf(fpout,
  1021. X        "------------------------------------------------------------------------*/\n");
  1022. X
  1023. X    emit_editnote(fpout);
  1024. X    fprintf(fpout,"\n");
  1025. X    fprintf(fpout,"#ifndef BUILDING_PROTOTYPES\n");
  1026. X    fprintf(fpout,"\n/* the following should catch only SCO MSC */\n");
  1027. X    fprintf(fpout,
  1028. X        "#if defined(M_SYSV) && !defined(__GNUC__) && !defined(GNUC)\n\n");
  1029. X
  1030. X    while(fgets(buf,sizeof(buf),fpin))
  1031. X    {
  1032. X        cptr = buf;
  1033. X        if(instr(buf,"UNNAMED"))
  1034. X        {
  1035. X            cptr += 3;
  1036. X            if(strchr(cptr,'('))
  1037. X            {
  1038. X                while(*cptr != '(')
  1039. X                    fputc(*cptr++,fpout);
  1040. X                fputs("(); /* no proto (struct UNNAMED param) */\n",fpout);
  1041. X            }
  1042. X            continue;
  1043. X        }
  1044. X        if(!strncmp(buf,"/*global*/  ",12))
  1045. X            cptr += 12;
  1046. X        else if(!strncmp(buf,"extern  ",8))
  1047. X            cptr += 8;
  1048. X        else if(!strncmp(buf,"static  ",8))
  1049. X            cptr += 8;
  1050. X        fputs(cptr,fpout);
  1051. X    }
  1052. X
  1053. X    fprintf(fpout,"\n#else\t\t/* compiler doesn't know prototyping */\n\n");
  1054. X
  1055. X    fclose(fpin);
  1056. X    fpin = fopen(argv[1],"r");
  1057. X
  1058. X    while(fgets(buf,sizeof(buf),fpin))
  1059. X    {
  1060. X        cptr = buf;
  1061. X        if(instr(buf,"UNNAMED"))
  1062. X            cptr += 3;
  1063. X        else if(!strncmp(buf,"/*global*/  ",12))
  1064. X            cptr += 12;
  1065. X        else if(!strncmp(buf,"extern  ",8))
  1066. X            cptr += 8;
  1067. X        else if(!strncmp(buf,"static  ",8))
  1068. X            cptr += 8;
  1069. X        if(strchr(cptr,'('))
  1070. X        {
  1071. X            while(*cptr != '(')
  1072. X                fputc(*cptr++,fpout);
  1073. X            fputs("();\n",fpout);
  1074. X        }
  1075. X    }
  1076. X
  1077. X    fprintf(fpout,"\n#endif /* MSC considerations */\n");
  1078. X    fprintf(fpout,"#endif /* BUILDING_PROTOTYPES */\n");
  1079. X    fprintf(fpout,"\n/* end of %s */\n",
  1080. X        (argc > 2) ? basename : "function declarations");
  1081. X
  1082. X    fclose(fpin);
  1083. X    fclose(fpout);
  1084. X    exit(0);
  1085. X}    /* end of main */
  1086. X
  1087. X/* vi: set tabstop=4 shiftwidth=4: */
  1088. SHAR_EOF
  1089. chmod 0644 afterlint.c ||
  1090. echo 'restore of afterlint.c failed'
  1091. Wc_c="`wc -c < 'afterlint.c'`"
  1092. test 4839 -eq "$Wc_c" ||
  1093.     echo 'afterlint.c: original size 4839, current size' "$Wc_c"
  1094. rm -f _shar_wnt_.tmp
  1095. fi
  1096. # ============= bamboozle.c ==============
  1097. if test -f 'bamboozle.c' -a X"$1" != X"-c"; then
  1098.     echo 'x - skipping bamboozle.c (File already exists)'
  1099.     rm -f _shar_wnt_.tmp
  1100. else
  1101. > _shar_wnt_.tmp
  1102. echo 'x - extracting bamboozle.c (Text)'
  1103. sed 's/^X//' << 'SHAR_EOF' > 'bamboozle.c' &&
  1104. X/*+-------------------------------------------------------------------------
  1105. X    bamboozle.c - ecu/ecuungetty protection scheme
  1106. X    wht@n4hgf.Mt-Park.GA.US
  1107. X--------------------------------------------------------------------------*/
  1108. X/*+:EDITS:*/
  1109. X/*:09-10-1992-13:58-wht@n4hgf-ECU release 3.20 */
  1110. X/*:08-22-1992-15:38-wht@n4hgf-ECU release 3.20 BETA */
  1111. X/*:07-25-1991-12:55-wht@n4hgf-ECU release 3.10 */
  1112. X/*:01-09-1991-22:31-wht@n4hgf-ISC port */
  1113. X/*:01-09-1991-21:05-wht@n4hgf-no prototype for crypt if not __STDC__ */
  1114. X/*:08-14-1990-20:39-wht@n4hgf-ecu3.00-flush old edit history */
  1115. X
  1116. X#if __STDC__
  1117. Xchar *crypt(char *,char *);
  1118. X#else
  1119. Xchar *crypt();
  1120. X#endif
  1121. X
  1122. X
  1123. X/*+-------------------------------------------------------------------------
  1124. X    bamboozle(pid) - build encrypted string based on 'pid'
  1125. X
  1126. XIf crypt not used, do something pretty basic  (probably enough)
  1127. XIf you are paranoid, don't use _ANY_ of these algorithms exactly
  1128. X--------------------------------------------------------------------------*/
  1129. Xchar *
  1130. Xbamboozle(pid)
  1131. Xint pid;
  1132. X{
  1133. X#if defined(CRYPT)
  1134. Xchar pidstr[16];
  1135. Xchar *cptr;
  1136. X
  1137. X    sprintf(pidstr,"z%08d",pid);
  1138. X    pidstr[0] = 'G';    /* fool strings searchers */
  1139. X    cptr = crypt(pidstr,"ba");
  1140. X    return(cptr);
  1141. X#else                /* probably enough */
  1142. Xstatic char pidstr[16];
  1143. X    sprintf(pidstr,"b%09da",(int)(((long)pid * 4) / 5));
  1144. X    return(pidstr);
  1145. X#endif
  1146. X
  1147. X#ifdef VARIANT_1    /* very paranoid */
  1148. Xchar pidstr[16];
  1149. Xchar *cptr;
  1150. X    sprintf(pidstr,"z%08d",pid);
  1151. X    pidstr[0] = 0xFF;    /* fool strings searchers */
  1152. X    cptr = crypt(pidstr,pidstr);
  1153. X    return(cptr);
  1154. X#endif
  1155. X#ifdef VARIANT_2    /* not paranoid at all */
  1156. Xchar pidstr[16];
  1157. X    sprintf(pidstr,"z%08d",pid - 2);
  1158. X#endif
  1159. X#ifdef VARIANT_3    /* invite trouble :-) */
  1160. X    return("I_am_easy");
  1161. X#endif
  1162. X
  1163. X}    /* end of bamboozle */
  1164. X
  1165. X
  1166. X/* vi: set tabstop=4 shiftwidth=4: */
  1167. X/* end of bamboozle.c */
  1168. SHAR_EOF
  1169. chmod 0644 bamboozle.c ||
  1170. echo 'restore of bamboozle.c failed'
  1171. Wc_c="`wc -c < 'bamboozle.c'`"
  1172. test 1780 -eq "$Wc_c" ||
  1173.     echo 'bamboozle.c: original size 1780, current size' "$Wc_c"
  1174. rm -f _shar_wnt_.tmp
  1175. fi
  1176. # ============= cmdtbl.c ==============
  1177. if test -f 'cmdtbl.c' -a X"$1" != X"-c"; then
  1178.     echo 'x - skipping cmdtbl.c (File already exists)'
  1179.     rm -f _shar_wnt_.tmp
  1180. else
  1181. > _shar_wnt_.tmp
  1182. echo 'x - extracting cmdtbl.c (Text)'
  1183. sed 's/^X//' << 'SHAR_EOF' > 'cmdtbl.c' &&
  1184. X/*+-------------------------------------------------------------------------
  1185. X    cmdtbl.c - interactive/procedure command table data
  1186. X    wht@n4hgf.Mt-Park.GA.US
  1187. X
  1188. XThis module merely declares the public instance of the ecu command
  1189. Xtable.  DECLARE_P_CMD performs magic in ecucmd.h
  1190. X--------------------------------------------------------------------------*/
  1191. X/*+:EDITS:*/
  1192. X/*:09-10-1992-13:58-wht@n4hgf-ECU release 3.20 */
  1193. X/*:08-22-1992-15:38-wht@n4hgf-ECU release 3.20 BETA */
  1194. X/*:07-25-1991-12:55-wht@n4hgf-ECU release 3.10 */
  1195. X/*:03-25-1991-11:40-wht@n4hgf-get termio.h for ecucmd.h conditonal compile */
  1196. X/*:08-14-1990-20:39-wht@n4hgf-ecu3.00-flush old edit history */
  1197. X
  1198. X#define DECLARE_P_CMD
  1199. X#include "ecu.h"
  1200. X#include "ecucmd.h"
  1201. X
  1202. X/* vi: set tabstop=4 shiftwidth=4: */
  1203. X/* end of cmdtbl.c */
  1204. SHAR_EOF
  1205. chmod 0644 cmdtbl.c ||
  1206. echo 'restore of cmdtbl.c failed'
  1207. Wc_c="`wc -c < 'cmdtbl.c'`"
  1208. test 780 -eq "$Wc_c" ||
  1209.     echo 'cmdtbl.c: original size 780, current size' "$Wc_c"
  1210. rm -f _shar_wnt_.tmp
  1211. fi
  1212. # ============= config.c ==============
  1213. if test -f 'config.c' -a X"$1" != X"-c"; then
  1214.     echo 'x - skipping config.c (File already exists)'
  1215.     rm -f _shar_wnt_.tmp
  1216. else
  1217. > _shar_wnt_.tmp
  1218. echo 'x - extracting config.c (Text)'
  1219. sed 's/^X//' << 'SHAR_EOF' > 'config.c' &&
  1220. X/* CHK=0xD40E */
  1221. Xchar *rev = "3.20";
  1222. X/* #define FORCE_DASH_G */
  1223. X
  1224. X/*+-------------------------------------------------------------------------
  1225. X    config.c - Makefile configuration program for ECU
  1226. X    wht@n4hgf.Mt-Park.GA.US
  1227. X
  1228. XThis must be compiled with the *NATIVE* cc or else you must fake all
  1229. Xof the predefines the native compiler supplies.  The Configure
  1230. Xscript can pass stuff in CFLAGS to tickle config a bit.
  1231. X
  1232. XThere are a few tricks in here for SCO multi-target development
  1233. Xsystem.  If you compile this on a UNIX system, but specify the
  1234. Xtarget for a XENIX system, you get the cc -xenix switch.  You
  1235. Xalso get -Dconst= to avoid banging into some problems with the
  1236. XXENIX stuff in the header files.
  1237. X
  1238. XTo paraphrase Henry Spencer:
  1239. X"Those who do not understand imake are doomed to reinvent it - poorly."
  1240. XIf this gets much more complicated, I'll make some imake rules.
  1241. XVery soon, most of the systems ECU gets used on will have imake already.
  1242. XWe cannot assume that yet.
  1243. X
  1244. X  Defined functions:
  1245. X    gen_cc_cflags()
  1246. X    gen_gcc_cflags()
  1247. X    gen_isc_ldflags()
  1248. X    gen_sco_ldflags()
  1249. X    gen_sun_ldflags()
  1250. X    gen_svr4_ldflags()
  1251. X    generate_config(mdir)
  1252. X    goodbye(sig)
  1253. X    main(argc,argv)
  1254. X    tgetc()
  1255. X    tgetopt(prompt,choices,deflt)
  1256. X    tgets(buf)
  1257. X    tputstrs(strs)
  1258. X    tputstrsfp(strs)
  1259. X    type (or the 'nearest equivalent')
  1260. X
  1261. X--------------------------------------------------------------------------*/
  1262. X/*+:EDITS:*/
  1263. X/*:09-10-1992-13:58-wht@n4hgf-ECU release 3.20 */
  1264. X/*:09-10-1992-04:39-wht@n4hgf-admonition about SunOS IPC config */
  1265. X/*:08-22-1992-15:38-wht@n4hgf-ECU release 3.20 BETA */
  1266. X/*:08-21-1992-13:46-wht@n4hgf-don't configure ecuungetty if not used on a sys */
  1267. X/*:08-11-1992-06:04-wht@n4hgf-FORCE_DASH_G and 3.2v4 LNG353 warnings */
  1268. X/*:07-12-1992-07:17-wht@n4hgf-3.2v4 has a fully functional nap and select */
  1269. X/*:07-02-1992-20:41-wht@n4hgf-rework for more options + 3.2v4 PID_T */
  1270. X/*:06-18-1992-11:19-root@n4hgf-SCO 3.2v4 gcc CFLAG additions */
  1271. X/*:04-23-1992-14:04-wht@n4hgf-had XENIX curses lib paths wrong */
  1272. X/*:04-19-1992-21:55-wht@n4hgf-pressing return or enter gets tgeopt default */
  1273. X/*:04-19-1992-21:43-wht@n4hgf-add default for tgetopt */
  1274. X/*:04-19-1992-02:55-wht@n4hgf-add ESIX SVR4 config */
  1275. X/*:04-17-1992-20:08-wht@n4hgf-add tty, baud and parity questions */
  1276. X/*:03-20-1992-03:08-wht@n4hgf-correct XENIX tcap/tlib test thanks to tbetz */
  1277. X/*:03-01-1992-13:36-wht@n4hgf-add -Wswitch to gcc compiles */
  1278. X/*:02-06-1992-15:23-wht@n4hgf-depressing ... SCO keeps chging their minds */
  1279. X/*:10-17-1991-14:51-wht@n4hgf-add can_pipe code */
  1280. X/*:09-03-1991-12:53-wht@n4hgf2-iron out sun gcc options */
  1281. X/*:09-01-1991-16:32-wht@n4hgf2-show package and config versions */
  1282. X/*:09-01-1991-15:59-wht@n4hgf2-generalize HDB Devices, etc. files location */
  1283. X/*:08-28-1991-14:07-wht@n4hgf2-SVR4 cleanup by aega84!lh */
  1284. X/*:08-25-1991-14:39-wht@n4hgf-SVR4 port thanks to aega84!lh */
  1285. X/*:08-23-1991-01:37-wht@n4hgf-sun port */
  1286. X/*:07-25-1991-12:55-wht@n4hgf-ECU release 3.10 */
  1287. X/*:07-12-1991-14:02-wht@n4hgf-GCC140 update */
  1288. X/*:05-02-1991-02:46-wht@n4hgf-take out M_TERMCAP in favor of ecucurses.h */
  1289. X/*:04-28-1991-03:44-wht@n4hgf-add -Dconst= for X286 under UNIX */
  1290. X/*:04-20-1991-17:26-wht@n4hgf-creation */
  1291. X
  1292. X#include <stdio.h>
  1293. X#include <ctype.h>
  1294. X#include <string.h>
  1295. X#include <termio.h>
  1296. X#include "ecu_types.h"
  1297. X#include "ecu_stat.h"
  1298. X#include "patchlevel.h"
  1299. X
  1300. X#define S_SCO        0
  1301. X#define S_ISC        1
  1302. X#define S_SUN        2
  1303. X#define S_ISCSVR4    3
  1304. X#define S_ESIXSVR4    4
  1305. X
  1306. X#define X_X286        0
  1307. X#define X_X386        1
  1308. X#define X_UNIX        2
  1309. X#define X_32v4        3
  1310. X
  1311. X#define C_CC        0
  1312. X#define C_GCC        1
  1313. X
  1314. Xstruct termio tty0;
  1315. Xstruct termio tty1;
  1316. X#define setty(arg) ioctl(0,TCSETAW,(arg) ? (char *)&tty1 : (char *)&tty0)
  1317. X
  1318. Xchar *makedirs[] = {
  1319. X    ".",
  1320. X    "./ecufriend",
  1321. X    "./ecuungetty",
  1322. X    "./gendial",
  1323. X    "./help",
  1324. X    "./sea",
  1325. X    "./z",
  1326. X    (char *)0
  1327. X};
  1328. X
  1329. Xchar *strs_intro1[] = {
  1330. X    "\n",
  1331. X    ".-------------------.\n",
  1332. X    "| ECU configuration |\n",
  1333. X    "`-------------------'\n",
  1334. X    (char *)0
  1335. X};
  1336. Xchar *strs_intro2[] = {
  1337. X#ifdef WHT
  1338. X    "WHT features enabled.  ",
  1339. X#endif
  1340. X#if defined(FORCE_DASH_G)
  1341. X    "-g compilation will be forced.",
  1342. X#endif
  1343. X    "\n",
  1344. X    "\n",
  1345. X    "Please answer these questions so that I can configure ECU.\n",
  1346. X    "There are two types of answers, single character and string.\n",
  1347. X    "Single character questions have the choices in () followed by a ?\n",
  1348. X    "String questions are followed by a :\n",
  1349. X    "Default answers appearing in [] are guesses.  If you wish to use\n",
  1350. X    "the default answer for a question, just press CR\n",
  1351. X    "\n",
  1352. X    "Abort (DEL, ^C, etc.) now if you do not wish to continue\n",
  1353. X    (char *)0
  1354. X};
  1355. X
  1356. Xchar *strs_lng353[] = {
  1357. X    "\n",
  1358. X    "I see you have installed LNG353 for the development system.\n",
  1359. X    "This fixed many things but introduced a new warning I cannot readily do\n",
  1360. X    "anything about.  Expect loads of \"warning C4200: previous declarator\n",
  1361. X    "is not compatible with default argument promotion\" messages.\n",
  1362. X    "They reflect little more than ECU isn't compliant with the latest\n",
  1363. X    "ANSI throathold tightening.\n",
  1364. X    (char *)0
  1365. X};
  1366. X
  1367. Xchar *strs_nolng353[] = {
  1368. X    "\n",
  1369. X    "You MUST use the 3.2v4 (or ODT 2.0) development system and you ought to\n",
  1370. X    "LNG353 installed.  If you have only an older DS, rerun ./config and\n",
  1371. X    "specify 'u'.  No promises. (This message may be obsolete after 1992).\n",
  1372. X    (char *)0
  1373. X};
  1374. X
  1375. Xchar *strs_mkdep[] = {
  1376. X    "\n",
  1377. X    "You are ready to make the program. It make take a while (now is a good\n",
  1378. X    "time to Read The Fine Manual).\n",
  1379. X    "\n",
  1380. X    "You MAY wish to make depend first.  It is not necessary to do this\n",
  1381. X    "until you make source modifications or apply patches.\n",
  1382. X    (char *)0
  1383. X};
  1384. X
  1385. Xchar *sco_cc_opts[] = {
  1386. X    "\t-M2let128 -LARGE \\\n",            /* XENIX/286 */
  1387. X    "\t-M3e \\\n",                        /* XENIX/386 */
  1388. X    "\t-M3e \\\n",                        /* UNIX/386 3.2.0-3.2v2*/
  1389. X    "\t-M3e \\\n"                        /* UNIX/386 3.2v4 */
  1390. X};
  1391. X
  1392. Xchar *sco_cc_optim[] = {
  1393. X#ifdef FORCE_DASH_G
  1394. X    "\t-Ot \\\n",                        /* XENIX/286 */
  1395. X    "\t-Oct -CSON \\\n",                /* XENIX/386 */
  1396. X    "\t-g \\\n",                        /* UNIX/386 3.2.0-3.2v2 */
  1397. X    "\t-g \\\n"                            /* UNIX/386 3.2v4 */
  1398. X#else
  1399. X    "\t-Ot \\\n",                        /* XENIX/286 */
  1400. X    "\t-Oct -CSON \\\n",                /* XENIX/386 */
  1401. X    "\t-Oct -CSON \\\n",                /* UNIX/386 3.2.0-3.2v2 */
  1402. X    "\t-Oct -CSON \\\n"                    /* UNIX/386 3.2v4 */
  1403. X#endif
  1404. X};
  1405. X
  1406. Xchar *sco_sigtype[] = {
  1407. X    "int",            /* XENIX/286 */
  1408. X    "void",            /* XENIX/386 */
  1409. X    "void",            /* UNIX/386 3.2.0-3.2v2 */
  1410. X    "void"            /* UNIX/386 32v4 */
  1411. X};
  1412. X
  1413. Xchar *pid_type = "\t-DPID_T=int \\\n";
  1414. X
  1415. X/*
  1416. X * GCC CFLAGS
  1417. X */
  1418. Xchar *gcc_opts[] = {
  1419. X#ifdef PEDANTIC
  1420. X    "\t-pedantic -ansi -O \\\n",        /* UH OH: see ecu README */
  1421. X#else
  1422. X    "\t-traditional -O \\\n",
  1423. X#endif
  1424. X#if defined(WHT) || defined(FORCE_DASH_G)
  1425. X    "\t-g \\\n",
  1426. X#endif
  1427. X    "\t-fstrength-reduce -fpcc-struct-return -fwritable-strings \\\n",
  1428. X    "\t-finline-functions -fforce-mem -fforce-addr \\\n",
  1429. X    "\t-W -Wunused -Wpointer-arith -Wcast-qual -Wshadow -Wcomment -Wswitch\\\n",
  1430. X    (char *)0
  1431. X};
  1432. X
  1433. Xchar *i86_gcc_opts[] = {
  1434. X#if 0
  1435. X    "\t-fcall-used-bx \\\n",
  1436. X#endif
  1437. X    (char *)0
  1438. X};
  1439. X
  1440. Xchar *sco_gcc_opts[] = {
  1441. X    /*
  1442. X     * XENIX/286
  1443. X     */
  1444. X    "\t........what-goes-here?......... \\\n",
  1445. X
  1446. X    /*
  1447. X     * XENIX/386
  1448. X     */
  1449. X    "\t-DM_XENIX -DM_SYSV -DM_SYS5 -DM_I386 \\\n\
  1450. X\t-DM_BITFIELDS -DM_COFF -DM_I386 -DM_I86 -DM_I86SM \\\n\
  1451. X\t-DM_INTERNAT -DM_SDATA -DM_STEXT -DM_SYS3 \\\n\
  1452. X\t-DM_SYSIII -DM_WORDSWAP -Di386\\\n",
  1453. X
  1454. X    /*
  1455. X     * UNIX/386 3.20..3.2v2
  1456. X     */
  1457. X    "\t-DM_BITFIELDS -DM_COFF -DM_I386 -DM_I86 -DM_I86SM \\\n\
  1458. X\t-DM_INTERNAT -DM_SDATA -DM_STEXT -DM_SYS3 -DM_SYS5 \\\n\
  1459. X\t-DM_SYSIII -DM_SYSV -DM_UNIX -DM_WORDSWAP -DM_XENIX -Dunix -Di386\\\n",
  1460. X
  1461. X    /*
  1462. X     * UNIX/386 3.2v4
  1463. X     */
  1464. X"\t-D_NO_PROTOTYPE -D_SVID -D_KR \\\n\
  1465. X\t-DM_BITFIELDS -DM_COFF -DM_I386 -DM_I86 -DM_I86SM \\\n\
  1466. X\t-DM_INTERNAT -DM_SDATA -DM_STEXT -DM_SYS3 -DM_SYS5 \\\n\
  1467. X\t-DM_SYSIII -DM_SYSV -DM_UNIX -DM_WORDSWAP -DM_XENIX -Dunix -Di386\\\n",
  1468. X};
  1469. X
  1470. X
  1471. Xchar *isc_cc_opts  = "\t-O -DISC -DISC22 -DSYSV \\\n";
  1472. Xchar *isc_gcc_opts = "\t-DISC -DISC22 -DSYSV -Di386\\\n";
  1473. Xchar *isc_sigtype = "void";
  1474. X
  1475. Xchar *sun_cc_opts  = "\t-O \\\n";
  1476. Xchar *sun_gcc_opts  = "\t-O -Dsun=1 \\\n"; /* ansi gets __sun__ only */
  1477. Xchar *sun_sigtype = "void";
  1478. X
  1479. Xchar *svr4_cc_opts  = "\t-O -DSVR4 -DSYSV \\\n";
  1480. Xchar *svr4_gcc_opts = "\t-DSVR4 -DSYSV \\\n";
  1481. Xchar *svr4_sigtype = "void";
  1482. X
  1483. X/*
  1484. X * LIBS
  1485. X */
  1486. Xchar *_sco_libs[] = {
  1487. X    "-ltcap -ltermlib -lx",
  1488. X    "-ltcap -ltermlib -lx",
  1489. X    "-ltcap -ltermlib -lmalloc -lc_s -lc -lx",
  1490. X    "-ltcap -ltermlib -lmalloc -lc_s -lc -lx"
  1491. X};
  1492. Xchar *_sco2_libs[] = {
  1493. X    "-ltcap -ltermcap -lx",
  1494. X    "-ltcap -ltermcap -lx",
  1495. X    "-ltcap -ltermcap -lmalloc -lc_s -lc -lx",
  1496. X    "-ltcap -ltermcap -lmalloc -lc_s -lc -lx"
  1497. X};
  1498. Xchar **sco_libs = _sco_libs;
  1499. X
  1500. Xchar *isc_libs = "-lcurses -linet -lx -lmalloc";
  1501. X
  1502. Xchar *sun_libs = "-lcurses -ltermcap";
  1503. X
  1504. Xchar *svr4_libs = "-lcurses -lx -lmalloc";
  1505. X
  1506. Xchar *sco_system[] = {
  1507. X    "XENIX/286",
  1508. X    "XENIX/386",
  1509. X    "UNIX/386",
  1510. X    "UNIX/386 3.2v4"
  1511. X};
  1512. X
  1513. Xchar *malloc_3x = "\t-DMALLOC_3X \\\n";
  1514. X
  1515. Xchar *tty = "tty1a";
  1516. Xchar *baud = "9600";
  1517. Xint parity = 0;
  1518. Xchar *bindir = "/usr/local/bin";
  1519. Xchar *libdir = "/usr/local/lib/ecu";
  1520. Xchar *symbolic = "";
  1521. Xchar *use_ecuungetty = "yes";
  1522. X
  1523. Xint sys = -1;
  1524. Xint compiler = -1;
  1525. Xint have_gcc_140 = 0;
  1526. Xint sco_type = -1;
  1527. Xint debug = 0;
  1528. Xint can_pipe = 0;
  1529. X
  1530. XFILE *fpmake;
  1531. X
  1532. Xvoid
  1533. Xgoodbye(sig)
  1534. Xint sig;
  1535. X{
  1536. X    setty(0);
  1537. X    printf("\n");
  1538. X    exit(sig);
  1539. X}
  1540. X
  1541. Xvoid
  1542. Xtputstrs(strs)
  1543. Xchar **strs;
  1544. X{
  1545. X    while(*strs)
  1546. X        fputs(*strs++,stdout);
  1547. X}
  1548. X
  1549. Xvoid
  1550. Xtputstrsfp(strs)
  1551. Xchar **strs;
  1552. X{
  1553. X    while(*strs)
  1554. X        fputs(*strs++,fpmake);
  1555. X}
  1556. X
  1557. Xchar
  1558. Xtgetc()
  1559. X{
  1560. Xchar rtn;
  1561. X
  1562. X    setty(1);
  1563. X    read(0,&rtn,1);
  1564. X    rtn &= 0x7F;
  1565. X    setty(0);
  1566. X    if(rtn != 0x0A)
  1567. X        printf("\n",rtn);
  1568. X    return(rtn);
  1569. X}
  1570. X
  1571. Xvoid
  1572. Xtgets(buf)
  1573. Xchar *buf;
  1574. X{
  1575. X    if(!gets(buf))
  1576. X        goodbye(1);
  1577. X}
  1578. X
  1579. Xchar
  1580. Xtgetopt(prompt,choices,deflt)
  1581. Xchar *prompt;
  1582. Xchar *choices;
  1583. Xchar deflt;
  1584. X{
  1585. X    char rtn = 0;
  1586. X    char response;
  1587. X    char *cptr;
  1588. X
  1589. X    printf("\n%s (",prompt);
  1590. X    while(!rtn)
  1591. X    {
  1592. X        cptr = choices;
  1593. X        while(*cptr)
  1594. X        {
  1595. X            if(cptr - choices)
  1596. X                putchar(',');
  1597. X            if(*cptr == deflt)
  1598. X                putchar('[');
  1599. X            putchar(*cptr);
  1600. X            if(*cptr == deflt)
  1601. X                putchar(']');
  1602. X            cptr++;
  1603. X        }
  1604. X        printf(")? ");
  1605. X        response = tgetc();
  1606. X        if(strchr(choices,response))
  1607. X            rtn = response;
  1608. X        else if((response == 0x0D) || (response == 0x0A))
  1609. X            rtn = deflt;
  1610. X        else
  1611. X            printf("Please answer with one of (");
  1612. X    }
  1613. X    return(rtn);
  1614. X}
  1615. X
  1616. Xvoid
  1617. Xgen_cc_cflags()
  1618. X{
  1619. X
  1620. X    fputs("CFLAGS = \\\n",fpmake);
  1621. X    switch(sys)
  1622. X    {
  1623. X        case S_SCO:
  1624. X#ifdef M_UNIX
  1625. X            fputs("\t-nointl \\\n",fpmake);
  1626. X            if((sco_type != X_UNIX) && (sco_type != X_32v4))
  1627. X                fputs("\t-xenix -Dconst= \\\n",fpmake);
  1628. X#endif
  1629. X            fputs("\t-DLINT_ARGS \\\n",fpmake);
  1630. X            fputs(sco_cc_optim[sco_type],fpmake);
  1631. X            fputs(sco_cc_opts[sco_type],fpmake);
  1632. X            if((sco_type == X_UNIX) || (sco_type == X_32v4))
  1633. X                fputs(malloc_3x,fpmake);
  1634. X            fputs("\t-DUSE_ECUUNGETTY \\\n",fpmake);
  1635. X            if(sco_type == X_32v4)
  1636. X                fputs("\t-DWORKING_SELECT -DSCO32v4 \\\n",fpmake);
  1637. X            fputs("\t-DSIGTYPE=$(SIGTYPE) \\\n",fpmake);
  1638. X            fputs("\t-DLOCK_DIR_NAME='\"/usr/spool/uucp\"' \\\n",fpmake);
  1639. X            break;
  1640. X        case S_ISC:
  1641. X            fputs(isc_cc_opts,fpmake);
  1642. X            fputs(malloc_3x,fpmake);
  1643. X            fputs("\t-DUSE_ECUUNGETTY \\\n",fpmake);
  1644. X            fputs("\t-DWORKING_SELECT \\\n",fpmake);
  1645. X            fputs("\t-DSIGTYPE=$(SIGTYPE) \\\n",fpmake);
  1646. X            fputs("\t-DLOCK_DIR_NAME='\"/usr/spool/locks\"' \\\n",fpmake);
  1647. X            break;
  1648. X        case S_SUN:
  1649. X            fputs(sun_cc_opts,fpmake);
  1650. X            fputs(malloc_3x,fpmake);
  1651. X            fputs("\t-DWORKING_SELECT \\\n",fpmake);
  1652. X            fputs("\t-DSIGTYPE=$(SIGTYPE) \\\n",fpmake);
  1653. X            fputs("\t-DLOCK_DIR_NAME='\"/var/spool/locks\"' \\\n",fpmake);
  1654. X            break;
  1655. X        case S_ISCSVR4:
  1656. X        case S_ESIXSVR4:
  1657. X            fputs(svr4_cc_opts,fpmake);
  1658. X            if(sys == S_ISCSVR4)
  1659. X                fputs("\t-DISCSVR4 \\\n",fpmake);
  1660. X            else
  1661. X                fputs("\t-DESIXSVR4 \\\n",fpmake);
  1662. X            fputs(malloc_3x,fpmake);
  1663. X            fputs("\t-DWORKING_SELECT \\\n",fpmake);
  1664. X            fputs("\t-DSIGTYPE=$(SIGTYPE) \\\n",fpmake);
  1665. X            fputs("\t-DLOCK_DIR_NAME='\"/var/spool/locks\"' \\\n",fpmake);
  1666. X            break;
  1667. X    }
  1668. X    fprintf(fpmake,"\t-DDEFAULT_TTY='\"/dev/%s\"' \\\n",tty);
  1669. X    fprintf(fpmake,"\t-DDEFAULT_BAUD_RATE=%s \\\n",baud);
  1670. X    fprintf(fpmake,"\t-DDEFAULT_PARITY=\"'%c'\" \\\n",parity);
  1671. X    fputs("\t-DHDBLIBDIR='\"$(HDBLIBDIR)\"' \\\n",fpmake);
  1672. X    fputs("\t-DECULIBDIR='\"$(ECULIBDIR)\"' -DECUUNGETTY_CHOWN \\\n",fpmake);
  1673. X    fputs(pid_type,fpmake);
  1674. X    fputs(
  1675. X"\t$(SYMBOLIC) $(CFLAGS_EXTRA) $(CC_CFLAGS_EXTRA) $(LOCAL_CFLAGS)\n\n",fpmake);
  1676. X}
  1677. X
  1678. Xvoid
  1679. Xgen_gcc_cflags()
  1680. X{
  1681. X    fputs("CFLAGS = \\\n",fpmake);
  1682. X    tputstrsfp(gcc_opts);
  1683. X    if(can_pipe)
  1684. X        fputs("\t-pipe \\\n",fpmake);
  1685. X    switch(sys)
  1686. X    {
  1687. X        case S_SCO:
  1688. X            fputs(sco_gcc_opts[sco_type],fpmake);
  1689. X            tputstrsfp(i86_gcc_opts);
  1690. X            if((sco_type == X_UNIX) || (sco_type == X_32v4))
  1691. X                fputs(malloc_3x,fpmake);
  1692. X            fputs("\t-DUSE_ECUUNGETTY \\\n",fpmake);
  1693. X            fputs("\t-DSIGTYPE=$(SIGTYPE) \\\n",fpmake);
  1694. X            if(sco_type == X_32v4)
  1695. X                fputs("\t-DWORKING_SELECT -DSCO32v4 \\\n",fpmake);
  1696. X            fputs("\t-DLOCK_DIR_NAME='\"/usr/spool/uucp\"' \\\n",fpmake);
  1697. X            break;
  1698. X        case S_ISC:
  1699. X            fputs(isc_gcc_opts,fpmake);
  1700. X            tputstrsfp(i86_gcc_opts);
  1701. X            fputs(malloc_3x,fpmake);
  1702. X            fputs("\t-DUSE_ECUUNGETTY \\\n",fpmake);
  1703. X            fputs("\t-DWORKING_SELECT \\\n",fpmake);
  1704. X            fputs("\t-DSIGTYPE=$(SIGTYPE) \\\n",fpmake);
  1705. X            fputs("\t-DLOCK_DIR_NAME='\"/usr/spool/locks\"' \\\n",fpmake);
  1706. X            break;
  1707. X        case S_SUN:
  1708. X            fputs(sun_gcc_opts,fpmake);
  1709. X            fputs(malloc_3x,fpmake);
  1710. X            fputs("\t-DWORKING_SELECT \\\n",fpmake);
  1711. X            fputs("\t-DSIGTYPE=$(SIGTYPE) \\\n",fpmake);
  1712. X            fputs("\t-DLOCK_DIR_NAME='\"/var/spool/locks\"' \\\n",fpmake);
  1713. X            break;
  1714. X        case S_ISCSVR4:
  1715. X        case S_ESIXSVR4:
  1716. X            fputs(svr4_gcc_opts,fpmake);
  1717. X#if defined(i386)
  1718. X            tputstrsfp(i86_gcc_opts);
  1719. X#endif
  1720. X            if(sys == S_ISCSVR4)
  1721. X                fputs("\t-DISCSVR4 \\\n",fpmake);
  1722. X            else
  1723. X                fputs("\t-DESIXSVR4 \\\n",fpmake);
  1724. X            fputs(malloc_3x,fpmake);
  1725. X            fputs("\t-DWORKING_SELECT \\\n",fpmake);
  1726. X            fputs("\t-DSIGTYPE=$(SIGTYPE) \\\n",fpmake);
  1727. X            fputs("\t-DLOCK_DIR_NAME='\"/var/spool/locks\"' \\\n",fpmake);
  1728. X            break;
  1729. X    }
  1730. X    if(have_gcc_140)
  1731. X        fputs("\t-DGCC140 \\\n",fpmake);
  1732. X    fprintf(fpmake,"\t-DDEFAULT_TTY='\"/dev/%s\"' \\\n",tty);
  1733. X    fprintf(fpmake,"\t-DDEFAULT_BAUD_RATE=%s \\\n",baud);
  1734. X    fprintf(fpmake,"\t-DDEFAULT_PARITY=\"'%c'\" \\\n",parity);
  1735. X    fputs("\t-DHDBLIBDIR='\"$(HDBLIBDIR)\"' \\\n",fpmake);
  1736. X    fputs("\t-DECULIBDIR='\"$(ECULIBDIR)\"' -DECUUNGETTY_CHOWN \\\n",fpmake);
  1737. X    fputs(pid_type,fpmake);
  1738. X    fputs(
  1739. X"\t$(SYMBOLIC) $(CFLAGS_EXTRA) $(GCC_CFLAGS_EXTRA) $(LOCAL_CFLAGS)\n\n",fpmake);
  1740. X}
  1741. X
  1742. Xvoid
  1743. Xgen_sco_ldflags()
  1744. X{
  1745. X    fputs("LDFLAGS = \\\n",fpmake);
  1746. X#if defined(WHT) || defined(FORCE_DASH_G)
  1747. X    fputs("\t-g \\\n",fpmake);
  1748. X#endif
  1749. X    if(compiler == C_CC)
  1750. X    {
  1751. X#ifdef M_UNIX
  1752. X        fputs("\t-nointl \\\n",fpmake);
  1753. X        if((sco_type != X_UNIX) && (sco_type != X_32v4))
  1754. X            fputs("\t-xenix \\\n",fpmake);
  1755. X#endif
  1756. X        fputs(sco_cc_opts[sco_type],fpmake);
  1757. X        if(sco_type == X_X286)
  1758. X            fputs("\t-SEG 512 -F 5000 \\\n",fpmake);
  1759. X    }
  1760. X    fputs("\t$(SYMBOLIC) $(LDFLAGS_EXTRA)\n\n",fpmake);
  1761. X
  1762. X    fprintf(fpmake,"LIBS = %s\n\n",sco_libs[sco_type]);
  1763. X}
  1764. X
  1765. Xvoid
  1766. Xgen_isc_ldflags()
  1767. X{
  1768. X    fputs("LDFLAGS = \\\n",fpmake);
  1769. X    fputs("\t$(SYMBOLIC) $(LDFLAGS_EXTRA)\n\n",fpmake);
  1770. X
  1771. X    fprintf(fpmake,"LIBS = %s\n\n",isc_libs);
  1772. X}
  1773. X
  1774. Xvoid
  1775. Xgen_sun_ldflags()
  1776. X{
  1777. X    fputs("LDFLAGS = \\\n",fpmake);
  1778. X    fputs("\t$(SYMBOLIC) $(LDFLAGS_EXTRA)\n\n",fpmake);
  1779. X
  1780. X    fprintf(fpmake,"LIBS = %s\n\n",sun_libs);
  1781. X}
  1782. X
  1783. Xvoid
  1784. Xgen_svr4_ldflags()
  1785. X{
  1786. X    fputs("LDFLAGS = \\\n",fpmake);
  1787. X    fputs("\t$(SYMBOLIC) $(LDFLAGS_EXTRA)\n\n",fpmake);
  1788. X
  1789. X    fprintf(fpmake,"LIBS = %s\n\n",svr4_libs);
  1790. X}
  1791. X
  1792. Xvoid
  1793. Xgenerate_config(mdir)
  1794. Xchar *mdir;
  1795. X{
  1796. X    char mksrc[128];
  1797. X    char mkfl[128];
  1798. X    char s128[128];
  1799. X    FILE *fpsrc;
  1800. X    FILE *local = fopen("config.local","r");
  1801. X    static int reported_config_local = 0;
  1802. X
  1803. X    sprintf(mksrc,"%s/Make.src",mdir);
  1804. X    sprintf(mkfl,"%s/Makefile",mdir);
  1805. X
  1806. X    printf("Configuring %s from %s\n",mkfl,mksrc);
  1807. X
  1808. X    if(!(fpsrc = fopen(mksrc,"r")))
  1809. X    {
  1810. X        perror(mksrc);
  1811. X        return;
  1812. X    }
  1813. X
  1814. X    if(debug)
  1815. X        fpmake = stdout;
  1816. X    else
  1817. X    {
  1818. X        if(!(fpmake = fopen(mkfl,"w")))
  1819. X        {
  1820. X            perror(mkfl);
  1821. X            fclose(fpsrc);
  1822. X            if(local)
  1823. X                fclose(local);
  1824. X            return;
  1825. X        }
  1826. X    }
  1827. X
  1828. X    fprintf(fpmake,"#---- configured by Configure revision %s for ECU 3.%02d\n",
  1829. X        rev,PATCHLEVEL);
  1830. X    fprintf(fpmake,"#---- edit %s and rerun Configure to produce this file\n\n",
  1831. X        mksrc);
  1832. X
  1833. X    if(local)
  1834. X    {
  1835. X        fprintf(fpmake,"# config.local inclusions\n");
  1836. X        fprintf(fpmake,"# -----------------------\n");
  1837. X        if(!reported_config_local)
  1838. X            fputs("found config.local:\n",stdout);
  1839. X        while(fgets(s128,sizeof(s128),local))
  1840. X        {
  1841. X            if(!reported_config_local)
  1842. X                fputs(s128,stdout);
  1843. X            fputs(s128,fpmake);
  1844. X        }
  1845. X        if(!reported_config_local)
  1846. X            fputs("\n",stdout);
  1847. X        reported_config_local = 1;
  1848. X        fclose(local);
  1849. X        fprintf(fpmake,"# -----------------------\n");
  1850. X        fputs("\n",fpmake);
  1851. X    }
  1852. X
  1853. X    switch(sys)
  1854. X    {
  1855. X        case S_SCO:
  1856. X            fprintf(fpmake,"SIGTYPE = %s\n\n",sco_sigtype[sco_type]);
  1857. X            break;
  1858. X        case S_ISC:
  1859. X            fprintf(fpmake,"SIGTYPE = %s\n\n",isc_sigtype);
  1860. X            break;
  1861. X        case S_SUN:
  1862. X            fprintf(fpmake,"SIGTYPE = %s\n\n",sun_sigtype);
  1863. X            break;
  1864. X        case S_ISCSVR4:
  1865. X        case S_ESIXSVR4:
  1866. X            fprintf(fpmake,"SIGTYPE = %s\n\n",svr4_sigtype);
  1867. X            break;
  1868. X    }
  1869. X
  1870. X    switch(compiler)
  1871. X    {
  1872. X        case C_CC:
  1873. X            fputs("CC = cc\n",fpmake);
  1874. X            gen_cc_cflags();
  1875. X            break;
  1876. X        case C_GCC:
  1877. X            fputs("CC = gcc\n",fpmake);
  1878. X            gen_gcc_cflags();
  1879. X            break;
  1880. X    }
  1881. X
  1882. X    switch(sys)
  1883. X    {
  1884. X        case S_SCO:
  1885. X            gen_sco_ldflags();
  1886. X            break;
  1887. X        case S_ISC:
  1888. X            gen_isc_ldflags();
  1889. X            break;
  1890. X        case S_SUN:
  1891. X            gen_sun_ldflags();
  1892. X            break;
  1893. X        case S_ISCSVR4:
  1894. X        case S_ESIXSVR4:
  1895. X            gen_svr4_ldflags();
  1896. X            break;
  1897. X    }
  1898. X
  1899. X    fprintf(fpmake,"LBIN = %s\n",bindir);
  1900. X    fprintf(fpmake,"ECULIBDIR = %s\n",libdir);
  1901. X    /*
  1902. X     * we need this info in Makefiles, so it is put here rather
  1903. X     * than ecu.h; must also have this passed thru in CFLAGS
  1904. X     */
  1905. X    switch(sys)
  1906. X    {
  1907. X        case S_SCO:
  1908. X            fprintf(fpmake,"SYSTEM = %s\n",sco_system[sco_type]);
  1909. X            fputs("HDBLIBDIR = /usr/lib/uucp\n",fpmake);
  1910. X            use_ecuungetty = "yes";
  1911. X            break;
  1912. X        case S_ISC:
  1913. X            fputs("SYSTEM = ISC-SVR3\n",fpmake);
  1914. X            fputs("HDBLIBDIR = /usr/lib/uucp\n",fpmake);
  1915. X            use_ecuungetty = "yes";
  1916. X            break;
  1917. X        case S_SUN:
  1918. X            fputs("SYSTEM = SunOS-4.1\n",fpmake);
  1919. X            fputs("HDBLIBDIR = /etc/uucp\n",fpmake);
  1920. X            use_ecuungetty = "no";
  1921. X            break;
  1922. X        case S_ISCSVR4:
  1923. X        case S_ESIXSVR4:
  1924. X            if(sys == S_ISCSVR4)
  1925. X                fputs("SYSTEM = ISC-SVR4\n",fpmake);
  1926. X            else
  1927. X                fputs("SYSTEM = ESIX-SVR4\n",fpmake);
  1928. X            fputs("HDBLIBDIR = /etc/uucp\n",fpmake);
  1929. X            use_ecuungetty = "no";
  1930. X            break;
  1931. X    }
  1932. X
  1933. X
  1934. X    fprintf(fpmake,"USE_ECUUNGETTY = %s\n",use_ecuungetty);
  1935. X#if !defined(WHT)
  1936. X    fputs("#",fpmake);
  1937. X#endif
  1938. X    fputs("BINTIME = /bin/time\n",fpmake);
  1939. X
  1940. X    fprintf(fpmake,"\n#---- end of configured make variables\n");
  1941. X
  1942. X    while(!debug && fgets(s128,sizeof(s128),fpsrc))
  1943. X        fputs(s128,fpmake);
  1944. X
  1945. X    fclose(fpsrc);
  1946. X    if(!debug)
  1947. X        fclose(fpmake);
  1948. X
  1949. X}
  1950. X
  1951. Xmain(argc,argv)
  1952. Xint argc;
  1953. Xchar **argv;
  1954. X{
  1955. X    int itmp;
  1956. X    int getopt_libdir = 0;
  1957. X    int getopt_bindir = 0;
  1958. X    int getopt_tty = 0;
  1959. X    int getopt_baud = 0;
  1960. X    int getopt_parity = 0;
  1961. X    int have_lng353 = 0;
  1962. X    char s128[128];
  1963. X    char **makedir;
  1964. X    char *tlib;
  1965. X    char *tcap;
  1966. X    struct stat fst;
  1967. X    extern int optind;
  1968. X    extern char *optarg;
  1969. X
  1970. X    setbuf(stdin,NULL);
  1971. X    setbuf(stdout,NULL);
  1972. X
  1973. X    while((itmp = getopt(argc,argv,"dsiS234ugcT:B:P:b:l:")) != -1)
  1974. X    {
  1975. X        switch(itmp)
  1976. X        {
  1977. X            case 'd': debug = 1; break;
  1978. X
  1979. X            case 's': sys = S_SCO; break;
  1980. X            case 'i': sys = S_ISC; break;
  1981. X            case 'S': sys = S_SUN; break;
  1982. X            case 'I': sys = S_ISCSVR4; break;
  1983. X            case 'E': sys = S_ESIXSVR4; break;
  1984. X
  1985. X            case '2': sco_type = X_X286; break;
  1986. X            case '3': sco_type = X_X386; break;
  1987. X            case 'u':
  1988. X                sco_type = X_UNIX;
  1989. X                break;
  1990. X            case 'v':
  1991. X                sco_type = X_32v4;
  1992. X                pid_type = "\t-DPID_T=short \\\n";
  1993. X                have_lng353 = !stat("/etc/perms/ccsls",&fst);
  1994. X                break;
  1995. X
  1996. X            case 'g': compiler = C_GCC; break;
  1997. X            case 'c': compiler = C_CC; break;
  1998. X
  1999. X            case 'T':
  2000. X                tty = optarg;
  2001. X                getopt_tty = 1;
  2002. X                break;
  2003. X
  2004. X            case 'B':
  2005. X                baud = optarg;
  2006. X                getopt_baud = 1;
  2007. X                break;
  2008. X
  2009. X            case 'P':
  2010. X                parity = *optarg;
  2011. X                if(isupper(parity))
  2012. X                    parity = tolower(parity);
  2013. X                getopt_parity = 1;
  2014. X                break;
  2015. X
  2016. X            case 'b':
  2017. X                bindir = optarg;
  2018. X                getopt_bindir = 1;
  2019. X                break;
  2020. X
  2021. X            case 'l':
  2022. X                libdir = optarg;
  2023. X                getopt_libdir = 1;
  2024. X                break;
  2025. X        }
  2026. X    }
  2027. X
  2028. X    /*
  2029. X     * set up raw/cooked tty setty() macro
  2030. X     */
  2031. X    ioctl(0,TCGETA,&tty0);
  2032. X    tty1 = tty0;
  2033. X    tty1.c_lflag &= ~(ICANON);
  2034. X    tty1.c_cc[VMIN] = 1;
  2035. X    tty1.c_cc[VTIME] = 0;
  2036. X
  2037. X    for(itmp = 1; itmp < 32; itmp++)
  2038. X        signal(itmp,goodbye);
  2039. X
  2040. X    if(!debug)
  2041. X    {
  2042. X        tputstrs(strs_intro1);
  2043. X        printf("ECU 3.%02d, config version %s\n",PATCHLEVEL,rev);
  2044. X        tputstrs(strs_intro2);
  2045. X    }
  2046. X
  2047. X    /*
  2048. X     * try to make a stab at default
  2049. X     * two vendor compilers have thoughtfully provided a reliable built-in
  2050. X     * default to ISC if not one of those two
  2051. X     */
  2052. X    itmp = 'i';
  2053. X#ifdef M_SYSV
  2054. X    itmp = 's';
  2055. X#endif
  2056. X#ifdef sun
  2057. X    itmp = 'S';
  2058. X#endif
  2059. X
  2060. X    if(sys < 0)
  2061. X    {
  2062. X        switch(tgetopt("\
  2063. XChoose your system type (or the 'nearest equivalent') \n\
  2064. X                s  SCO,\n\
  2065. X                i  ISC,\n\
  2066. X                S  SunOS 4.1,\n\
  2067. X                I  ISC SVR4 or\n\
  2068. X                E  ESIX SVR4 system\n\
  2069. X",
  2070. X            "siSIE",itmp))
  2071. X        {
  2072. X            case 's':  
  2073. X                sys = S_SCO; 
  2074. X                tty = "tty1a";
  2075. X                break;
  2076. X            case 'i':  
  2077. X                sys = S_ISC; 
  2078. X                tty = "acu00";
  2079. X                break;
  2080. X            case 'S':  
  2081. X                sys = S_SUN; 
  2082. X                tty = "ttya";
  2083. X                printf(
  2084. X"You need System V IPC configured in your kernel. I didn't check for it.\n");
  2085. X                break;
  2086. X            case 'I':  
  2087. X                sys = S_ISCSVR4; 
  2088. X                tty = "tty00";
  2089. X                break;
  2090. X            case 'E':  
  2091. X                sys = S_ESIXSVR4; 
  2092. X                tty = "tty00";
  2093. X                break;
  2094. X        }
  2095. X    }
  2096. X
  2097. X    if((sys == S_SCO) && (sco_type < 0))
  2098. X    {
  2099. X        switch(tgetopt("\
  2100. XChoose between 2  XENIX/286,\n\
  2101. X               3  XENIX/386,\n\
  2102. X               u  ODT 1.0.x, ODT 1.1, UNIX 3.20-3.2v2 or\n\
  2103. X               v  ODT 2.0, UNIX 3.2v4\n\
  2104. X(The choice between 'u' and 'v' is for the Development System you have.\n\
  2105. XUsing the 3.2v2DS with 3.2v4OS will \"work\" but erratic behavior is most\n\
  2106. Xcertain to occur (e.g., long filenames will confuse the 3.2v2 library).\n\
  2107. X ","23uv",
  2108. X#ifdef M_UNIX
  2109. X'u'
  2110. X#else
  2111. X#ifdef M_I286
  2112. X'2'
  2113. X#else
  2114. X#ifdef M_I286
  2115. X'3'
  2116. X#else
  2117. X#ifdef sun
  2118. X'S'
  2119. X#else
  2120. X'i'
  2121. X#endif
  2122. X#endif
  2123. X#endif
  2124. X#endif
  2125. X    ))
  2126. X        {
  2127. X            case '2':  
  2128. X                sco_type = X_X286; 
  2129. X                tlib = "/lib/Llibtermlib.a";
  2130. X                tcap = "/lib/Llibtermcap.a";
  2131. X                break;
  2132. X            case '3':  
  2133. X                sco_type = X_X386; 
  2134. X                tlib = "/lib/386/Slibtermlib.a";
  2135. X                tcap = "/lib/386/Slibtermcap.a";
  2136. X                break;
  2137. X            case 'u':  
  2138. X                sco_type = X_UNIX; 
  2139. X                tlib = "/usr/lib/libtermlib.a";
  2140. X                tcap = "/usr/lib/libtermcap.a";
  2141. X#ifdef S_IFLNK /* 3.2v2 DS with 3.2v4 OS */
  2142. X                fputs("OK, we will try to make for 3.2v4 with a 3.2v2 DS\n",
  2143. X                    stdout);
  2144. X#endif
  2145. X                break;
  2146. X            case 'v':  
  2147. X                sco_type = X_32v4; 
  2148. X                pid_type = "\t-DPID_T=short\\\n";
  2149. X                tlib = "/usr/lib/libtermlib.a";
  2150. X                tcap = "/usr/lib/libtermcap.a";
  2151. X                have_lng353 = !stat("/etc/perms/ccsls",&fst);
  2152. X                break;
  2153. X        }
  2154. X
  2155. X        /*
  2156. X         * Some of the following may have minor flaws making it
  2157. X         * open to political nitpicking (this is 1992 :-!), but
  2158. X         * here is truth:
  2159. X         *
  2160. X         * With the advent of terminfo curses in XENIX 2.?.?,
  2161. X         * SCO until 3.2v2 had a question at install time asking what
  2162. X         * kind of curses installation you want.  It was somebody's
  2163. X         * bright idea to settle the differences between XENIX V7/BSD
  2164. X         * -lcurses+-ltermcap curses vs. the System V -lcurses terminfo
  2165. X         * method.  Well, bright people go on to other things and
  2166. X         * continutity gets lost.  The hard link driven, logical ld time
  2167. X         * -lcurses = (XENIX/BSD/V7) ? -ltcap : -ltinfo
  2168. X         * -ltermlib = (XENIX/BSD/V7) ? -ltermcap : -ltinfo
  2169. X         * stuff appears to have disappeared in 3.2v2.  I hope it is not
  2170. X         * too late to get it back into 3.2v4, but the degenerate 3.2v2
  2171. X         * case adds yet another variation on the "ever-improved-but-
  2172. X         * multivariate" SCO development environment.
  2173. X         */
  2174. X        if(!access(tcap,0))
  2175. X            sco_libs = _sco2_libs;
  2176. X        else if(!access(tlib,0))
  2177. X            sco_libs = _sco_libs;
  2178. X        else
  2179. X        {
  2180. X            sleep(1);    /* psychological */
  2181. X            printf("\nI find neither %s nor %s.\n",tcap,tlib);
  2182. X            printf("Do you have curses support installed? I cannot proceed.\n");
  2183. X            goodbye(1);
  2184. X        }
  2185. X
  2186. X    }
  2187. X
  2188. X    if((sys == S_SCO) && (sco_type == X_X286))
  2189. X    {
  2190. X        /* don't know about gcc on 286 systems */
  2191. SHAR_EOF
  2192. true || echo 'restore of config.c failed'
  2193. fi
  2194. echo 'End of ecu320 part 4'
  2195. echo 'File config.c is continued in part 5'
  2196. echo 5 > _shar_seq_.tmp
  2197. exit 0
  2198.  
  2199. exit 0 # Just in case...
  2200.