home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / dbmalloc-1.14-src.tgz / tar.out / contrib / dbmalloc / Makefile.in < prev    next >
Makefile  |  1996-09-28  |  8KB  |  282 lines

  1. #
  2. #  (c) Copyright 1990, 1991, 1992 Conor P. Cahill (uunet!virtech!cpcahil).  
  3. #  This software may be distributed freely as long as the following conditions
  4. #  are met:
  5. #          * the distribution, or any derivative thereof, may not be
  6. #           included as part of a commercial product
  7. #         * full source code is provided including this copyright
  8. #         * there is no charge for the software itself (there may be
  9. #           a minimal charge for the copying or distribution effort)
  10. #         * this copyright notice is not modified or removed from any
  11. #           source file
  12. #
  13. #
  14. # $Id: Makefile,v 1.39 1992/08/22 16:27:13 cpcahil Exp $
  15. #
  16. # This is the Makefile for the malloc debugging library
  17. #
  18. # NOTE: while most porting changes are made here, the malloc.h file
  19. #       may require hand editing (mostly the DATATYPE and SIZETYPE
  20. #    typedefs) because of system wierdities.
  21. #
  22. # Useful targets:
  23. #
  24. #    all        make all programs/libs in the local directory
  25. #    install        install updated programs/libs
  26. #    frcinstall    install all programs/libs
  27. #    tests        build tests
  28. #    runtests    build and run all tests
  29. #    clean        clean up after yourself
  30. #    fullclean    clean up everything (including configure stuff)
  31. #
  32. # NOTE: there are several other targets used by myself for souce code
  33. # maintenance related functions.  These are probably specific to my system
  34. # and may not do what they are supposed to do in a different environment.
  35. # Therefore, unless you know what you are doing, I would suggest not running
  36. # them (hence why they are not documented here).
  37. #
  38. # And now, onto a few definitions that you may need to alter
  39. #
  40. # The following defines may be added as necessary to the CFLAGS definition:
  41. #
  42. # -DANSI_NULLS      if you want to allow passing of NULL pointers to realloc
  43. #            and/or free (as ANSI does) even if the library is
  44. #            compiled by a non-ANSI compiler.
  45. # -DNO_ANSI_NULLS     if you DON'T want to allow passing of NULL pointers to
  46. #            realloc and/or free, even if the library is compiled by
  47. #            an ANSI conforming compiler.
  48. # -DDONT_USE_ASM    don't use ASM speedups when replacing system memcpy
  49. #            and/or memset routines
  50. # -DCTYPE_SUPPORT=x    where x is one of the following
  51. #
  52. #                1 - use plain-jane ctype.h which is only valid
  53. #                    for the ansii character set (DEFAULT)
  54. #                2 - use POSIX setlocal() to setup the character
  55. #                    set definitions
  56. #                3 - use C library islower() & toupper()
  57. #                    functions
  58. #
  59. # NOTE: if you add any flags other than the above to the CFLAGS, you might want
  60. #    to add a similar arguement in the Config.flags file.  However, you
  61. #     should remember that the malloc.h configuration will depend upon these
  62. #    settings and you could have a problem if you attempt to use the file
  63. #    in a compile session that doesn't include these flags.
  64. #
  65.  
  66. srcdir =    @srcdir@
  67. VPATH =        @srcdir@
  68.  
  69. prefix =    @prefix@
  70. exec_prefix =    @exec_prefix@
  71.  
  72. bindir =    $(exec_prefix)/bin
  73. libdir =    $(exec_prefix)/lib
  74. incdir =    $(prefix)/include/dbmalloc
  75. infodir =    $(prefix)/info
  76. mandir =    $(prefix)/man/man3
  77.  
  78. INSTALL =    @INSTALL@
  79. INSTALL_PROGRAM = @INSTALL_PROGRAM@
  80. INSTALL_DATA =    @INSTALL_DATA@
  81.  
  82. SHELL =        /bin/sh
  83. CC =        @CC@
  84. AR =        ar
  85. RM =        rm
  86. RANLIB =    @RANLIB@
  87. DEFS =        @DEFS@
  88. LIBS =        @LIBS@
  89. CFLAGS =    @CFLAGS@
  90. LDFLAGS =    @LDFLAGS@
  91.  
  92. INCLUDES =    -I. -I$(srcdir)
  93. OUR_CFLAGS =    $(DEFS) $(INCLUDES) $(CFLAGS)
  94.  
  95. .c.o:
  96.         $(CC) -c $(OUR_CFLAGS) $<
  97. #
  98. # miscellaneous commands
  99. #
  100. # NOTE: if you change CC to a non-K&R compiler be sure to read the 
  101. #       PROBLEMS file first.
  102. #
  103. CPROTO=/ade/bin/cproto
  104. LINT=lint
  105. NROFF=nroff
  106. SHARCMD=makekit -p -m -nmallocshar.
  107.  
  108. LIB =        libdbmalloc.a
  109. LINTLIB =    llib-ldbmal.ln
  110.  
  111. #
  112. # You shouldn't have to modify anything below this line
  113. #
  114.  
  115. LIBSRCS=    malloc.c datamc.c datams.c dgmalloc.c fill.c free.c realloc.c \
  116.         calloc.c string.c mcheck.c mchain.c memory.c tostring.c    \
  117.         m_perror.c m_init.c mallopt.c dump.c stack.c xmalloc.c    \
  118.         xheap.c malign.c size.c abort.c leak.c sbrk.c
  119.  
  120. LIBOBJS=    $(LIBSRCS:.c=.o)
  121.  
  122.  
  123. SRCS =        $(LIBSRCS) testmalloc.c testmem.c testerr.c teststack.c cctest.c
  124. HDRS =        malloc.h.org mallocin.h debug.h tostring.h
  125.  
  126. BUILDFILES =    malloc.man prototypes.h 
  127.  
  128. MANSRCFILES =    patchlevel README PROBLEMS CHANGES Buildpatch minipatch Makefile \
  129.         malloc.3 malloc.man $(SRCS) $(HDRS) prototypes.h \
  130.         Configure Config.flags Runtests testerr.base
  131.  
  132. SRCFILES =    MANIFEST $(MANSRCFILES)
  133.  
  134. TESTS =        testmalloc testmem testerr teststack
  135.  
  136. all :        $(LIB) tests
  137.  
  138. install :
  139.         $(INSTALL_DATA) $(LIB) $(libdir)/$(LIB)
  140.         $(RANLIB) $(libdir)/$(LIB)
  141.         $(INSTALL_DATA) $(srcdir)/malloc.h $(incdir)/malloc.h
  142.         $(INSTALL_DATA) $(srcdir)/malloc.3 $(mandir)/malloc.3
  143.  
  144. rminstall:
  145.         rm -f $(libdir)/$(LIB) $(incdir)/malloc.h $(mandir)/malloc.3
  146.  
  147. tests:        $(TESTS)
  148.  
  149. #
  150. # runtests - target for building and running the tests.  Note that we 
  151. # run testmalloc with fill_area disabled.  This is because testmalloc is
  152. # a malloc exerciser and we just want to see if we broke malloc, not verify
  153. # that the test doesn't overwrite memory (since it doesn't).
  154. #
  155.  
  156. runtests :    tests
  157.         @echo "Running all of the test programs.  This may take a while so"
  158.         @echo "please be patient.  Note that you won't see any output unless"
  159.         @echo "a test fails....."
  160.         ./Runtests
  161.  
  162. clean :  
  163.         rm -f $(TESTS) pgm cctest $(LIB) *.o *.ln Runtests.out malloc.h \
  164.         sysdefs.h
  165.  
  166. fullclean :    clean
  167.         rm -f .configure .configure.[sO] *.O core cscope.out tags
  168.  
  169. sharfile :    $(SRCFILES) CHECKSUMS
  170.         $(SHARCMD)
  171.  
  172. CHECKSUMS :    $(SRCFILES)
  173.         echo "SYSV sums:\n" > CHECKSUMS
  174.         sum $(SRCFILES) >> CHECKSUMS
  175.         echo "\nBSD sums (generated using sum -r on SYSV system):\n" >>CHECKSUMS
  176.         sum -r $(SRCFILES) >> CHECKSUMS
  177.  
  178. MANIFEST :    $(MANSRCFILES)    
  179.         $(SHARCMD) -x
  180.         chmod -w MANIFEST
  181.     
  182. $(LIB) :    $(LIBOBJS)
  183.         $(RM) -f $@
  184.         $(AR) crv $@ $(LIBOBJS)
  185.         $(RANLIB) $@
  186.  
  187. $(LINTLIB) :    $(LIBSRCS)
  188.         $(LINT) -x -v -o dbmal $(LIBSRCS)
  189.  
  190. #
  191. # stuff for building the nroffed version of the manual page
  192. #
  193.  
  194. man :        malloc.man
  195.  
  196. malloc.man :    malloc.3
  197.         rm -f malloc.man
  198.         $(NROFF) -man malloc.3 | col -b > malloc.man
  199.  
  200. #
  201. # stuff for building the test programs
  202. #
  203.  
  204. testmalloc :    $(LIB) testmalloc.o
  205.         $(CC) $(CFLAGS) -o $@ testmalloc.o $(LIB)
  206.  
  207. testmem :    $(LIB) testmem.o
  208.         $(CC) $(CFLAGS) -o $@ testmem.o $(LIB)
  209.  
  210. teststack :    $(LIB) teststack.o
  211.         $(CC) $(CFLAGS) -o $@ teststack.o $(LIB)
  212.  
  213. testerr :    $(LIB) testerr.o
  214.         $(CC) $(CFLAGS) -o $@ testerr.o $(LIB)
  215.  
  216. #
  217. # misc stuff for source code maintenance
  218. #
  219.  
  220. lint :    
  221.         $(LINT) $(CFLAGS) $(SRCS)
  222.  
  223. proto :
  224.         rm -f prototypes.h
  225.         make prototypes.h
  226.  
  227. prototypes.h :    $(LIBSRCS) $(HDRS) malloc.h
  228.         @if [ ! -s $(CPROTO) ]; then \
  229.             echo "Need cproto to rebuild prototypes file";\
  230.             exit 1; \
  231.         else \
  232.             exit 0; \
  233.         fi
  234.         -rm -f prototypes.h
  235.         cp /dev/null prototypes.h
  236.         $(CPROTO) -Dforce_cproto_to_use_defines -D__STDC__ \
  237.              -DDONT_USE_ASM -m__stdcargs -f4 $(LIBSRCS) \
  238.              | sed -e "s/const/CONST/g" > prototypes.new
  239.         mv prototypes.new prototypes.h
  240.         chmod -w prototypes.h
  241.     
  242. patch :        $(SRCFILES)
  243.         sh Buildpatch $(SRCFILES)
  244.  
  245. srclist :
  246.         @echo $(SRCFILES)
  247.  
  248. rcsclean :    $(BUILDFILES)
  249.         -rcsclean -q $(SRCFILES)
  250.         -ls $(SRCFILES) 2>/dev/null > files.list
  251.         -rcs -i -t/dev/null `cat files.list` 2>/dev/null
  252.         @set -e; \
  253.         echo "files to be checked in: `cat files.list`"; \
  254.         echo "\n\tMessage: \c"; \
  255.         read message; \
  256.         echo ""; \
  257.         rcs -q -l `cat files.list`; \
  258.         ci -m"$$message" `cat files.list`; \
  259.         co -u $(SRCFILES)
  260.  
  261. #
  262. # special rules for building datams.o and datamc.o
  263. #
  264.  
  265. datams.o :    datams.c malloc.h mallocin.h sysdefs.h
  266. datamc.o :    datamc.c malloc.h mallocin.h sysdefs.h
  267.  
  268. #
  269. # include file dependencies
  270. #
  271.  
  272. $(LIBOBJS) :    malloc.h mallocin.h sysdefs.h
  273.  
  274. testerr.o :    malloc.h sysdefs.h
  275. testmalloc.o :    malloc.h sysdefs.h
  276. testmem.o :    malloc.h sysdefs.h
  277. tostring.o :    tostring.h sysdefs.h
  278. malloc.o :    tostring.h sysdefs.h
  279. dump.o :    tostring.h sysdefs.h
  280.