# Copyright (C) 1992 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public License as # published by the Free Software Foundation; either version 2 of the # License, or (at your option) any later version. # The GNU C Library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Library General Public License for more details. # You should have received a copy of the GNU Library General Public # License along with the GNU C Library; see the file COPYING.LIB. If # not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # # Makefile for mmalloc directory # # Directory containing source files. Don't clean up the spacing, # this exact string is matched for by the "configure" script. VPATH = @srcdir@ srcdir = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ libdir = @libdir@ datadir = @datadir@ mandir = @mandir@ man1dir = $(mandir)/man1 man2dir = $(mandir)/man2 man3dir = $(mandir)/man3 man4dir = $(mandir)/man4 man5dir = $(mandir)/man5 man6dir = $(mandir)/man6 man7dir = $(mandir)/man7 man8dir = $(mandir)/man8 man9dir = $(mandir)/man9 infodir = @infodir@ includedir = @includedir@ DESTDIR = SHELL = /bin/sh INSTALL = @INSTALL@ INSTALL_PROGRAM=@INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ AR = @AR@ AR_FLAGS = qv CFLAGS = -g MAKEINFO = makeinfo RANLIB = @RANLIB@ RM = rm # where to find makeinfo MAKEINFO=makeinfo SET_TEXINPUTS = TEXINPUTS=${TEXIDIR}:.:$(srcdir):$(READLINE_DIR):$$TEXINPUTS # The TeX formatter TEX = tex TARGETLIB = libmmalloc.a CFILES = mcalloc.c mfree.c mmalloc.c mmcheck.c mmemalign.c mmstats.c \ mmtrace.c mrealloc.c mvalloc.c mmap-sup.c attach.c detach.c \ keys.c sbrk-sup.c mm.c HFILES = mmalloc.h OFILES = mcalloc.o mfree.o mmalloc.o mmcheck.o mmemalign.o mmstats.o \ mmtrace.o mrealloc.o mvalloc.o mmap-sup.o attach.o detach.o \ keys.o sbrk-sup.o DEFS = @DEFS@ # The current default is to build a single object module with all the mmalloc # functions. To build a more traditional library, flip this macro definition. #TARGETOBJS = $(OFILES) TARGETOBJS = mm.o .c.o: $(CC) -c $(CFLAGS) $(DEFS) -I. -I$(srcdir)/../include $< # Do we want/need any config overrides? # STAGESTUFF = $(TARGETLIB) *.o all: $(TARGETLIB) info: mmalloc.info dvi: mmalloc.dvi clean-info: installcheck: mmalloc.info: mmalloc.texi $(MAKEINFO) -I $(srcdir) -o ./mmalloc.info mmalloc.texi # This file doesn't need texindex currently. mmalloc.dvi: mmalloc.texi $(SET_TEXINPUTS) $(TEX) mmalloc.texi rm -f mmalloc.?? mmalloc.??s mmalloc.log mmalloc.aux mmalloc.toc install-info: info if test ! -f mmalloc.info ; then cd $(srcdir); fi; \ $(INSTALL_DATA) mmalloc.info $(DESTDIR)$(infodir)/mmalloc.info check: test1.c # $(CC) -g $(srcdir)/test1.c libmmalloc.a # This loses for Canadian cross (building mmalloc with a cross-compiler). # There is probably some dejagnu-ish solution (such as what we are doing # for gdb, perhaps). # ./a.out install: all $(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(libdir)/$(TARGETLIB).n $(RANLIB) $(DESTDIR)$(libdir)/$(TARGETLIB).n mv -f $(DESTDIR)$(libdir)/$(TARGETLIB).n $(DESTDIR)$(libdir)/$(TARGETLIB) $(TARGETLIB): $(TARGETOBJS) $(RM) -rf $@ $(AR) $(AR_FLAGS) $@ $(TARGETOBJS) $(RANLIB) $@ $(OFILES) : $(HFILES) Makefile mm.o: $(HFILES) $(CFILES) $(CC) -c $(CFLAGS) $(DEFS) -I. -I$(srcdir)/../include $(srcdir)/mm.c .always.: # Do nothing. .PHONEY: all etags tags ls clean stage1 stage2 .always. stage1: force -mkdir stage1 -mv -f $(STAGESTUFF) stage1 stage2: force -mkdir stage2 -mv -f $(STAGESTUFF) stage2 stage3: force -mkdir stage3 -mv -f $(STAGESTUFF) stage3 stage4: force -mkdir stage4 -mv -f $(STAGESTUFF) stage4 against=stage2 comparison: force for i in *.o ; do cmp $$i $(against)/$$i || exit 1 ; done de-stage1: force -(cd stage1 ; mv -f * ..) -rmdir stage1 de-stage2: force -(cd stage2 ; mv -f * ..) -rmdir stage2 de-stage3: force -(cd stage3 ; mv -f * ..) -rmdir stage3 de-stage4: force -(cd stage4 ; mv -f * ..) -rmdir stage4 etags tags: TAGS TAGS: $(CFILES) etags `for i in $(HFILES) $(CFILES); do echo $(srcdir)/$$i ; done` ls: @echo Makefile $(HFILES) $(CFILES) # Need to deal with profiled libraries, too. mostlyclean clean: rm -f *.a *.o core errs *~ \#* TAGS *.E a.out errors distclean: clean rm -f config.cache config.log config.status rm -f Makefile depend maintainer-clean realclean: distclean clean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." rm -f mmalloc.info force: Makefile: Makefile.in config.status $(SHELL) config.status config.status: configure $(SHELL) config.status --recheck