home *** CD-ROM | disk | FTP | other *** search
/ rtsi.com / 2014.01.www.rtsi.com.tar / www.rtsi.com / OS9 / OSK / CMDS / elvis1.7.lzh / elvis1.7 / makefile < prev    next >
Makefile  |  1998-03-30  |  19KB  |  765 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.4 ----
  368. OBJ=    .r
  369. EXE=
  370. COM=
  371. EXTRA=    tinyprnt$(OBJ)
  372. EXTRA2=    osk$(OBJ)
  373. ROOT=    /dd
  374. LIBS=    -l=/dd/lib/termlib.l
  375. CC=    cc
  376. # where to store the executables (before final installation)
  377. ODIR=    /dd/tmp
  378. # ODIR= $(ROOT)/elvis/tmpcmds
  379. # where to install the executables (at 'make install')
  380. BIN=    $(ROOT)/cmds
  381. #BIN=  $(ROOT)/elvis/cmds
  382. CFLAGS=    -O=2 -k=2wf -i -m=4 -DNO_CURSORSHAPE
  383. # CFLAGS=   -O=2 -k=2 -i -m=4 -t=/r0
  384. SMALL=
  385. LARGE=
  386. OF=    -f=$(ODIR)/
  387. RF=    -r
  388. PROGS=    elvis$(EXE) vi$(COM) view$(COM) input$(COM) ctags$(COM) ref$(COM) \
  389.     elvrec$(COM) fmt$(COM) elvprsv$(COM)
  390. #For 'vi only' comment out the above, and uncomment the next line 
  391. # PROGS=    elvis$(EXE) vi$(COM) view$(COM) elvrec$(COM) elvprsv$(COM)
  392. PROGS1=
  393. PROGS2=
  394. CHMEM=    touch elvis$(EXE)
  395. SORT=
  396. RM=    del *.stb *.dbg
  397. CP=    copy
  398. SYS=    os9
  399. DUMMY=    dummy
  400. CFG=
  401. TC_CFLAGS1=
  402. TC_CFLAGS2=
  403. EFLAGS=
  404. LNK=
  405. LFLAGS=
  406.  
  407. ##---- These settings probably won't work for VAX/VMS, but they might ----
  408. #OBJ=    .obj
  409. #EXE=    .exe
  410. #COM=    .exe
  411. #EXTRA=    tinytcap$(OBJ)
  412. #EXTRA2=    vmsio$(OBJ)
  413. #LIBS=
  414. #BIN
  415. #CC=    cc
  416. #CFLAGS=    /define=NO_CURSORSHAPE /define=INTERNAL_TAGS
  417. #SMALL=
  418. #LARGE=
  419. #OF=    /exe=
  420. #RF=
  421. #PROGS=    elvis.exe elvprsv.exe elvrec.exe ctags.exe ref.exe
  422. #CHMEM=
  423. #SORT=
  424. #RM=    del
  425. #CP=    copy
  426. #SYS=    vms
  427. #DUMMY=    
  428. #CFG=    vmsopt.opt
  429. #
  430. ##compilation rules
  431. #.exe.c:
  432. #    $(CC) $<.c
  433. #    link $(OF)$<.exe,vmslink/opt
  434. #.obj.c:
  435. #    $(CC) $(CFLAGS) $<.c
  436.  
  437. ###########################################################################
  438. ###########################################################################
  439. ###                                                                     ###
  440. ###     The rest of this Makefile contains no user-serviceable parts    ###
  441. ###                                                                     ###
  442. ###########################################################################
  443. ###########################################################################
  444.  
  445. OBJS1=    blk$(OBJ) cmd1$(OBJ) cmd2$(OBJ) ctype$(OBJ) curses$(OBJ) cut$(OBJ)
  446. OBJS2=    ex$(OBJ) input$(OBJ) main$(OBJ) misc$(OBJ) modify$(OBJ) move1$(OBJ)
  447. OBJS3=    move2$(OBJ) move3$(OBJ) move4$(OBJ) move5$(OBJ) opts$(OBJ) recycle$(OBJ)
  448. OBJS4=    redraw$(OBJ) regexp$(OBJ) regsub$(OBJ) system$(OBJ) tio$(OBJ) tmp$(OBJ)
  449. OBJS5=    vars$(OBJ) vcmd$(OBJ) vi$(OBJ)
  450. OBJS=    $(OBJS1) $(OBJS2) $(OBJS3) $(OBJS4) $(OBJS5)
  451.  
  452. ALIAS=    alias$(OBJ)
  453.  
  454. SRC1=    Elvis.lnk Elvis.mak Elvis.prj Makefile.mix alias.c atari.c \
  455.     ctags.c pc.c ref.c shell.c sysdos.c
  456. SRC2=    elvrec.c wildcard.c fmt.c profile.sh osk.c osk.h elvprsv.c unix.c \
  457.     blk.c config.h instman.sh
  458. SRC3=    cmd1.c cmd2.c curses.c
  459. SRC4=    curses.h cut.c ex.c input.c main.c misc.c
  460. SRC5=    modify.c move1.c move2.c move3.c move4.c move5.c opts.c recycle.c redraw.c
  461. SRC6=    regexp.c regexp.h regsub.c tinytcap.c tio.c tmp.c
  462. SRC7=    system.c vars.c vcmd.c vi.c vi.h tinyprnt.c
  463. SRC8=    ctype.c ctype.h borland.h novice.rc prsvdos.c prsvunix.c \
  464.     vmsbuild.com vmsio.c vmslink.opt vmsread.me vmssetup.com vmswild.c \
  465.     amiga.c amiprsv.c amistat.h amisysio.c amitty.c amiwild.c
  466.  
  467. ###########################################################################
  468. all: $(PROGS)
  469.     @echo done.
  470.  
  471. elvis$(EXE): linkelv.$(SYS)
  472.     @echo "elvis linked."
  473.  
  474. ctags$(COM): $(CFG) ctags.c wildcard.c
  475.     $(CC) $(CFLAGS) $(SMALL) $(SORT) $(OF)ctags$(COM) ctags.c $(EXTRA2)
  476.  
  477. ref$(COM): $(CFG) ref.c
  478.     $(CC) $(CFLAGS) $(SMALL) $(OF)ref$(COM) ref.c
  479.  
  480. elvrec$(COM): $(CFG) elvrec.c
  481.     $(CC) $(CFLAGS) $(SMALL) $(OF)elvrec$(COM) elvrec.c $(EXTRA2)
  482.  
  483. ex$(COM): linkex.$(SYS)
  484.     @echo "ex done."
  485.  
  486. vi$(COM): linkvi.$(SYS)
  487.     @echo "vi done."
  488.  
  489. view$(COM): linkview.$(SYS)
  490.     @echo "view done."
  491.  
  492. input$(COM): linkinput.$(SYS)
  493.     @echo "input done."
  494.  
  495. shell$(COM): $(CFG) shell.c
  496.     $(CC) $(CFLAGS) $(SMALL) $(OF)shell$(COM) shell.c
  497.  
  498. wildcard$(COM): $(CFG) wildcard.c ctype.c
  499.     $(CC) $(CFLAGS) $(SMALL) $(OF)wildcard$(COM) wildcard.c
  500.  
  501. fmt$(COM): $(CFG) fmt.c
  502.     $(CC) $(CFLAGS) $(SMALL) $(OF)fmt$(COM) fmt.c $(EXTRA2)
  503.  
  504. elvprsv$(COM): $(CFG) elvprsv.c amiprsv.c prsvunix.c prsvdos.c wildcard.c ctype.c
  505.     $(CC) $(CFLAGS) $(SMALL) $(OF)elvprsv$(COM) elvprsv.c
  506.  
  507. ##############################################################################
  508. # "It all depends..."
  509.  
  510. $(OBJS): vi.h curses.h config.h regexp.h ctype.h
  511.  
  512. ##############################################################################
  513. # The way to link elvis is system dependent, and maybe compiler dependent too.
  514.  
  515. # elvis executable compilation rule for: AmigaDOS
  516. linkelv.ami: $(OBJS) $(EXTRA) $(EXTRA2)
  517.     $(LNK) $(LFLAGS) $(OF)elvis$(EXE) $(OBJS) $(EXTRA) $(EXTRA2) $(LIBS)
  518.     $(CHMEM)
  519.     @touch $@
  520.  
  521. # elvis executable compilation rule for: all unix, os9, tos, msc dos
  522. linkelv.unx linkelv.tos linkelv.os9 linkelv.cl linkelv.xdos: \
  523.         $(OBJS) $(EXTRA) $(EXTRA2)
  524.     $(CC) $(LARGE) $(CFLAGS) $(OF)elvis$(EXE) $(OBJS) $(EXTRA) $(EXTRA2) $(LIBS)
  525.     $(CHMEM)
  526.     @touch $@
  527.  
  528. linkelv.dos: linkelv.$(CC)
  529.  
  530. # elvis executable compilation rule for: borland tcc, bcc
  531. linkelv.bcc linkelv.tcc: $(CFG) $(OBJS) $(EXTRA) $(EXTRA2)
  532.     $(CC) $(CFLAGS) $(LIBS)
  533.     @echo done > linkelv.$(CC)
  534.  
  535. linkelv.vms: $(OBJS) $(EXTRA) $(EXTRA2)
  536.     link$(OF)elvis.exe main,$(CFG)/opt
  537.  
  538. ##############################################################################
  539.  
  540. # borland/turbo c config files
  541. borland.cfg: $(DUMMY)
  542.     echo $(TC_CFLAGS1)> borland.cfg
  543.     echo $(TC_CFLAGS2)>> borland.cfg
  544.  
  545. borland.rsp: $(DUMMY)
  546.     echo $(EFLAGS) $(OF)elvis$(EXE) > borland.rsp
  547.     echo $(OBJS1)>> borland.rsp
  548.     echo $(OBJS2)>> borland.rsp
  549.     echo $(OBJS3)>> borland.rsp
  550.     echo $(OBJS4)>> borland.rsp
  551.     echo $(OBJS5)>> borland.rsp
  552.     echo $(EXTRA)>> borland.rsp
  553.  
  554. ##############################################################################
  555. # elvis executable compilation rule for: AmigaDOS
  556. linkex.ami: alias.o
  557.     $(LNK) $(LFLAGS) $(OF)ex$(EXE) alias.o $(LIBS)
  558.  
  559. linkex.unx linkex.tos linkex.xdos linkex.dos linkex.vms: $(CFG) alias.c
  560.     $(CC) $(CFLAGS) $(SMALL) $(OF)ex$(COM) alias.c
  561.  
  562. linkex.os9: $(DUMMY)
  563.     @echo done >/nil
  564.  
  565. linkvi.ami linkvi.unx linkvi.tos linkvi.xdos linkvi.dos linkvi.vms: ex$(COM)
  566.     $(CP) ex$(COM) vi$(COM)
  567.  
  568. linkvi.os9: alias.r
  569.     $(CC) $(CFLAGS) $(OF)vi$(COM) alias.r
  570.     @touch $@
  571.  
  572. linkview.ami linkview.unx linkview.tos linkview.xdos linkview.dos linkview.vms: ex$(COM)
  573.     $(CP) ex$(COM) view$(COM)
  574.  
  575. linkview.os9: alias.r
  576.     $(CC) $(CFLAGS) $(OF)view$(COM) alias.r
  577.     @touch $@
  578.  
  579. linkinput.ami linkinput.unx linkinput.tos linkinput.xdos linkinput.dos linkinput.vms: ex$(COM)
  580.     $(CP) ex$(COM) input$(COM)
  581.  
  582. linkinput.os9: alias.r
  583.     $(CC) $(CFLAGS) $(OF)input$(COM) alias.r
  584.     @touch $@
  585.  
  586. ##############################################################################
  587. # installation is system-dependent
  588.  
  589. install: $(PROGS) inst.$(SYS)
  590.     @echo Installation complete.
  591.  
  592. inst.ami: $(DUMMY)
  593.     MakeDir $(BIN)/Elvis
  594.     Assign Elvis: $(BIN)/Elvis
  595.     $(CP) $(PROGS) Elvis:
  596.     @echo ::: YOU STILL NEED TO EDIT THE S:STARTUP-SEQUENCE FILE,
  597.     @echo ::: TO HAVE TEMP FILES PRESERVED AFTER A SYSTEM CRASH.
  598.  
  599.  
  600. inst.unx: $(DUMMY)
  601.     $(CP) $(PROGS) $(BIN)
  602.     (cd $(BIN); chmod 755 $(PROGS))
  603.     (cd $(BIN); chown bin $(PROGS))
  604.     (cd $(BIN); chown root elvprsv$(COM) elvrec$(COM))
  605.     (cd $(BIN); chmod 4755 elvprsv$(COM) elvrec$(COM))
  606.     -ln $(BIN)/elvis $(BIN)/vi
  607.     -ln $(BIN)/elvis $(BIN)/ex
  608.     -ln $(BIN)/elvis $(BIN)/view
  609.     -ln $(BIN)/elvis $(BIN)/input
  610.     test -d /usr/preserve || (mkdir /usr/preserve; chmod 755 /usr/preserve)
  611.     @if test -d /etc/rc2.d; then \
  612.         echo $(BIN)/elvprsv /tmp/elv* >/etc/rc2.d/S03elvis; \
  613.     else \
  614.         echo "::: YOU STILL NEED TO EDIT THE /ETC/RC FILE, OR WHATEVER,"; \
  615.         echo "::: TO HAVE TEMP FILES BE PRESERVED AFTER A SYSTEM CRASH."; \
  616.     fi
  617.     sh instman.sh $(PROGS)
  618.  
  619. inst.dos: $(DUMMY)
  620.     for %a in ($(PROGS1)) do copy %a $(BIN)
  621.     for %a in ($(PROGS2)) do copy %a $(BIN)
  622.     $(CP) $(BIN)\ex$(COM) $(BIN)\vi$(COM)
  623.     $(CP) $(BIN)\ex$(COM) $(BIN)\view$(COM)
  624.     $(CP) $(BIN)\ex$(COM) $(BIN)\input$(COM)
  625.     -mkdir c:\preserve
  626.     -mkdir c:\tmp
  627.     @echo ::: YOU STILL NEED TO EDIT YOUR AUTOEXEC.BAT FILE TO
  628.     @echo ::: HAVE TEMP FILES BE PRESERVED AFTER A SYSTEM CRASH.
  629.  
  630. inst.xdos: $(DUMMY)
  631.     $(CP) $(PROGS) $(BIN)
  632.     $(CP) ex$(COM) $(BIN)/vi$(COM)
  633.     $(CP) ex$(COM) $(BIN)/view$(COM)
  634.     $(CP) ex$(COM) $(BIN)/input$(COM)
  635.     @echo ::: YOU WILL NEED TO EDIT THE AUTOEXEC.BAT FILE TO
  636.     @echo ::: HAVE TEMP FILES BE PRESERVED AFTER A SYSTEM CRASH.
  637.  
  638. inst.tos: $(DUMMY)
  639.     $(CP) $(PROGS) $(BIN)
  640.  
  641. inst.os9: $(DUMMY)
  642.     chd $(ODIR); $(CP) $(PROGS) -rw=$(BIN)
  643.     chd $(BIN); attr -epenprnpw $(PROGS)
  644.     @echo ::: YOU STILL NEED TO EDIT THE /DD/STARTUP FILE, OR WHATEVER,
  645.     @echo ::: TO HAVE TEMP FILES BE PRESERVED AFTER A SYSTEM CRASH.
  646.  
  647. install.r: 
  648.     touch install.r
  649.     touch install
  650.  
  651. dummy.r:
  652.     touch dummy.r
  653.     touch dummy
  654.  
  655. inst.vms: $(DUMMY)
  656.     @echo how?
  657.  
  658. ##############################################################################
  659. # clobbering is system dependent, because DOS's "copy" can't handle multiple
  660. # filenames
  661.  
  662. clobber: clean clob.$(SYS)
  663.     @echo -n
  664.  
  665. clean: $(DUMMY)
  666.     $(RM) *$(OBJ) 
  667.     $(RM) elvis?.uue 
  668.     $(RM) elvis?.sh 
  669.     $(RM) core
  670.  
  671. clob.unx clob.tos clob.xdos clob.vms: $(DUMMY)
  672.     $(RM) tags refs $(PROGS)
  673.  
  674. clob.dos : $(DUMMY)
  675.     for %a in ($(PROGS1)) do $(RM) %a
  676.     for %a in ($(PROGS2)) do $(RM) %a
  677.     for %a in (tags refs) do $(RM) %a
  678.  
  679. clean.os9:
  680.     del *.r
  681.  
  682. clob.os9:
  683.     make clean.os9
  684.     chd $(ODIR); del $(PROGS)
  685.     
  686. ##############################################################################
  687.  
  688. uue: elvis1.uue elvis2.uue elvis3.uue elvis4.uue elvis5.uue elvis6.uue elvis7.uue elvis8.uue
  689.  
  690. elvis1.uue: $(SRC1)
  691.     tar cf elvis1.tar $(SRC1)
  692.     compress -b13 elvis1.tar
  693.     uuencode elvis1.tar.Z <elvis1.tar.Z >elvis1.uue
  694.     $(RM) elvis1.tar*
  695.  
  696. elvis2.uue: $(SRC2)
  697.     tar cf elvis2.tar $(SRC2)
  698.     compress -b13 elvis2.tar
  699.     uuencode elvis2.tar.Z <elvis2.tar.Z >elvis2.uue
  700.     $(RM) elvis2.tar*
  701.  
  702. elvis3.uue: $(SRC3)
  703.     tar cf elvis3.tar $(SRC3)
  704.     compress -b13 elvis3.tar
  705.     uuencode elvis3.tar.Z <elvis3.tar.Z >elvis3.uue
  706.     $(RM) elvis3.tar*
  707.  
  708. elvis4.uue: $(SRC4)
  709.     tar cf elvis4.tar $(SRC4)
  710.     compress -b13 elvis4.tar
  711.     uuencode elvis4.tar.Z <elvis4.tar.Z >elvis4.uue
  712.     $(RM) elvis4.tar*
  713.  
  714. elvis5.uue: $(SRC5)
  715.     tar cf elvis5.tar $(SRC5)
  716.     compress -b13 elvis5.tar
  717.     uuencode elvis5.tar.Z <elvis5.tar.Z >elvis5.uue
  718.     $(RM) elvis5.tar*
  719.  
  720. elvis6.uue: $(SRC6)
  721.     tar cf elvis6.tar $(SRC6)
  722.     compress -b13 elvis6.tar
  723.     uuencode elvis6.tar.Z <elvis6.tar.Z >elvis6.uue
  724.     $(RM) elvis6.tar*
  725.  
  726. elvis7.uue: $(SRC7)
  727.     tar cf elvis7.tar $(SRC7)
  728.     compress -b13 elvis7.tar
  729.     uuencode elvis7.tar.Z <elvis7.tar.Z >elvis7.uue
  730.     $(RM) elvis7.tar*
  731.  
  732. elvis8.uue: $(SRC8)
  733.     tar cf elvis8.tar $(SRC8)
  734.     compress -b13 elvis8.tar
  735.     uuencode elvis8.tar.Z <elvis8.tar.Z >elvis8.uue
  736.     $(RM) elvis8.tar*
  737.  
  738. ##############################################################################
  739.  
  740. sh: elvis1.sh elvis2.sh elvis3.sh elvis4.sh elvis5.sh elvis6.sh elvis7.sh elvis8.sh
  741.  
  742. elvis1.sh: $(SRC1)
  743.     shar $(SRC1) >elvis1.sh
  744.  
  745. elvis2.sh: $(SRC2)
  746.     shar $(SRC2) >elvis2.sh
  747.  
  748. elvis3.sh: $(SRC3)
  749.     shar $(SRC3) >elvis3.sh
  750.  
  751. elvis4.sh: $(SRC4)
  752.     shar $(SRC4) >elvis4.sh
  753.  
  754. elvis5.sh: $(SRC5)
  755.     shar $(SRC5) >elvis5.sh
  756.  
  757. elvis6.sh: $(SRC6)
  758.     shar $(SRC6) >elvis6.sh
  759.  
  760. elvis7.sh: $(SRC7)
  761.     shar $(SRC7) >elvis7.sh
  762.  
  763. elvis8.sh: $(SRC8)
  764.     shar $(SRC8) >elvis7.sh
  765.