# 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 -Wall -Wimplicit MAKEINFO = makeinfo RANLIB = @RANLIB@ RM = rm NSLIBTOOL = libtool # 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 malloc-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 malloc-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) SYSTEM_FRAMEWORK = -framework System -lcc_dynamic FRAMEWORK = mmalloc FRAMEWORK_ADDRESS = 0x0 FRAMEWORK_PREFIX = FRAMEWORK_SUFFIX = FRAMEWORK_VERSION_SUFFIX = FRAMEWORK_VERSION = A FRAMEWORK_OFILES = $(TARGETOBJS) FRAMEWORK_LIB = $(SYSTEM_FRAMEWORK) stamp-framework-headers: $(RM) -f stamp-framework stamp-framework-headers $(RM) -rf $(FRAMEWORK).framework mkdir -p $(FRAMEWORK).framework/Versions/$(FRAMEWORK_VERSION)/Headers mkdir -p $(FRAMEWORK).framework/Versions/$(FRAMEWORK_VERSION)/PrivateHeaders ln -s Versions/Current/Headers $(FRAMEWORK).framework/Headers ln -s Versions/Current/PrivateHeaders $(FRAMEWORK).framework/PrivateHeaders ln -s A $(FRAMEWORK).framework/Versions/Current cp -p $(srcdir)/*.h $(FRAMEWORK).framework/Versions/Current/Headers/ cp -p *.h $(FRAMEWORK).framework/Versions/Current/Headers/ touch stamp-framework-headers stamp-framework: $(FRAMEWORK_OFILES) $(RM) -f stamp-framework-headers $(MAKE) stamp-framework-headers mkdir -p $(FRAMEWORK).framework/Versions/$(FRAMEWORK_VERSION)/Resources ln -s Versions/Current/Resources $(FRAMEWORK).framework/Resources mkdir -p $(FRAMEWORK).framework/Versions/Current/Resources/English.lproj set -e; if [ "$(FRAMEWORK_SUFFIX)" != "" ]; then \ $(NSLIBTOOL) -arch_only $(HOST_ARCHITECTURE) -dynamic -seg1addr $(FRAMEWORK_ADDRESS) -compatibility_version 1 -current_version 1 -install_name /System/Library/PrivateFrameworks/$(FRAMEWORK).framework/Versions/$(FRAMEWORK_VERSION)/$(FRAMEWORK_PREFIX)$(FRAMEWORK)$(FRAMEWORK_VERSION_SUFFIX) -o $(FRAMEWORK).framework/Versions/Current/$(FRAMEWORK_PREFIX)$(FRAMEWORK)$(FRAMEWORK_VERSION_SUFFIX) $(FRAMEWORK_OFILES) $(FRAMEWORK_LIB); \ ln -s $(FRAMEWORK_PREFIX)$(FRAMEWORK)$(FRAMEWORK_VERSION_SUFFIX) $(FRAMEWORK).framework/Versions/Current/$(FRAMEWORK_PREFIX)$(FRAMEWORK)$(FRAMEWORK_SUFFIX); \ ln -s Versions/Current/$(FRAMEWORK_PREFIX)$(FRAMEWORK)$(FRAMEWORK_VERSION_SUFFIX) $(FRAMEWORK).framework/$(FRAMEWORK_PREFIX)$(FRAMEWORK)$(FRAMEWORK_VERSION_SUFFIX); \ ln -s Versions/Current/$(FRAMEWORK_PREFIX)$(FRAMEWORK)$(FRAMEWORK_SUFFIX) $(FRAMEWORK).framework/$(FRAMEWORK_PREFIX)$(FRAMEWORK)$(FRAMEWORK_SUFFIX); \ ln -s $(FRAMEWORK_PREFIX)$(FRAMEWORK)$(FRAMEWORK_SUFFIX) $(FRAMEWORK).framework/$(FRAMEWORK); \ else \ $(NSLIBTOOL) -arch_only $(HOST_ARCHITECTURE) -dynamic -seg1addr $(FRAMEWORK_ADDRESS) -compatibility_version 1 -current_version 1 -install_name /System/Library/PrivateFrameworks/$(FRAMEWORK).framework/Versions/$(FRAMEWORK_VERSION)/$(FRAMEWORK_PREFIX)$(FRAMEWORK) -o $(FRAMEWORK).framework/Versions/Current/$(FRAMEWORK_PREFIX)$(FRAMEWORK) $(FRAMEWORK_OFILES) $(FRAMEWORK_LIB); \ ln -s Versions/Current/$(FRAMEWORK_PREFIX)$(FRAMEWORK) $(FRAMEWORK).framework/$(FRAMEWORK_PREFIX)$(FRAMEWORK); \ fi touch stamp-framework $(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. .PHONY: 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