home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
dbmalloc.zip
/
Makefile
< prev
next >
Wrap
Makefile
|
1995-04-26
|
9KB
|
333 lines
#
#
# (c) Copyright 1990, 1991, 1992 Conor P. Cahill (uunet!virtech!cpcahil).
#
# This software may be distributed freely as long as the following conditions
# are met:
# * the distribution, or any derivative thereof, may not be
# included as part of a commercial product
# * full source code is provided including this copyright
# * there is no charge for the software itself (there may be
# a minimal charge for the copying or distribution effort)
# * this copyright notice is not modified or removed from any
# source file
#
#
# $Id: Makefile,v 1.39 1992/08/22 16:27:13 cpcahil Exp $
#
# This is the Makefile for the malloc debugging library
#
# NOTE: while most porting changes are made here, the malloc.h file
# may require hand editing (mostly the DATATYPE and SIZETYPE
# typedefs) because of system wierdities.
#
# Usefull targets:
#
# all make all programs/libs in the local directory
# install install updated programs/libs
# frcinstall install all programs/libs
# tests build tests
# runtests build and run all tests
# clean clean up after yourself
# fullclean clean up everything (including configure stuff)
#
# NOTE: there are several other targets used by myself for souce code
# maintenance related functions. These are probably specific to my system
# and may not do what they are supposed to do in a different environment.
# Therefore, unless you know what you are doing, I would suggest not running
# them (hence why they are not documented here).
#
# And now, onto a few definitions that you may need to alter
#
# The following defines may be added as necessary to the CFLAGS definition:
#
# -DANSI_NULLS if you want to allow passing of NULL pointers to realloc
# and/or free (as ANSI does) even if the library is
# compiled by a non-ANSI compiler.
# -DNO_ANSI_NULLS if you DON'T want to allow passing of NULL pointers to
# realloc and/or free, even if the library is compiled by
# an ANSI conforming compiler.
# -DDONT_USE_ASM don't use ASM speedups when replacing system memcpy
# and/or memset routines
# -DCTYPE_SUPPORT=x where x is one of the following
#
# 1 - use plain-jane ctype.h which is only valid
# for the ansii character set (DEFAULT)
# 2 - use POSIX setlocal() to setup the character
# set definitions
# 3 - use C library islower() & toupper()
# functions
#
# NOTE: if you add any flags other than the above to the CFLAGS, you might want
# to add a similar arguement in the Config.flags file. However, you
# should remember that the malloc.h configuration will depend upon these
# settings and you could have a problem if you attempt to use the file
# in a compile session that doesn't include these flags.
#
CFLAGS=
#
# Where the code will be installed
#
# DESTDIR root for installation directory
# INSTDIR installation directory
# LIBINSTDIR install directory for library
# INCINSTDIR install directory for include files
# MANINSTDIR manual installation directory
# MANINSTNAME name to install the manual as
# MANINSTVER manual install version (use malloc.3 for troff/nroff
# source and malloc.man for pre-formatted)
#
DESTDIR=
INSTDIR=$(DESTDIR)/usr/local
LIBINSTDIR=$(INSTDIR)/lib
INCINSTDIR=$(INSTDIR)/debug_include
MANINSTDIR=$(INSTDIR)/man/man3
RANLIB=/usr/local/bin/ranlib
MANINSTNAME=dbmalloc.3
MANINSTVER=malloc.3
#
# miscellaneous commands
#
# NOTE: if you change CC to a non-K&R compiler be sure to read the
# PROBLEMS file first.
#
CC=gcc
CPROTO=/usr/local/bin/cproto
LINT=lint
NROFF=nroff
SHARCMD=makekit -p -m -nmallocshar.
#SHELL=/bin/sh
LIB=dbmalloc.a
LINTLIB=llib-ldbmal.ln
#
# You shouldn't have to modify anything below this line
#
LIBSRCS= malloc.c \
datams.c \
dgmalloc.c \
fill.c \
free.c \
realloc.c \
calloc.c \
string.c \
mcheck.c \
mchain.c \
memory.c \
tostring.c \
m_perror.c \
m_init.c \
mallopt.c \
dump.c \
stack.c \
xmalloc.c \
xheap.c \
malign.c \
size.c \
abort.c \
leak.c
LIBOBJS= malloc.o \
datams.o \
dgmalloc.o \
fill.o \
free.o \
realloc.o \
calloc.o \
string.o \
mcheck.o \
mchain.o \
memory.o \
tostring.o \
m_perror.o \
m_init.o \
mallopt.o \
dump.o \
stack.o \
xmalloc.o \
xheap.o \
malign.o \
size.o \
abort.o \
leak.o
SRCS=$(LIBSRCS) testmalloc.c testmem.c testerr.c teststack.c cctest.c
HDRS= malloc.h.org mallocin.h debug.h tostring.h
BUILDFILES=malloc.man prototypes.h
MANSRCFILES=patchlevel README PROBLEMS CHANGES Buildpatch minipatch Makefile \
malloc.3 malloc.man $(SRCS) $(HDRS) prototypes.h \
Configure Config.flags Runtests testerr.base
SRCFILES=MANIFEST $(MANSRCFILES)
TESTS=testmalloc.exe testmem.exe testerr.exe teststack.exe
all: $(LIB)
install: $(LIBINSTDIR)/$(LIB) $(INCINSTDIR)/malloc.h \
$(MANINSTDIR)/$(MANINSTNAME)
frcinstall: rminstall install
rminstall:
rm -f $(LIBINSTDIR)/$(LIB) $(INCINSTDIR)/malloc.h \
$(MANINSTDIR)/$(MANINSTNAME)
$(LIBINSTDIR)/$(LIB): $(LIB)
-rm -f $@.old
-mv -f $@ $@.old
cp $? $@
@-if test -s $(RANLIB); then $(RANLIB) $@; \
else if test -s /bin/ranlib; then /bin/ranlib $@; \
else if test -s /usr/bin/ranlib; then /usr/bin/ranlib $@; \
else exit 0; fi; fi; fi
-chmod 644 $@
-rm -f $@.old
$(INCINSTDIR)/malloc.h: malloc.h
-rm -f $@.old
-mv -f $@ $@.old
cp $? $@
-chmod 644 $@
-rm -f $@.old
$(MANINSTDIR)/$(MANINSTNAME): $(MANINSTVER)
-rm -f $@.old
-mv -f $@ $@.old
cp $? $@
-chmod 644 $@
-rm -f $@.old
tests: $(TESTS)
#
# runtests - target for building and running the tests. Note that we
# run testmalloc with fill_area disabled. This is because testmalloc is
# a malloc exerciser and we just want to see if we broke malloc, not verify
# that the test doesn't overwrite memory (since it doesn't).
#
runtests: tests
@echo "Running all of the test programs. This may take a while so"
@echo "please be patient. Note that you won't see any output unless"
@echo "a test fails....."
./Runtests
clean:
rm -f $(TESTS) pgm cctest $(LIB) *.o *.ln Runtests.out malloc.h \
sysdefs.h
fullclean: clean
rm -f .configure .configure.[sO] *.O core cscope.out tags
sharfile: $(SRCFILES) CHECKSUMS
$(SHARCMD)
CHECKSUMS: $(SRCFILES)
echo "SYSV sums:\n" > CHECKSUMS
sum $(SRCFILES) >> CHECKSUMS
echo "\nBSD sums (generated using sum -r on SYSV system):\n" >>CHECKSUMS
sum -r $(SRCFILES) >> CHECKSUMS
MANIFEST: $(MANSRCFILES)
$(SHARCMD) -x
chmod -w MANIFEST
$(LIB): $(LIBOBJS)
-rm -f $(LIB)
ar r $(LIB) $(LIBOBJS)
ar s $(LIB)
$(LINTLIB): $(LIBSRCS)
$(LINT) -x -v -o dbmal $(LIBSRCS)
malloc.h: malloc.h.org Configure
./Configure
sysdefs.h: Configure
./Configure
#
# stuff for building the nroffed version of the manual page
#
man: malloc.man
malloc.man: malloc.3
rm -f malloc.man
$(NROFF) -man malloc.3 | col -b > malloc.man
#
# stuff for building the test programs
#
testmalloc.exe: $(LIB) testmalloc.o
$(CC) $(CFLAGS) -o $@ testmalloc.o $(LIB)
testmem.exe: $(LIB) testmem.o
$(CC) $(CFLAGS) -o $@ testmem.o $(LIB)
teststack.exe: $(LIB) teststack.o
$(CC) $(CFLAGS) -o $@ teststack.o $(LIB)
testerr.exe: $(LIB) testerr.o
$(CC) $(CFLAGS) -o $@ testerr.o $(LIB)
#
# misc stuff for source code maintenance
#
lint:
$(LINT) $(CFLAGS) $(SRCS)
proto:
rm -f prototypes.h
make prototypes.h
prototypes.h: $(LIBSRCS) $(HDRS) malloc.h
@if [ ! -s $(CPROTO) ]; then \
echo "Need cproto to rebuild prototypes file";\
exit 1; \
else \
exit 0; \
fi
-rm -f prototypes.h
cp /dev/null prototypes.h
$(CPROTO) -Dforce_cproto_to_use_defines -D__STDC__ \
-DDONT_USE_ASM -m__stdcargs -f4 $(LIBSRCS) \
| sed -e "s/const/CONST/g" > prototypes.new
mv prototypes.new prototypes.h
chmod -w prototypes.h
patch: $(SRCFILES)
sh Buildpatch $(SRCFILES)
srclist:
@echo $(SRCFILES)
rcsclean: $(BUILDFILES)
-rcsclean -q $(SRCFILES)
-ls $(SRCFILES) 2>/dev/null > files.list
-rcs -i -t/dev/null `cat files.list` 2>/dev/null
@set -e; \
echo "files to be checked in: `cat files.list`"; \
echo "\n\tMessage: \c"; \
read message; \
echo ""; \
rcs -q -l `cat files.list`; \
ci -m"$$message" `cat files.list`; \
co -u $(SRCFILES)
#
# special rules for building datams.o and datamc.o
#
datams.o: datams.c malloc.h mallocin.h sysdefs.h
#
# include file dependencies
#
$(LIBOBJS): malloc.h mallocin.h sysdefs.h
testerr.o testmalloc.o testmem.o: malloc.h sysdefs.h
tostring.o malloc.o dump.o: tostring.h sysdefs.h