| # 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 |
| |
| # Files which should be generated via 'info' and installed by 'install-info' |
| INFO_DEPS = mmalloc.info |
| |
| # 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: $(INFO_DEPS) |
| 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 |
| @list='$(INFO_DEPS)'; \ |
| for file in $$list; do \ |
| if test -f $$file; then d=.; else d=$(srcdir); fi; \ |
| for ifile in `cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \ |
| if test -f $$d/$$ifile; then \ |
| echo " $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile"; \ |
| $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile; \ |
| else : ; fi; \ |
| done; \ |
| done |
| $(POST_INSTALL) |
| @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \ |
| list='$(INFO_DEPS)'; \ |
| for file in $$list; do \ |
| echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file";\ |
| install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file || :;\ |
| done; \ |
| else : ; fi |
| |
| uninstall-info: |
| $(PRE_UNINSTALL) |
| @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \ |
| ii=yes; \ |
| else ii=; fi; \ |
| list='$(INFO_DEPS)'; \ |
| for file in $$list; do \ |
| test -z "$$ii" \ |
| || install-info --info-dir=$(DESTDIR)$(infodir) --remove $$file; \ |
| done |
| $(NORMAL_UNINSTALL) |
| list='$(INFO_DEPS)'; \ |
| for file in $$list; do \ |
| (cd $(DESTDIR)$(infodir) && rm -f $$file $$file-[0-9] $$file-[0-9][0-9]); \ |
| done |
| |
| 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-info |
| $(INSTALL_DATA) $(TARGETLIB) $(libdir)/$(TARGETLIB)n |
| $(RANLIB) $(libdir)/$(TARGETLIB)n |
| mv -f $(libdir)/$(TARGETLIB)n $(libdir)/$(TARGETLIB) |
| |
| uninstall: uninstall-info |
| |
| $(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 |