| # 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@ | |
| SHELL = @SHELL@ | |
| 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 | |
| $(SHELL) $(srcdir)/../mkinstalldirs $(infodir) | |
| if test ! -f mmalloc.info ; then cd $(srcdir); fi; \ | |
| $(INSTALL_DATA) mmalloc.info $(infodir)/mmalloc.info | |
| @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \ | |
| echo " install-info --info-dir=$(infodir) $(infodir)/mmalloc.info";\ | |
| install-info --info-dir=$(infodir) $(infodir)/mmalloc.info || :;\ | |
| else : ; fi | |
| 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) $(libdir)/$(TARGETLIB)n | |
| $(RANLIB) $(libdir)/$(TARGETLIB)n | |
| mv -f $(libdir)/$(TARGETLIB)n $(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 |