home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / jove-4.16-src.tgz / tar.out / bsd / jove / Makefile.wat < prev    next >
Makefile  |  1996-09-28  |  6KB  |  182 lines

  1. ########################################################################
  2. # This program is Copyright (C) 1986-1996 by Jonathan Payne.  JOVE is  #
  3. # 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. # wmake -f makefile.wat [<targets>]
  9.  
  10. # Makefile for Watcom C 10.0
  11. #
  12. # - supported targets:
  13. #   + jjove.exe (build JOVE, but don't install it)
  14. #   + jovedosx.zoo (build executable JOVE kit)
  15. #   + jovedosx.zip (build executable JOVE kit)
  16. #   + clean
  17. #
  18. # - to install, do the following:
  19. #   + copy jjove.exe where you wish
  20. #   + copy doc/cmds.doc to <SHAREDIR>/cmds.doc
  21. #   + optional: copy some jove rc (none supplied) file to <SHAREDIR>/jove.rc
  22.  
  23. # Watcom Quirks:
  24. # - "&" is used instead of "\" as the continuation character
  25. # - .SYMBOLIC is needed it a rule doesn't create the target (eg. "clean")
  26. # - .AUTODEPEND picks up dependencies recorded in .obj files
  27. # - stack size is specified using -k
  28. # - "*" at the start of a command will work around >128 char args.
  29. #   For some reason, I couldn't get this to work, so I used *.obj
  30. #   in the link step -- a bit fragile!
  31. # - To get wild-card processing of command-line args, we must
  32. #   link in wildargv.obj (which we must build -- see below).
  33.  
  34. # ===================================================================
  35. # Jove configuration: default JOVE paths.
  36. # Note that all these can be set from environment variables as well;
  37. # see README.DOS for details.
  38. #
  39. # TMPDIR is where the tmp files get stored, usually /tmp or /usr/tmp.
  40. # RECDIR is the directory in which RECOVER looks for JOVE's tempfiles.
  41. # LIBDIR is for the PORTSRV and RECOVER programs.
  42. # SHAREDIR is for online documentation, and the system-wide jove.rc file.
  43. ## BINDIR is where to put the executables JOVE and TEACHJOVE.
  44. # DFLTSHELL is the default shell invoked by JOVE and TEACHJOVE.
  45.  
  46. TMPDIR = c:/tmp
  47. RECDIR = c:/tmp
  48. LIBDIR = c:/jove
  49. SHAREDIR = $(LIBDIR)
  50. # BINDIR = c:/jove
  51. DFLTSHELL = command
  52.  
  53. # Compiler:
  54.  
  55. CC = wcc
  56.  
  57. # Watcom Compiler Flags:
  58. #
  59. # -d2        full symbolic debugging information
  60. # -fo=<file_name> set object or preprocessor output file name
  61. # -i=<directory>    another include directory
  62. # -m{s,m,c,l,h}    memory model (Small,Medium,Compact,Large,Huge)
  63. # -w<number>    set warning level number
  64. # -wx        generate all warnings
  65. # -zq        operate quietly (diagnostics are not suppressed)
  66. #
  67. # Same as UNIX:
  68. # -d<name>[=text] precompilation #define name [text]
  69. # NOTE: quotes around the macro body in a -D are actually taken as part
  70. # of that body!!
  71.  
  72. # predefined automatically:__WATCOMC__
  73.  
  74. CFLAGS = -mm -wx -zq
  75.  
  76. # Linker:
  77.  
  78. LD = wcl
  79.  
  80. # Watcom wcl (Watcom Compile/Link) Link Flags:
  81. #
  82. # -fe=<file_name> set .exec output file name
  83. # -kN        allocate N bytes for stack
  84. # -x        make case of names significant
  85.  
  86. LDFLAGS = $(CFLAGS) -x
  87.  
  88. # ===================================================================
  89. # Implicit rules.
  90.  
  91. .c.obj:    .AUTODEPEND
  92.     $(CC) $(CFLAGS) $<
  93.  
  94. .obj.exe:
  95.     $(LD) $(LDFLAGS) $<
  96.  
  97.  
  98. OBJECTS = keys.obj commands.obj abbrev.obj ask.obj buf.obj c.obj &
  99.     case.obj jctype.obj delete.obj extend.obj argcount.obj insert.obj &
  100.     io.obj jove.obj macros.obj marks.obj misc.obj mouse.obj move.obj &
  101.     paragrap.obj proc.obj re.obj reapp.obj scandir.obj list.obj &
  102.     keymaps.obj util.obj vars.obj wind.obj fmt.obj disp.obj term.obj &
  103.     fp.obj screen.obj msgetch.obj ibmpcdos.obj
  104.  
  105. HEADERS = abbrev.h argcount.h ask.h buf.h c.h case.h chars.h commands.h &
  106.     jctype.h dataobj.h delete.h disp.h extend.h externs.h &
  107.     fmt.h fp.h insert.h io.h iproc.h jove.h &
  108.     keymaps.h list.h loadavg.h mac.h macros.h marks.h &
  109.     misc.h mouse.h move.h paragraph.h proc.h &
  110.     re.h reapp.h rec.h scandir.h screen.h &
  111.     sysdep.h sysprocs.h temp.h term.h ttystate.h &
  112.     tune.h util.h vars.h version.h wind.h
  113.  
  114. # This is what we really want to use, but Zortech's make doesn't work
  115. # when a target appears in more than one rule.  So, as it stands,
  116. # changing a header will *not* force recompilation :-(
  117. #
  118. # $(OBJECTS):    $(HEADERS)
  119. #
  120. # For this reason, we can only force the building of paths.h
  121. # by adding it to the dependencies for explicit targets.
  122. # In the hope that it is built soon enough, we put it at the front.
  123.  
  124. #    * $(LD) $(LDFLAGS) -k8196 -fe=$* $(OBJECTS)
  125. jjove.exe:    paths.h $(OBJECTS) wildargv.obj
  126.     $(LD) $(LDFLAGS) -k8196 -fm -fe=$* *.obj
  127.  
  128. jovedosx.zoo:    paths.h jjove.exe
  129.     -del jovedosx.zoo
  130.     -del jove.exe
  131.     rename jjove.exe jove.exe
  132.     zoo -add jovedosx.zoo jove.exe doc\cmds.doc doc\jove.man doc\jove.doc paths.h README.dos
  133.  
  134. jovedosx.zip:    paths.h jjove.exe
  135.     -del jovedosx.zip
  136.     -del jove.exe
  137.     rename jjove.exe jove.exe
  138.     pkzip -aP jovedosx.zip jove.exe doc\cmds.doc doc\jove.man doc\jove.doc paths.h README.dos
  139.  
  140. # Note that quotes are not stripped by the shell that will
  141. # execute the recipe for paths.h
  142.  
  143. paths.h:    Makefile.wat
  144.     echo /* Changes should be made in Makefile, not to this file! */ > paths.h
  145.     echo $#define TMPDIR "$(TMPDIR)" >> paths.h
  146.     echo $#define RECDIR "$(RECDIR)" >> paths.h
  147.     echo $#define LIBDIR "$(LIBDIR)" >> paths.h
  148.     echo $#define SHAREDIR "$(SHAREDIR)" >> paths.h
  149.     echo $#define DFLTSHELL "$(DFLTSHELL)" >> paths.h
  150.  
  151. setmaps.exe:    commands.tab keys.txt setmaps.c
  152.     wcl $(CFLAGS) setmaps.c -fe=setmaps.exe
  153.     del setmaps.obj
  154.  
  155. keys.c:    setmaps.exe keys.txt
  156.     setmaps < keys.txt > keys.c
  157.  
  158. # Note: it may be necessary to manually copy the source file from
  159. # the distribution CDROM to the installation.  On the CDROM, the
  160. # file's path is \watcom\src\startup\wildargv.c.
  161. # At least with some versions, wildargv.c does not accept tabs as
  162. # argument delimiters.  This should be fixed.
  163. # Change line 82 from:
  164. #        while( *p == ' ' ) ++p;    /* skip over blanks */
  165. # to:
  166. #        while( *p == ' ' || *p == '\t' ) ++p;    /* skip over blanks */
  167. # Change line 103 from:
  168. #            if( *p == ' ' ) break;
  169. # to:
  170. #            if( *p == ' ' || *p == '\t' ) break;
  171.  
  172. wildargv.obj:    $(%WATCOM)\src\startup\wildargv.c
  173.     $(CC) $(CFLAGS) $(%WATCOM)\src\startup\wildargv.c
  174.  
  175. clean:    .SYMBOLIC
  176.     -del *.obj
  177.     -del *.exe
  178.     -del *.bak
  179.     -del *.map
  180.     -del keys.c
  181.     -del paths.h
  182.