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