# 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 = /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 NSLIBTOOL = cc -dynamiclib # where to find makeinfo MAKEINFO=makeinfo SET_TEXINPUTS = TEXINPUTS=${TEXIDIR}:.:$(srcdir):$(READLINE_DIR):$$TEXINPUTS # The TeX formatter TEX = tex PAGEFILE = @PAGEFILE@ TARGETLIB = libefence.a CFILES = efence.c $(PAGEFILE).c print.c HFILES = efence.h OFILES = efence.o $(PAGEFILE).o print.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 %.o: %.c $(CC) -c $(CFLAGS) $(DEFS) -I. -I$(srcdir)/../include $< # Do we want/need any config overrides? # STAGESTUFF = $(TARGETLIB) $(TARGETOBJ) 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 $(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) $(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 SYSTEM_FRAMEWORK = -framework System FRAMEWORK = electric-fence 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 $(HOST_ARCHITECTURE) -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 $(HOST_ARCHITECTURE) -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 .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