home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-387-Vol-3of3.iso / e / elv17src.zip / MAKEFILE.MIX < prev    next >
Text File  |  1992-12-30  |  20KB  |  742 lines

  1. # combined Makefile for ELVIS - a clone of `vi`
  2. #
  3. # After editing this Makefile as described below, you should...
  4. #
  5. # Use `make` to compile all programs
  6. # Use `make install` to copy the programs to the BIN directory
  7. # Use `make clean` to remove all object files
  8. # Use `make clobber` to remove everything except source & documentation
  9. # Use `make uue` to produce uuencoded compressed tar archives of the source
  10. # Use `make sh` to produce shar archives of the source
  11. #
  12. # Several groups of Makefile settings are included below.  Choose *ONE* group
  13. # of settings for your particular system, and leave the others commented out.
  14. # The meanings of these settings are:
  15. #    OBJ    filename extension for unlinked object files -- usually .o
  16. #    EXE    filename extension for elvis executable file -- .exe, .tpp or null
  17. #    COM    filename extension for executable support files -- .com, .tpp or null
  18. #    EXTRA    version-specific object files used in elvis
  19. #    EXTRA2    version-specific object files used in elvis & elvrec
  20. #    LIBS    any special libraries, such as "-ltermcap"
  21. #    BIN    directory where executables should be installed
  22. #    CC    the C compiler command, possibly with "memory model" flags
  23. #    CFLAGS    compiler flags used to select compile-time options
  24. #    LNK    the linker command needed to link OBJ files (if not cc)
  25. #    LFLAGS    linker flags used to select link-time options
  26. #    SMALL    flag for special small memory model compilation -- usually null
  27. #    LARGE    flag for special large memory model compilation -- usually null
  28. #    OF    link flag to control the output file's name -- usually -o<space>
  29. #    RF    flag used to denote "compile but don't link" -- usually -c
  30. #    PROGS    the list of all programs
  31. #    CHMEM    any extra commands to be run after ELVIS is linked
  32. #    SORT    if the "tags" file must be sorted, then SORT=-DSORT
  33. #    RM    the name of a program that deletes files
  34. #    CP    name of a program that copies files -- copy or cp, usually
  35. #    SYS    type of system & compiler: unx/tos/os9/dos (maybe vms?)
  36. #    DUMMY    usually nothing, but OS9 needs "dummy"
  37. #    CFG    name of compiler configuration file -- usually null
  38.  
  39. #---- These settings are recommended for System-V UNIX and SCO XENIX-386 ----
  40. #OBJ=    .o
  41. #EXE=
  42. #COM=
  43. #EXTRA=    unix$(OBJ)
  44. #EXTRA2=
  45. #LIBS=    -ltermcap
  46. #BIN=    /usr/local/bin
  47. #CC=    cc
  48. #CFLAGS=    -DM_SYSV -O -DNO_SHIFT_FKEYS
  49. #SMALL=
  50. #LARGE=
  51. #OF=    -o ""
  52. #RF=    -c
  53. #PROGS=    elvis$(EXE) ctags$(COM) ref$(COM) elvrec$(COM) fmt$(COM) \
  54. #    elvprsv$(COM)
  55. #CHMEM=
  56. #SORT=    -DSORT
  57. #RM=    rm -f
  58. #CP=    cp
  59. #SYS=    unx
  60. #DUMMY=
  61. #CFG=
  62.  
  63. #---- These settings are recommended for SCO XENIX-286 ----
  64. #OBJ=    .o
  65. #EXE=
  66. #COM=
  67. #EXTRA=    unix$(OBJ)
  68. #EXTRA2=
  69. #LIBS=    -ltcap
  70. #BIN=    /usr/local/bin
  71. #CC=    cc
  72. #CFLAGS=    -Ox -DCS_IBMPC
  73. #SMALL=
  74. #LARGE=    -M2m
  75. #OF=    -o ""
  76. #RF=    -c
  77. #PROGS=    elvis$(EXE) ctags$(COM) ref$(COM) elvrec$(COM) fmt$(COM) \
  78. #    elvprsv$(COM)
  79. #CHMEM=
  80. #SORT=    -DSORT
  81. #RM=    rm -f
  82. #CP=    cp
  83. #SYS=    unx
  84. #DUMMY=
  85. #CFG=    
  86. ###### compilation rule for Xenix-286
  87. #.c.o:
  88. #    $(CC) $(LARGE) $(CFLAGS) $(RF) $<
  89.  
  90. #---- These settings are recommended for BSD 4.3 UNIX and SunOS ----
  91. #OBJ=    .o
  92. #EXE=    
  93. #COM=    
  94. #EXTRA=    unix$(OBJ)
  95. #EXTRA2=
  96. #LIBS=    -ltermcap
  97. #BIN=    /usr/local/bin
  98. #CC=    cc
  99. #CFLAGS=    -Dbsd -O
  100. #SMALL=
  101. #LARGE=
  102. #OF=    -o ""
  103. #RF=    -c
  104. #PROGS=    elvis$(EXE) ctags$(COM) ref$(COM) elvrec$(COM) elvprsv$(COM)
  105. #CHMEM=
  106. #SORT=    -DSORT
  107. #RM=    rm -f
  108. #CP=    cp
  109. #SYS=    unx
  110. #DUMMY=
  111. #CFG=
  112.  
  113. #---- These settings are recommended for Coherent 4.0 ----
  114. #OBJ=.o
  115. #EXE=
  116. #COM=
  117. #EXTRA=    unix$(OBJ) tinyprnt$(OBJ)
  118. #EXTRA2=
  119. #LIBS=    -ltermcap
  120. #BIN=    /usr/bin
  121. #CC=    cc
  122. #CFLAGS=    -O -VSUVAR -DNO_S5WINSIZE
  123. #SMALL=
  124. #LARGE=
  125. #OF=    -o ""
  126. #RF=    -c
  127. #PROGS=    elvis$(EXE) ctags$(COM) ref$(COM) elvrec$(COM) fmt$(COM) \
  128. #    elvprsv$(COM)
  129. #CHMEM=
  130. #SORT=
  131. #RM=    rm -f
  132. #CP=    cp
  133. #SYS=    unx
  134. #DUMMY=
  135. #CFG=
  136.  
  137. #---- These settings are recommended for Coherent 3.x ----
  138. #OBJ=.o
  139. #EXE=
  140. #COM=
  141. #EXTRA=    unix$(OBJ) tinyprnt$(OBJ)
  142. #EXTRA2=
  143. #LIBS=    -lterm
  144. #BIN=    /usr/bin
  145. #CC=    cc
  146. #CFLAGS=    -O -DCOHERENT -VSUVAR -DCRUNCH -DNO_CHARATTR -DNO_CURSORSHAPE \
  147. #    -DNO_DIGRAPH -DNO_MKEXRC -DNO_POPUP -DNO_FKEYS -DNO_ABBR -DNO_TAGSTACK
  148. #SMALL=
  149. #LARGE=
  150. #OF=    -o ""
  151. #RF=    -c
  152. #EVAL=    eval
  153. #PROGS=    elvis$(EXE) ctags$(COM) ref$(COM) elvrec$(COM) fmt$(COM) \
  154. #    elvprsv$(COM)
  155. #CHMEM=    fixstack 2000 elvis$(EXE)
  156. #SORT=
  157. #RM=    rm -f
  158. #CP=    cp
  159. #SYS=    unx
  160. #DUMMY=
  161. #CFG=
  162.  
  163. #---- These settings are recommended for Minix-ST ----
  164. #OBJ=    .o
  165. #EXE=
  166. #COM=
  167. #EXTRA=    unix$(OBJ)
  168. #EXTRA2=
  169. #LIBS=
  170. #BIN=    /usr/bin
  171. #CC=    cc
  172. ##CC=    gcc -s
  173. #CFLAGS=
  174. #SMALL=
  175. #LARGE=
  176. #OF=    -o ""
  177. #RF=    -c
  178. #PROGS=    elvis$(EXE) ctags$(COM) ref$(COM) elvrec$(COM) fmt$(COM) \
  179. #    elvprsv$(COM)
  180. #CHMEM=    chmem =18000 elvis$(EXE)
  181. #SORT=
  182. #RM=    rm -f
  183. #CP=    cp
  184. #SYS=    unx
  185. #DUMMY=
  186. #CFG=
  187.  
  188. #---- These settings are recommended for Minix-PC ----
  189. #OBJ=    .s
  190. #EXE=
  191. #COM=
  192. #EXTRA=    tinytcap$(OBJ) unix$(OBJ) tinyprnt$(OBJ)
  193. #EXTRA2=
  194. #LIBS=
  195. #BIN=    /usr/bin
  196. #CC=    cc -i
  197. #CFLAGS=    -O -DCRUNCH \
  198. #    -DNO_MKEXRC -DNO_CURSORSHAPE -DNO_CHARATTR -DNO_SHOWMODE \
  199. #    -DNO_MODELINE -DNO_OPTCOLS -DNO_DIGRAPH -DNO_EXTENSIONS \
  200. #    -DNO_ERRLIST -DNO_FKEY -DNO_VISIBLE -DNO_COLOR -DNO_POPUP \
  201. #    -DNO_TAGSTACK
  202. ###(not -NO_AT -DNO_SENTENCE -DNO_ABBR -DNO_RECYCLE -DNO_MAGIC -DNO_CHARSEARCH)
  203. #SMALL=
  204. #LARGE=
  205. #OF=    -o ""
  206. #RF=    -c
  207. #PROGS=    elvis$(EXE) ctags$(COM) ref$(COM) elvrec$(COM) fmt$(COM) \
  208. #    elvprsv$(COM)
  209. #CHMEM=
  210. #SORT=
  211. #RM=    rm -f
  212. #CP=    cp
  213. #SYS=    unx
  214. #DUMMY=
  215. #CFG=
  216.  
  217. #---- These settings are recommended for Amiga port done using Aztec 5.2b ----
  218. #    For AmigaDOS 2.04, you're all set! Its the default target!
  219. #OBJ=    .o
  220. #EXE=
  221. #COM=
  222. #EXTRA=    amiga$(OBJ) amitty$(OBJ) amisysio$(OBJ)
  223. #EXTRA2= tinytcap$(OBJ)
  224. #LIBS=    -lc
  225. #BIN=    sys:utilities
  226. #CC=    cc
  227. #CFLAGS=    -sob -Damiga
  228. #LNK=    ln
  229. #LFLAGS=
  230. #SMALL=
  231. #LARGE=
  232. #OF=    -o 
  233. #RF=
  234. #PROGS1=    elvis$(EXE) ctags$(COM) ref$(COM) elvrec$(COM) fmt$(COM) 
  235. #PROGS2=    elvprsv$(COM) ex$(COM) vi$(COM) view$(COM) input$(COM)
  236. #PROGS=    $(PROGS1) $(PROGS2)
  237. #CHMEM=
  238. #SORT=
  239. #RM=    delete
  240. #CP=    copy
  241. #SYS=    ami
  242. #DUMMY=
  243. #CFG=
  244.  
  245. #---- These settings are recommended for MS-DOS + MS-C + NDMAKE ----
  246. #OBJ=    .obj
  247. #EXE=    .exe
  248. #COM=    .exe    # .com might work, try it
  249. #EXTRA=    pc$(OBJ) sysdos$(OBJ) tinytcap$(OBJ)
  250. #EXTRA2=
  251. #LIBS=
  252. #BIN=    c:\dos
  253. #CC=    cl
  254. #CFLAGS=    -O -DCS_IBMPC -DCS_SPECIAL -DINTERNAL_TAGS
  255. #SMALL= /A0c
  256. #LARGE=    /A0l
  257. #OF=    -o 
  258. #RF=    -c
  259. #PROGS1=    elvis$(EXE) ex$(COM) ctags$(COM) ref$(COM) elvrec$(COM)
  260. #PROGS2=    wildcard$(COM) fmt$(COM) elvprsv$(COM)
  261. #PROGS=    $(PROGS1) $(PROGS2)
  262. #CHMEM=
  263. #SORT=
  264. #RM=    del
  265. #CP=    copy
  266. #SYS=    dos
  267. #DUMMY=
  268. #CFG=
  269. ###### compilation rule for MS-C
  270. #.c.obj:
  271. #    $(CC) $(LARGE) $(CFLAGS) $(RF) $<
  272.  
  273. ##---- These settings are recommended for MS-DOS + TURBO/BORLAND C ----
  274. ## CFG: name of the compiler config and response files
  275. ## TC_LIB & TC_INC: location of standard libraries and header files.
  276. #OBJ=    .obj
  277. #EXE=    .exe
  278. #COM=    .com
  279. #EXTRA=    pc$(OBJ) sysdos$(OBJ) tinytcap$(OBJ)
  280. #EXTRA2=
  281. #LIBS=@borland.rsp
  282. #BIN=    c:\bin
  283. #CFG=    borland.cfg borland.rsp
  284. #CC=    bcc
  285. #TC_LIB=    c:\bcc\lib
  286. #TC_INC=    c:\bcc\include
  287. #CFLAGS=    +borland.cfg
  288. ## uncomment next line iff using bcc, and you want to use pre-compiled headers
  289. #HDRS=    -H -H=borland.hdr
  290. ## uncomment next line to use med memory model for elvis
  291. ##CRNCH=    -DCRUNCH -mm
  292. #TC_CFLAGS1=    -ml -O -f- -w- -v -vi- -G- -DCS_IBMPC -DCS_SPECIAL -DINTERNAL_TAGS
  293. #TC_CFLAGS2=    $(HDRS) $(CRNCH) -I$(TC_INC) -L$(TC_LIB)
  294. ## extra flags for compiling support programs
  295. #SMALL=    -mt -lt -H- -v-
  296. #LARGE=
  297. ## extra flags for linking elvis (strip symbols)
  298. #EFLAGS=    -v-
  299. #OF=    -e
  300. #RF=    -c
  301. #PROGS1=    elvis$(EXE) ex$(COM) ctags$(COM) ref$(COM) elvrec$(COM)
  302. #PROGS2=    wildcard$(COM) fmt$(COM) elvprsv$(COM)
  303. #PROGS=    $(PROGS1) $(PROGS2)
  304. #CHMEM=
  305. #SORT=
  306. #RM=    del
  307. #CP=    copy
  308. #SYS=    dos
  309. #DUMMY=
  310. ##source file compilation rule:
  311. #.c.obj:
  312. #    $(CC) $(CFLAGS) $(RF) {$< }
  313.  
  314. #---- These settings can make DOS executables using the SCO UNIX compiler
  315. #OBJ=    .o
  316. #EXE=    .exe
  317. #COM=    .exe
  318. #EXTRA=    pc$(OBJ) sysdos$(OBJ) tinytcap$(OBJ)
  319. #EXTRA2=
  320. #LIBS=
  321. #BIN=    a:
  322. #CC=    cc -dos -F 4000
  323. #CFLAGS=    -DXDOS -O -DCS_IBMPC -DCS_SPECIAL -DINTERNAL_TAGS
  324. #SMALL=    -M0s
  325. #LARGE=    -M0l
  326. #OF=    -o ""
  327. #RF=    -c
  328. #PROGS1=    elvis$(EXE) ex$(COM) ctags$(COM) ref$(COM) elvrec$(COM)
  329. #PROGS2=    wildcard$(COM) fmt$(COM) elvprsv$(COM)
  330. #PROGS=    $(PROGS1) $(PROGS2)
  331. #CHMEM=
  332. #SORT=
  333. #RM=    rm -f
  334. #CP=    doscp -r
  335. #SYS=    xdos
  336. #DUMMY=
  337. #CFG=
  338. ###### compilation rule for UNIX->DOS cross compiler
  339. #.c.o:
  340. #    $(CC) $(LARGE) $(CFLAGS) -c $<
  341.  
  342. #--- These settings are recommended for Atari TOS + Mark Williams C or Gnu C ----
  343. #OBJ=    .o
  344. #EXE=    .ttp
  345. #COM=    .ttp
  346. #EXTRA=    sysdos$(OBJ) tinytcap$(OBJ)
  347. #EXTRA2=    atari$(OBJ)
  348. #LIBS=
  349. #BIN=    c:\ #
  350. #CC=    cc -VPEEP
  351. ##CC=    gcc -s
  352. #CFLAGS=    -O -DCS_IBMPC -DCS_SPECIAL
  353. #SMALL=
  354. #LARGE=
  355. #OF=    -o 
  356. #RF=    -c
  357. #PROGS=    elvis$(EXE) ctags$(COM) ref$(COM) elvrec$(COM) wildcard$(COM) \
  358. #    shell$(COM) fmt$(COM) elvprsv$(COM)
  359. #CHMEM=    @echo -n
  360. #SORT=
  361. #RM=    rm -f
  362. #CP=    copy
  363. #SYS=    tos
  364. #DUMMY=
  365. #CFG=
  366.  
  367. #---- These settings are recommended for OS-9/68K V2.3 ----
  368. #OBJ=    .r
  369. #EXE=
  370. #COM=
  371. #EXTRA=    tinyprnt$(OBJ)
  372. #EXTRA2=    osk$(OBJ)
  373. #LIBS=    -l=/dd/lib/termlib.l
  374. #BIN=    /dd/usr/cmds
  375. #CC=    cc
  376. #ODIR=    /dd/usr/src/elvis
  377. #CFLAGS=    -gq -m=2 -DNO_CURSORSHAPE
  378. #SMALL=
  379. #LARGE=
  380. #OF=    -f=$(ODIR)/
  381. #RF=    -r
  382. #PROGS=    elvis$(EXE) vi$(COM) view$(COM) input$(COM) ctags$(COM) ref$(COM) \
  383. #    elvrec$(COM) fmt$(COM) elvprsv$(COM)
  384. #PROGS1=
  385. #PROGS2=
  386. #CHMEM=    touch elvis$(EXE)
  387. #SORT=
  388. #RM=    del *.stb *.dbg
  389. #CP=    copy
  390. #SYS=    os9
  391. #DUMMY=    dummy
  392. #CFG=
  393. #TC_CFLAGS1=
  394. #TC_CFLAGS2=
  395. #EFLAGS=
  396. #LNK=
  397. #LFLAGS=
  398.  
  399. ##---- These settings probably won't work for VAX/VMS, but they might ----
  400. #OBJ=    .obj
  401. #EXE=    .exe
  402. #COM=    .exe
  403. #EXTRA=    tinytcap$(OBJ)
  404. #EXTRA2=    vmsio$(OBJ)
  405. #LIBS=
  406. #BIN
  407. #CC=    cc
  408. #CFLAGS=    /define=NO_CURSORSHAPE /define=INTERNAL_TAGS
  409. #SMALL=
  410. #LARGE=
  411. #OF=    /exe=
  412. #RF=
  413. #PROGS=    elvis.exe elvprsv.exe elvrec.exe ctags.exe ref.exe
  414. #CHMEM=
  415. #SORT=
  416. #RM=    del
  417. #CP=    copy
  418. #SYS=    vms
  419. #DUMMY=    
  420. #CFG=    vmsopt.opt
  421. #
  422. ##compilation rules
  423. #.exe.c:
  424. #    $(CC) $<.c
  425. #    link $(OF)$<.exe,vmslink/opt
  426. #.obj.c:
  427. #    $(CC) $(CFLAGS) $<.c
  428.  
  429. ###########################################################################
  430. ###########################################################################
  431. ###                                                                     ###
  432. ###     The rest of this Makefile contains no user-serviceable parts    ###
  433. ###                                                                     ###
  434. ###########################################################################
  435. ###########################################################################
  436.  
  437. OBJS1=    blk$(OBJ) cmd1$(OBJ) cmd2$(OBJ) ctype$(OBJ) curses$(OBJ) cut$(OBJ)
  438. OBJS2=    ex$(OBJ) input$(OBJ) main$(OBJ) misc$(OBJ) modify$(OBJ) move1$(OBJ)
  439. OBJS3=    move2$(OBJ) move3$(OBJ) move4$(OBJ) move5$(OBJ) opts$(OBJ) recycle$(OBJ)
  440. OBJS4=    redraw$(OBJ) regexp$(OBJ) regsub$(OBJ) system$(OBJ) tio$(OBJ) tmp$(OBJ)
  441. OBJS5=    vars$(OBJ) vcmd$(OBJ) vi$(OBJ)
  442. OBJS=    $(OBJS1) $(OBJS2) $(OBJS3) $(OBJS4) $(OBJS5)
  443.  
  444. ALIAS=    alias$(OBJ)
  445.  
  446. SRC1=    Elvis.lnk Elvis.mak Elvis.prj Makefile.mix alias.c atari.c \
  447.     ctags.c pc.c ref.c shell.c sysdos.c
  448. SRC2=    elvrec.c wildcard.c fmt.c profile.sh osk.c osk.h elvprsv.c unix.c \
  449.     blk.c config.h instman.sh
  450. SRC3=    cmd1.c cmd2.c curses.c
  451. SRC4=    curses.h cut.c ex.c input.c main.c misc.c
  452. SRC5=    modify.c move1.c move2.c move3.c move4.c move5.c opts.c recycle.c redraw.c
  453. SRC6=    regexp.c regexp.h regsub.c tinytcap.c tio.c tmp.c
  454. SRC7=    system.c vars.c vcmd.c vi.c vi.h tinyprnt.c
  455. SRC8=    ctype.c ctype.h borland.h novice.rc prsvdos.c prsvunix.c \
  456.     vmsbuild.com vmsio.c vmslink.opt vmsread.me vmssetup.com vmswild.c \
  457.     amiga.c amiprsv.c amistat.h amisysio.c amitty.c amiwild.c
  458.  
  459. ###########################################################################
  460. all: $(PROGS)
  461.     @echo done.
  462.  
  463. elvis$(EXE): linkelv.$(SYS)
  464.     @echo "elvis linked."
  465.  
  466. ctags$(COM): $(CFG) ctags.c wildcard.c
  467.     $(CC) $(CFLAGS) $(SMALL) $(SORT) $(OF)ctags$(COM) ctags.c $(EXTRA2)
  468.  
  469. ref$(COM): $(CFG) ref.c
  470.     $(CC) $(CFLAGS) $(SMALL) $(OF)ref$(COM) ref.c
  471.  
  472. elvrec$(COM): $(CFG) elvrec.c
  473.     $(CC) $(CFLAGS) $(SMALL) $(OF)elvrec$(COM) elvrec.c $(EXTRA2)
  474.  
  475. ex$(COM): linkex.$(SYS)
  476.     @echo "ex done."
  477.  
  478. vi$(COM): linkvi.$(SYS)
  479.     @echo "vi done."
  480.  
  481. view$(COM): linkview.$(SYS)
  482.     @echo "view done."
  483.  
  484. input$(COM): linkinput.$(SYS)
  485.     @echo "input done."
  486.  
  487. shell$(COM): $(CFG) shell.c
  488.     $(CC) $(CFLAGS) $(SMALL) $(OF)shell$(COM) shell.c
  489.  
  490. wildcard$(COM): $(CFG) wildcard.c ctype.c
  491.     $(CC) $(CFLAGS) $(SMALL) $(OF)wildcard$(COM) wildcard.c
  492.  
  493. fmt$(COM): $(CFG) fmt.c
  494.     $(CC) $(CFLAGS) $(SMALL) $(OF)fmt$(COM) fmt.c $(EXTRA2)
  495.  
  496. elvprsv$(COM): $(CFG) elvprsv.c amiprsv.c prsvunix.c prsvdos.c wildcard.c ctype.c
  497.     $(CC) $(CFLAGS) $(SMALL) $(OF)elvprsv$(COM) elvprsv.c
  498.  
  499. ##############################################################################
  500. # "It all depends..."
  501.  
  502. $(OBJS): vi.h curses.h config.h regexp.h ctype.h
  503.  
  504. ##############################################################################
  505. # The way to link elvis is system dependent, and maybe compiler dependent too.
  506.  
  507. # elvis executable compilation rule for: AmigaDOS
  508. linkelv.ami: $(OBJS) $(EXTRA) $(EXTRA2)
  509.     $(LNK) $(LFLAGS) $(OF)elvis$(EXE) $(OBJS) $(EXTRA) $(EXTRA2) $(LIBS)
  510.     $(CHMEM)
  511.     @touch $@
  512.  
  513. # elvis executable compilation rule for: all unix, os9, tos, msc dos
  514. linkelv.unx linkelv.tos linkelv.os9 linkelv.cl linkelv.xdos: \
  515.         $(OBJS) $(EXTRA) $(EXTRA2)
  516.     $(CC) $(LARGE) $(CFLAGS) $(OF)elvis$(EXE) $(OBJS) $(EXTRA) $(EXTRA2) $(LIBS)
  517.     $(CHMEM)
  518.     @touch $@
  519.  
  520. linkelv.dos: linkelv.$(CC)
  521.  
  522. # elvis executable compilation rule for: borland tcc, bcc
  523. linkelv.bcc linkelv.tcc: $(CFG) $(OBJS) $(EXTRA) $(EXTRA2)
  524.     $(CC) $(CFLAGS) $(LIBS)
  525.     @echo done > linkelv.$(CC)
  526.  
  527. linkelv.vms: $(OBJS) $(EXTRA) $(EXTRA2)
  528.     link$(OF)elvis.exe main,$(CFG)/opt
  529.  
  530. ##############################################################################
  531.  
  532. # borland/turbo c config files
  533. borland.cfg: $(DUMMY)
  534.     echo $(TC_CFLAGS1)> borland.cfg
  535.     echo $(TC_CFLAGS2)>> borland.cfg
  536.  
  537. borland.rsp: $(DUMMY)
  538.     echo $(EFLAGS) $(OF)elvis$(EXE) > borland.rsp
  539.     echo $(OBJS1)>> borland.rsp
  540.     echo $(OBJS2)>> borland.rsp
  541.     echo $(OBJS3)>> borland.rsp
  542.     echo $(OBJS4)>> borland.rsp
  543.     echo $(OBJS5)>> borland.rsp
  544.     echo $(EXTRA)>> borland.rsp
  545.  
  546. ##############################################################################
  547. # elvis executable compilation rule for: AmigaDOS
  548. linkex.ami: alias.o
  549.     $(LNK) $(LFLAGS) $(OF)ex$(EXE) alias.o $(LIBS)
  550.  
  551. linkex.unx linkex.tos linkex.xdos linkex.dos linkex.vms: $(CFG) alias.c
  552.     $(CC) $(CFLAGS) $(SMALL) $(OF)ex$(COM) alias.c
  553.  
  554. linkex.os9: $(DUMMY)
  555.     @echo done >/nil
  556.  
  557. linkvi.ami linkvi.unx linkvi.tos linkvi.xdos linkvi.dos linkvi.vms: ex$(COM)
  558.     $(CP) ex$(COM) vi$(COM)
  559.  
  560. linkvi.os9: alias.r
  561.     $(CC) $(CFLAGS) $(OF)vi$(COM) alias.r
  562.     @touch $@
  563.  
  564. linkview.ami linkview.unx linkview.tos linkview.xdos linkview.dos linkview.vms: ex$(COM)
  565.     $(CP) ex$(COM) view$(COM)
  566.  
  567. linkview.os9: alias.r
  568.     $(CC) $(CFLAGS) $(OF)view$(COM) alias.r
  569.     @touch $@
  570.  
  571. linkinput.ami linkinput.unx linkinput.tos linkinput.xdos linkinput.dos linkinput.vms: ex$(COM)
  572.     $(CP) ex$(COM) input$(COM)
  573.  
  574. linkinput.os9: alias.r
  575.     $(CC) $(CFLAGS) $(OF)input$(COM) alias.r
  576.     @touch $@
  577.  
  578. ##############################################################################
  579. # installation is system-dependent
  580.  
  581. install: $(PROGS) inst.$(SYS)
  582.     @echo Installation complete.
  583.  
  584. inst.ami: $(DUMMY)
  585.     MakeDir $(BIN)/Elvis
  586.     Assign Elvis: $(BIN)/Elvis
  587.     $(CP) $(PROGS) Elvis:
  588.     @echo ::: YOU STILL NEED TO EDIT THE S:STARTUP-SEQUENCE FILE,
  589.     @echo ::: TO HAVE TEMP FILES PRESERVED AFTER A SYSTEM CRASH.
  590.  
  591.  
  592. inst.unx: $(DUMMY)
  593.     $(CP) $(PROGS) $(BIN)
  594.     (cd $(BIN); chmod 755 $(PROGS))
  595.     (cd $(BIN); chown bin $(PROGS))
  596.     (cd $(BIN); chown root elvprsv$(COM) elvrec$(COM))
  597.     (cd $(BIN); chmod 4755 elvprsv$(COM) elvrec$(COM))
  598.     -ln $(BIN)/elvis $(BIN)/vi
  599.     -ln $(BIN)/elvis $(BIN)/ex
  600.     -ln $(BIN)/elvis $(BIN)/view
  601.     -ln $(BIN)/elvis $(BIN)/input
  602.     test -d /usr/preserve || (mkdir /usr/preserve; chmod 755 /usr/preserve)
  603.     @if test -d /etc/rc2.d; then \
  604.         echo $(BIN)/elvprsv /tmp/elv* >/etc/rc2.d/S03elvis; \
  605.     else \
  606.         echo "::: YOU STILL NEED TO EDIT THE /ETC/RC FILE, OR WHATEVER,"; \
  607.         echo "::: TO HAVE TEMP FILES BE PRESERVED AFTER A SYSTEM CRASH."; \
  608.     fi
  609.     sh instman.sh $(PROGS)
  610.  
  611. inst.dos: $(DUMMY)
  612.     for %a in ($(PROGS1)) do copy %a $(BIN)
  613.     for %a in ($(PROGS2)) do copy %a $(BIN)
  614.     $(CP) $(BIN)\ex$(COM) $(BIN)\vi$(COM)
  615.     $(CP) $(BIN)\ex$(COM) $(BIN)\view$(COM)
  616.     $(CP) $(BIN)\ex$(COM) $(BIN)\input$(COM)
  617.     -mkdir c:\preserve
  618.     -mkdir c:\tmp
  619.     @echo ::: YOU STILL NEED TO EDIT YOUR AUTOEXEC.BAT FILE TO
  620.     @echo ::: HAVE TEMP FILES BE PRESERVED AFTER A SYSTEM CRASH.
  621.  
  622. inst.xdos: $(DUMMY)
  623.     $(CP) $(PROGS) $(BIN)
  624.     $(CP) ex$(COM) $(BIN)/vi$(COM)
  625.     $(CP) ex$(COM) $(BIN)/view$(COM)
  626.     $(CP) ex$(COM) $(BIN)/input$(COM)
  627.     @echo ::: YOU WILL NEED TO EDIT THE AUTOEXEC.BAT FILE TO
  628.     @echo ::: HAVE TEMP FILES BE PRESERVED AFTER A SYSTEM CRASH.
  629.  
  630. inst.tos: $(DUMMY)
  631.     $(CP) $(PROGS) $(BIN)
  632.  
  633. inst.os9: $(DUMMY)
  634.     $(CP) $(PROGS) -rw=$(BIN)
  635.     chd $(BIN); attr -epenprnpw $(PROGS)
  636.     @echo ::: YOU STILL NEED TO EDIT THE /DD/STARTUP FILE, OR WHATEVER,
  637.     @echo ::: TO HAVE TEMP FILES BE PRESERVED AFTER A SYSTEM CRASH.
  638.  
  639. inst.vms: $(DUMMY)
  640.     @echo how?
  641.  
  642. ##############################################################################
  643. # clobbering is system dependent, because DOS's "copy" can't handle multiple
  644. # filenames
  645.  
  646. clobber: clean clob.$(SYS)
  647.     @echo -n
  648.  
  649. clean: $(DUMMY)
  650.     $(RM) *$(OBJ) 
  651.     $(RM) elvis?.uue 
  652.     $(RM) elvis?.sh 
  653.     $(RM) core
  654.  
  655. clob.unx clob.tos clob.os9 clob.xdos clob.vms: $(DUMMY)
  656.     $(RM) tags refs $(PROGS)
  657.  
  658. clob.dos : $(DUMMY)
  659.     for %a in ($(PROGS1)) do $(RM) %a
  660.     for %a in ($(PROGS2)) do $(RM) %a
  661.     for %a in (tags refs) do $(RM) %a
  662.     
  663. ##############################################################################
  664.  
  665. uue: elvis1.uue elvis2.uue elvis3.uue elvis4.uue elvis5.uue elvis6.uue elvis7.uue elvis8.uue
  666.  
  667. elvis1.uue: $(SRC1)
  668.     tar cf elvis1.tar $(SRC1)
  669.     compress -b13 elvis1.tar
  670.     uuencode elvis1.tar.Z <elvis1.tar.Z >elvis1.uue
  671.     $(RM) elvis1.tar*
  672.  
  673. elvis2.uue: $(SRC2)
  674.     tar cf elvis2.tar $(SRC2)
  675.     compress -b13 elvis2.tar
  676.     uuencode elvis2.tar.Z <elvis2.tar.Z >elvis2.uue
  677.     $(RM) elvis2.tar*
  678.  
  679. elvis3.uue: $(SRC3)
  680.     tar cf elvis3.tar $(SRC3)
  681.     compress -b13 elvis3.tar
  682.     uuencode elvis3.tar.Z <elvis3.tar.Z >elvis3.uue
  683.     $(RM) elvis3.tar*
  684.  
  685. elvis4.uue: $(SRC4)
  686.     tar cf elvis4.tar $(SRC4)
  687.     compress -b13 elvis4.tar
  688.     uuencode elvis4.tar.Z <elvis4.tar.Z >elvis4.uue
  689.     $(RM) elvis4.tar*
  690.  
  691. elvis5.uue: $(SRC5)
  692.     tar cf elvis5.tar $(SRC5)
  693.     compress -b13 elvis5.tar
  694.     uuencode elvis5.tar.Z <elvis5.tar.Z >elvis5.uue
  695.     $(RM) elvis5.tar*
  696.  
  697. elvis6.uue: $(SRC6)
  698.     tar cf elvis6.tar $(SRC6)
  699.     compress -b13 elvis6.tar
  700.     uuencode elvis6.tar.Z <elvis6.tar.Z >elvis6.uue
  701.     $(RM) elvis6.tar*
  702.  
  703. elvis7.uue: $(SRC7)
  704.     tar cf elvis7.tar $(SRC7)
  705.     compress -b13 elvis7.tar
  706.     uuencode elvis7.tar.Z <elvis7.tar.Z >elvis7.uue
  707.     $(RM) elvis7.tar*
  708.  
  709. elvis8.uue: $(SRC8)
  710.     tar cf elvis8.tar $(SRC8)
  711.     compress -b13 elvis8.tar
  712.     uuencode elvis8.tar.Z <elvis8.tar.Z >elvis8.uue
  713.     $(RM) elvis8.tar*
  714.  
  715. ##############################################################################
  716.  
  717. sh: elvis1.sh elvis2.sh elvis3.sh elvis4.sh elvis5.sh elvis6.sh elvis7.sh elvis8.sh
  718.  
  719. elvis1.sh: $(SRC1)
  720.     shar $(SRC1) >elvis1.sh
  721.  
  722. elvis2.sh: $(SRC2)
  723.     shar $(SRC2) >elvis2.sh
  724.  
  725. elvis3.sh: $(SRC3)
  726.     shar $(SRC3) >elvis3.sh
  727.  
  728. elvis4.sh: $(SRC4)
  729.     shar $(SRC4) >elvis4.sh
  730.  
  731. elvis5.sh: $(SRC5)
  732.     shar $(SRC5) >elvis5.sh
  733.  
  734. elvis6.sh: $(SRC6)
  735.     shar $(SRC6) >elvis6.sh
  736.  
  737. elvis7.sh: $(SRC7)
  738.     shar $(SRC7) >elvis7.sh
  739.  
  740. elvis8.sh: $(SRC8)
  741.     shar $(SRC8) >elvis7.sh
  742.