home *** CD-ROM | disk | FTP | other *** search
/ The Fred Fish Collection 1.5 / ffcollection-1-5-1992-11.iso / ff_disks / 200-299 / ff232.lzh / Dbug / Makefile < prev    next >
Makefile  |  1989-08-02  |  4KB  |  211 lines

  1. #
  2. #  FILE
  3. #
  4. #    Makefile    Makefile for dbug package
  5. #
  6. #  SCCS ID
  7. #
  8. #    @(#)Makefile    1.11 3/12/88
  9. #
  10. #  DESCRIPTION
  11. #
  12. #    Makefile for the dbug package (under UNIX system V or 4.2BSD).
  13. #
  14. #    Interesting things to make are:
  15. #
  16. #    lib    =>    Makes the runtime support library in the
  17. #            current directory.
  18. #
  19. #    lintlib    =>    Makes the lint library in the current directory.
  20. #
  21. #    install    =>    Install pieces from current directory to
  22. #            where they belong.
  23. #
  24. #    doc    =>    Makes the documentation in the current
  25. #            directory.
  26. #
  27. #    clean    =>    Remove objects, temporary files, etc from
  28. #            current directory.
  29. #
  30. #    superclean =>    Remove everything except sccs source files.
  31. #            Uses interactive remove for verification.
  32.  
  33. # Define NO_VARARGS if you have no <varargs.h> to include.
  34. #VARARGS =    -DNO_VARARGS
  35.  
  36. SH =        /bin/sh
  37. AR =        ar
  38. RM =        rm
  39. CFLAGS =    -O $(VARARGS)
  40. GFLAGS =    -s
  41. INSTALL =    $(SH) install.sh
  42. CHMOD =        chmod
  43. MAKE =        make
  44. INC =        /usr/include/local
  45. LIB =        /usr/lib
  46. RANLIB =    $(SH) ranlib.sh
  47. MODE =        664
  48.  
  49. # The following is provided for example only, it is set by "doinstall.sh".
  50. LLIB =        /usr/lib
  51.  
  52. .SUFFIXES:    .r .r~ .c .c~
  53.  
  54. .c~.c:
  55.         $(GET) $(GFLAGS) -p $< >$*.c
  56.  
  57. .r~.r:
  58.         $(GET) $(GFLAGS) -p $< >$*.r
  59.  
  60. .c~.r:
  61.         $(GET) $(GFLAGS) -p $< >$*.c
  62.         sed "s/\\\/\\\e/" <$*.c >$*.r
  63.         $(RM) -f $*.c
  64.  
  65. .c.r:
  66.         sed "s/\\\/\\\e/" <$< >$*.r
  67.  
  68. EXAMPLES =    example1.r example2.r example3.r
  69. OUTPUTS =    output1.r output2.r output3.r output4.r output5.r
  70.  
  71. NROFF_INC =    main.r factorial.r $(OUTPUTS) $(EXAMPLES)
  72.  
  73.  
  74. #
  75. #    The default thing to do is remake the local runtime support
  76. #    library, local lint library, and local documentation as
  77. #    necessary.
  78. #
  79.  
  80. all :        lib lintlib analyze doc
  81.  
  82. lib :        libdbug.a
  83.  
  84. lintlib :    llib-ldbug.ln
  85.  
  86. doc :        factorial user.t
  87.  
  88. #
  89. #    Make the local runtime support library "libdbug.a" from
  90. #    sources.
  91. #
  92.  
  93. libdbug.a :    dbug.o
  94.         rm -f $@
  95.         $(AR) cr $@ $?
  96.         $(RANLIB) $@
  97.  
  98. #
  99. #    Clean up the local directory.
  100. #
  101.  
  102. clean :
  103.         $(RM) -f *.o *.ln *.a *.BAK nohup.out factorial $(NROFF_INC)
  104.  
  105. superclean :
  106.         $(RM) -i ?[!.]*
  107.  
  108. #
  109. #    Install the new header and library files.  Since things go in
  110. #    different places depending upon the system (lint libraries
  111. #    go in /usr/lib under SV and /usr/lib/lint under BSD for example),
  112. #    the shell script "doinstall.sh" figures out the environment and
  113. #    does a recursive make with the appropriate pathnames set.
  114. #
  115.  
  116. install :        
  117.             $(SH) doinstall.sh $(MAKE) sysinstall
  118.  
  119. sysinstall:        $(INC) $(INC)/dbug.h $(LIB)/libdbug.a \
  120.             $(LLIB)/llib-ldbug.ln $(LLIB)/llib-ldbug
  121.  
  122. $(INC) :
  123.             -if test -d $@ ;then true ;else mkdir $@ ;fi
  124.  
  125. $(INC)/dbug.h :        dbug.h
  126.             $(INSTALL) $? $@
  127.             $(CHMOD) $(MODE) $@
  128.  
  129. $(LIB)/libdbug.a :    libdbug.a
  130.             $(INSTALL) $? $@
  131.             $(CHMOD) $(MODE) $@
  132.  
  133. $(LLIB)/llib-ldbug.ln :    llib-ldbug.ln
  134.             $(INSTALL) $? $@
  135.             $(CHMOD) $(MODE) $@
  136.  
  137. $(LLIB)/llib-ldbug :    llib-ldbug
  138.             $(INSTALL) $? $@
  139.             $(CHMOD) $(MODE) $@
  140.  
  141. #
  142. #    Make the local lint library.
  143. #
  144.  
  145. llib-ldbug.ln :     llib-ldbug
  146.             $(SH) mklintlib.sh $? $@
  147.  
  148. #
  149. #    Make the test/example program "factorial".
  150. #
  151. #    Note that the objects depend on the LOCAL dbug.h file and
  152. #    the compilations are set up to find dbug.h in the current
  153. #    directory even though the sources have "#include <dbug.h>".
  154. #    This allows the examples to look like the code a user would
  155. #    write but still be used as test cases for new versions
  156. #    of dbug.
  157.  
  158. factorial :    main.o factorial.o libdbug.a
  159.         $(CC) -o $@ main.o factorial.o libdbug.a
  160.  
  161. main.o :    main.c dbug.h
  162.         $(CC) $(CFLAGS) -c -I. main.c
  163.  
  164. factorial.o :    factorial.c dbug.h
  165.         $(CC) $(CFLAGS) -c -I. factorial.c
  166.  
  167.  
  168. #
  169. #    Make the analyze program for runtime profiling support.
  170. #
  171.  
  172. analyze :    analyze.o libdbug.a
  173.         $(CC) -o $@ analyze.o libdbug.a
  174.  
  175. analyze.o :    analyze.c useful.h dbug.h
  176.         $(CC) $(CFLAGS) -c -I. analyze.c
  177.  
  178. #
  179. #    Rebuild the documentation
  180. #
  181.  
  182. user.t :    user.r $(NROFF_INC)
  183.         nroff -cm user.r >$@
  184.  
  185. #
  186. #    Run the factorial program to produce the sample outputs.
  187. #
  188.  
  189. output1.r:    factorial
  190.         ./factorial 1 2 3 4 5 >$@
  191.  
  192. output2.r:    factorial
  193.         ./factorial -#t:o 2 3 >$@
  194.  
  195. output3.r:    factorial
  196.         ./factorial -#d:t:o 3 >$@
  197.  
  198. output4.r:    factorial
  199.         ./factorial -#d,result:o 4 >$@
  200.  
  201. output5.r:    factorial
  202.         ./factorial -#d:f,factorial:F:L:o 3 >$@
  203.  
  204. #
  205. #    All files included by user.r depend on user.r, thus
  206. #    forcing them to be remade if user.r changes.
  207. #
  208.  
  209. $(NROFF_INC) :    user.r
  210.  
  211.