home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 8 / FreshFishVol8-CD1.bin / gnu / src / baseline / jove-4.14.6.lha / jove-4.14.6 / Makefile.sun < prev    next >
Makefile  |  1992-01-10  |  19KB  |  492 lines

  1. ###########################################################################
  2. # This program is Copyright (C) 1986, 1987, 1988 by Jonathan Payne.  JOVE #
  3. # is provided to you without charge, and with no warranty.  You may give  #
  4. # away copies of JOVE, including sources, provided that this notice is    #
  5. # included in all the files.                                              #
  6. ###########################################################################
  7.  
  8. # TMPDIR is where the tmp files get stored, usually /tmp or /tmp/jove.  If
  9. # your system does not remove subdirectories of /tmp on reboot (lots do
  10. # remove them these days) then it makes sense to make TMPDIR be /tmp/jove.
  11. # But if you want to recover buffers on system crashes, you should create a
  12. # directory that doesn't get cleaned upon reboot, and use that instead.
  13. # You would probably want to clean out that directory periodically with
  14. # /etc/cron.
  15. # RECDIR is the directory in which RECOVER looks for JOVE's tempfiles.
  16. #
  17. # JOVEHOME is the directory in which pieces of JOVE are kept.  It is only used
  18. #    in the default definitions of SHAREDIR, LIBDIR, BINDIR, and MANDIR.
  19. # SHAREDIR is for online documentation, and the system-wide .joverc file.
  20. # LIBDIR is for the PORTSRV and KBD processes and RECOVER.
  21. # BINDIR is where to put the executables JOVE and TEACHJOVE.
  22. # MANDIR is where the manual pages go for JOVE, RECOVER and TEACHJOVE.
  23. # MANEXT is the extension for the man pages, e.g., jove.1 or jove.l or jove.m.
  24. # DFLTSHELL is the default shell invoked by JOVE and TEACHJOVE.
  25. #
  26. # If they don't exist, this makefile will try to create the directories
  27. # LIBDIR and SHAREDIR.  All others must already exist.
  28.  
  29. TMPDIR = /var/tmp
  30. RECDIR = /var/preserve
  31.  
  32. JOVEHOME = /usr/local
  33. SHAREDIR = $(JOVEHOME)/lib/jove
  34. LIBDIR = $(JOVEHOME)/lib/jove
  35. BINDIR = $(JOVEHOME)/bin
  36. MANDIR = /usr/man/man$(MANEXT)
  37. MANEXT = l
  38. DFLTSHELL = /bin/csh
  39.  
  40. PROG = jove
  41. VERSION = 4.14
  42.  
  43. # These should all just be right if the above ones are.
  44. JOVE = $(BINDIR)/jove
  45. TEACHJOVE = $(BINDIR)/teachjove
  46. RECOVER = $(LIBDIR)/recover
  47. PORTSRV = $(LIBDIR)/portsrv
  48. KBD = $(LIBDIR)/kbd
  49. JOVERC = $(SHAREDIR)/jove.rc
  50. CMDS.DOC = $(SHAREDIR)/cmds.doc
  51. TEACH-JOVE = $(SHAREDIR)/teach-jove
  52. JOVEM = $(MANDIR)/jove.$(MANEXT)
  53. TEACHJOVEM = $(MANDIR)/teachjove.$(MANEXT)
  54.  
  55. # Select the right libraries for your system.
  56. #    2.10BSD:LIBS = -ltermcap
  57. #    v7:    LIBS = -ltermcap
  58. #    4.1BSD:    LIBS = -ltermcap -ljobs
  59. #    4.2BSD:    LIBS = -ltermcap
  60. #    4.3BSD:    LIBS = -ltermcap
  61. #    SysV Rel. 2: LIBS = -lcurses
  62. #    SCO Xenix: LIBS = -ltermcap -lx
  63. #    SCO: LIBS = -lcurses
  64. #    AIX on the R6000s: LIBS = -lcurses
  65. #    MIPS: LIBS = -ltermcap
  66.  
  67. LIBS = -ltermcap
  68.  
  69. #    2.10BSD:LDFLAGS =
  70. #    v7:    LDFLAGS =
  71. #    4.1BSD:    LDFLAGS =
  72. #    4.2BSD:    LDFLAGS =
  73. #    4.3BSD:    LDFLAGS =
  74. #    SysV Rel. 2: LDFLAGS = -Ml
  75. #    SCO Xenix: LDFLAGS = -Ml -F 3000
  76. #    SCO Unix: LDFLAGS = 
  77. #
  78. # SEPFLAG should be:
  79. #    not on a PDP-11:        SEPFLAG =
  80. #    PDP-11 with separate I&D:    SEPFLAG = -i
  81. #    PDP-11 without separate I&D:    SEPFLAG = -n
  82. #
  83.  
  84. LDFLAGS =
  85.  
  86. SEPFLAG =
  87.  
  88. # define a symbol for your OS if it hasn't got one. sysdep.h tries to
  89. # use cpp predefined symbols to decide on the appropriate behaviour
  90. # in most cases. Exceptions are
  91. #     Apple A/UX on macIIs         SYSDEFS=-DA_UX
  92. #    SunOS4.0            SYSDEFS=-DSUNOS4
  93. #    MIPS RiscOS4.x            -systype bsd43
  94. #    SCO Unix            SYSDEFS=-DSCO -DSYSV
  95. #    IBM RS6000s            SYSDEFS=-DAIX -D_BSD -D_BSD_INCLUDES -D_NO_PROTO
  96. #    A system V system that doesn't
  97. #    define one of SVR2,SVR3,SYSV    SYSDEFS=-DSYSV
  98. #
  99. # You can just say 'make SYSDEFS=-Dwhatever' on these systems.
  100. SYSDEFS = -DSUNOS4 -DGCC
  101.  
  102. # for SCO Xenix, set
  103. #    MEMFLAGS = -Mle
  104. #    CFLAGS = -LARGE -O -F 3000 -K -Mle  (say -Mle2 for an 80286)
  105. CC=gcc
  106. CFLAGS = -O $(SYSDEFS)
  107.  
  108. # For cross compiling Jove, set CC to the cross compiler, and LOCALC
  109. # to the local C compiler. LOCALCC will be used for compiling setmaps,
  110. # which is run as part of the compilation to generate the keymaps.
  111. # Set LOCALCFLAGS and LOCALLDFLAGS appropriately too. For Xenix, note
  112. # that LOCALCFLAGS must be set to $(MEMFLAGS)
  113.  
  114. LOCALCC = $(CC)
  115. LOCALCFLAGS = $(CFLAGS)    # $(MEMFLAGS)
  116. LOCALLDFLAGS = $(LDFLAGS)
  117.  
  118. BASESEG = funcdefs.o keys.o argcount.o ask.o buf.o ctype.o delete.o \
  119.       disp.o insert.o io.o jove.o loadavg.o marks.o misc.o re.o \
  120.       screen.o tune.o util.o vars.o version.o list.o keymaps.o
  121. OVLAY1 = abbrev.o rec.o paragraph.o fmt.o
  122. OVLAY2 = c.o wind.o fp.o move.o
  123. OVLAY3 = extend.o macros.o
  124. OVLAY4 = iproc.o re1.o
  125. OVLAY5 = proc.o scandir.o term.o case.o
  126.  
  127. OBJECTS = $(BASESEG) $(OVLAY1) $(OVLAY2) $(OVLAY3) $(OVLAY4) $(OVLAY5)
  128.  
  129. C_SRC = funcdefs.c abbrev.c argcount.c ask.c buf.c c.c case.c ctype.c \
  130.     delete.c disp.c extend.c fp.c fmt.c insert.c io.c iproc.c \
  131.     jove.c list.c loadavg.c macros.c marks.c misc.c move.c paragraph.c \
  132.     proc.c re.c re1.c rec.c scandir.c screen.c term.c util.c \
  133.     vars.c version.c wind.c getch.c mac.c keymaps.c pcscr.c
  134.  
  135. SOURCES = $(C_SRC) portsrv.c recover.c setmaps.c teachjove.c kbd.c
  136.  
  137. HEADERS = argcount.h buf.h chars.h ctype.h dataobj.h disp.h \
  138.     externs.h fp.h io.h iproc.h jove.h keymaps.h list.h mac.h \
  139.     re.h rec.h scandir.h screen.h sysdep.h temp.h termcap.h \
  140.     ttystate.h tune.h util.h vars.h wait.h wind.h
  141.  
  142.  
  143. DOCS1 =    doc/example.rc doc/jove.1 doc/jove.2 doc/jove.3 \
  144.     doc/jove.4 doc/jove.5 doc/jove.nr doc/system.rc \
  145.     doc/teach-jove doc/teachjove.nr doc/README doc/jove.qref
  146. DOCS2 = doc/cmds.doc.nr
  147. DOCS3 = doc/joveman doc/cmds.doc doc/manpage
  148. DOCS = $(DOCS1) $(DOCS2)
  149.  
  150. MISC = Makefile Makefile.dos tune.dos tune.template README Readme.dos \
  151.     Readme.mac iproc-pipes.c iproc-ptys.c
  152.  
  153. SUPPORT = teachjove.c recover.c setmaps.c portsrv.c kbd.c keys.txt \
  154.     macvert.c menumaps.txt mjovers.Hqx
  155.  
  156. BACKUPS = $(HEADERS) $(C_SRC) $(DOCS) $(SUPPORT) $(MISC)
  157.  
  158. all:    sdate xjove recover teachjove portsrv kbd macvert edate
  159.  
  160. sdate:
  161.     @echo "**** make started at `date` ****"
  162.  
  163. edate:
  164.     @echo "**** make completed at `date` ****"
  165.  
  166. xjove:    $(OBJECTS)
  167.     $(CC) $(LDFLAGS) -o xjove $(OBJECTS) $(LIBS)
  168.     @-size xjove
  169.  
  170. gjove:    $(OBJECTS)
  171.     ld -X /lib/gcrt0.o -o gjove $(OBJECTS) -lc $(LIBS)
  172.     @-size gjove
  173.  
  174. ovjove:    $(OBJECTS)
  175.     ld $(SEPFLAG) $(LDFLAGS) -X /lib/crt0.o \
  176.         -Z $(OVLAY1) \
  177.         -Z $(OVLAY2) \
  178.         -Z $(OVLAY3) \
  179.         -Z $(OVLAY4) \
  180.         -Z $(OVLAY5) \
  181.         -Y $(BASESEG) \
  182.         -o xjove $(LIBS) -lc
  183.     @-size xjove
  184.  
  185. portsrv:    portsrv.o
  186.     $(CC) $(LDFLAGS) -o portsrv $(SEPFLAG) portsrv.o $(LIBS)
  187.  
  188. kbd:    kbd.o
  189.     $(CC) $(LDFLAGS) -o kbd $(SEPFLAG) kbd.o $(LIBS)
  190.  
  191. recover:    rectune.h recover.o tune.o rec.h temp.h
  192.     $(CC) $(LDFLAGS) -o recover $(SEPFLAG) recover.o tune.o $(LIBS)
  193.  
  194. teachjove:    teachjove.o
  195.     $(CC) $(LDFLAGS) -o teachjove $(SEPFLAG) teachjove.o $(LIBS)
  196.  
  197. setmaps:    setmaps.o funcdefs.c
  198.     $(LOCALCC) $(LOCALLDFLAGS) -o setmaps setmaps.o
  199.  
  200. teachjove.o:    teachjove.c /usr/include/sys/types.h /usr/include/sys/file.h
  201.     $(CC) -c $(CFLAGS) -DTEACHJOVE=\"$(TEACH-JOVE)\" teachjove.c
  202.  
  203. # don't optimize setmaps.c because it produces bad code in some places
  204. # for some reason
  205. setmaps.o:    funcdefs.c keys.txt
  206.     $(LOCALCC) $(LOCALCFLAGS) -c setmaps.c
  207.  
  208. # ignore error messages from setmaps
  209. # it doesn't understand ifdefs
  210.  
  211. keys.c:    setmaps keys.txt
  212.     -./setmaps < keys.txt > keys.c
  213.  
  214. keys.o:    keys.c jove.h
  215.  
  216. tune.c: Makefile tune.template
  217.     -rm -f tune.c
  218.     @echo "/* Changes should be made in Makefile, not to this file! */" > tune.c
  219.     @echo "" >> tune.c
  220.     @sed -e 's;TMPDIR;$(TMPDIR);' \
  221.          -e 's;LIBDIR;$(LIBDIR);' \
  222.          -e 's;SHAREDIR;$(SHAREDIR);' \
  223.          -e 's;BINDIR;$(BINDIR);' \
  224.          -e 's;SHELL;$(DFLTSHELL);' tune.template >> tune.c
  225.  
  226. rectune.h: Makefile
  227.     -rm -f nrectune.h
  228.     @echo "/* Changes should be made in Makefile, not to this file! */" > nrectune.h
  229.     @echo "" >> nrectune.h
  230.     @echo \#define TMP_DIR \"$(TMPDIR)\" >> nrectune.h
  231.     @echo \#define REC_DIR \"$(RECDIR)\" >> nrectune.h
  232.     -cmp -s nrectune.h rectune.h || (rm -f rectune.h; cp nrectune.h rectune.h)
  233.  
  234. iproc.o: iproc-ptys.c iproc-pipes.c iproc.c
  235.     $(CC) -c $(CFLAGS) iproc.c
  236.  
  237. macvert:    macvert.c
  238.     $(CC) $(CFLAGS) -o macvert macvert.c
  239.  
  240. # install doesn't work for Xenix (no install program)
  241.  
  242. install: $(LIBDIR) $(SHAREDIR) \
  243.      $(TEACH-JOVE) $(CMDS.DOC) $(JOVERC) \
  244.      $(PORTSRV) $(KBD) $(RECOVER) $(JOVE) $(TEACHJOVE) $(JOVEM) \
  245.      $(RECOVERM) $(TEACHJOVEM)
  246.     @echo See the README about changes to /etc/rc or /etc/rc.local
  247.     @echo so that the system recovers jove files on reboot after a cra