1 # Copyright (C) 1992 Free Software Foundation, Inc.
2 # This file is part of the GNU C Library.
4 # The GNU C Library is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU Library General Public License as
6 # published by the Free Software Foundation; either version 2 of the
7 # License, or (at your option) any later version.
9 # The GNU C Library is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 # Library General Public License for more details.
14 # You should have received a copy of the GNU Library General Public
15 # License along with the GNU C Library; see the file COPYING.LIB. If
16 # not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17 # Boston, MA 02111-1307, USA.
20 # Makefile for mmalloc directory
23 # Directory containing source files. Don't clean up the spacing,
24 # this exact string is matched for by the "configure" script.
30 exec_prefix = @
exec_prefix@
37 man1dir = $(mandir)/man1
38 man2dir = $(mandir)/man2
39 man3dir = $(mandir)/man3
40 man4dir = $(mandir)/man4
41 man5dir = $(mandir)/man5
42 man6dir = $(mandir)/man6
43 man7dir = $(mandir)/man7
44 man8dir = $(mandir)/man8
45 man9dir = $(mandir)/man9
47 includedir = @
includedir@
52 INSTALL_PROGRAM
=@INSTALL_PROGRAM@
53 INSTALL_DATA
= @INSTALL_DATA@
62 # where to find makeinfo
65 SET_TEXINPUTS
= TEXINPUTS
=${TEXIDIR}:.
:$(srcdir):$(READLINE_DIR
):$$TEXINPUTS
67 # Files which should be generated via 'info' and installed by 'install-info'
68 INFO_DEPS
= mmalloc.
info
73 TARGETLIB
= libmmalloc.a
75 CFILES
= mcalloc.c mfree.c mmalloc.c mmcheck.c mmemalign.c mmstats.c \
76 mmtrace.c mrealloc.c mvalloc.c mmap-sup.c attach.c detach.c \
77 keys.c sbrk-sup.c mm.c
81 OFILES
= mcalloc.o mfree.o mmalloc.o mmcheck.o mmemalign.o mmstats.o \
82 mmtrace.o mrealloc.o mvalloc.o mmap-sup.o attach.o detach.o \
87 # The current default is to build a single object module with all the mmalloc
88 # functions. To build a more traditional library, flip this macro definition.
89 #TARGETOBJS = $(OFILES)
93 $(CC
) -c
$(CFLAGS
) $(DEFS
) -I.
-I
$(srcdir)/..
/include $<
95 # Do we want/need any config overrides?
98 STAGESTUFF
= $(TARGETLIB
) *.o
107 mmalloc.
info: mmalloc.texi
108 $(MAKEINFO
) -I
$(srcdir) -o .
/mmalloc.
info mmalloc.texi
110 # This file doesn't need texindex currently.
111 mmalloc.
dvi: mmalloc.texi
112 $(SET_TEXINPUTS
) $(TEX
) mmalloc.texi
113 rm -f mmalloc.?? mmalloc.??s mmalloc.log mmalloc.aux mmalloc.toc
116 @list
='$(INFO_DEPS)'; \
117 for file in
$$list; do \
118 if
test -f
$$file; then d
=.
; else d
=$(srcdir); fi
; \
119 for ifile in
`cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \
120 if
test -f
$$d/$$ifile; then \
121 echo
" $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile"; \
122 $(INSTALL_DATA
) $$d/$$ifile $(DESTDIR
)$(infodir)/$$ifile; \
127 @if
$(SHELL
) -c
'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev
/null
2>&1; then \
128 list
='$(INFO_DEPS)'; \
129 for file in
$$list; do \
130 echo
" install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file";\
131 install-info
--info-dir
=$(DESTDIR
)$(infodir) $(DESTDIR
)$(infodir)/$$file ||
:;\
137 @if
$(SHELL
) -c
'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev
/null
2>&1; then \
140 list
='$(INFO_DEPS)'; \
141 for file in
$$list; do \
143 || install-info
--info-dir
=$(DESTDIR
)$(infodir) --remove
$$file; \
146 list
='$(INFO_DEPS)'; \
147 for file in
$$list; do \
148 (cd
$(DESTDIR
)$(infodir) && rm -f
$$file $$file-[0-9] $$file-[0-9][0-9]); \
152 # $(CC) -g $(srcdir)/test1.c libmmalloc.a
153 # This loses for Canadian cross (building mmalloc with a cross-compiler).
154 # There is probably some dejagnu-ish solution (such as what we are doing
158 install: all install-info
159 $(INSTALL_DATA
) $(TARGETLIB
) $(libdir)/$(TARGETLIB
)n
160 $(RANLIB
) $(libdir)/$(TARGETLIB
)n
161 mv
-f
$(libdir)/$(TARGETLIB
)n
$(libdir)/$(TARGETLIB
)
163 uninstall: uninstall-info
165 $(TARGETLIB
): $(TARGETOBJS
)
167 $(AR
) $(AR_FLAGS
) $@
$(TARGETOBJS
)
170 $(OFILES
) : $(HFILES
) Makefile
172 mm.o
: $(HFILES
) $(CFILES
)
173 $(CC
) -c
$(CFLAGS
) $(DEFS
) -I.
-I
$(srcdir)/..
/include $(srcdir)/mm.c
178 .PHONEY
: all etags
tags ls
clean stage1 stage2 .always.
182 -mv
-f
$(STAGESTUFF
) stage1
186 -mv
-f
$(STAGESTUFF
) stage2
190 -mv
-f
$(STAGESTUFF
) stage3
194 -mv
-f
$(STAGESTUFF
) stage4
199 for i in
*.o
; do cmp
$$i $(against
)/$$i || exit
1 ; done
202 -(cd stage1
; mv
-f
* ..
)
206 -(cd stage2
; mv
-f
* ..
)
210 -(cd stage3
; mv
-f
* ..
)
214 -(cd stage4
; mv
-f
* ..
)
220 etags
`for i in $(HFILES) $(CFILES); do echo $(srcdir)/$$i ; done`
223 @echo Makefile
$(HFILES
) $(CFILES
)
225 # Need to deal with profiled libraries, too.
228 rm -f
*.a
*.o core errs
*~ \
#* TAGS *.E a.out errors
231 rm -f config.cache config.log config.status
232 rm -f Makefile depend
234 maintainer-clean
realclean: distclean clean
235 @echo
"This command is intended for maintainers to use;"
236 @echo
"it deletes files that may require special tools to rebuild."
241 Makefile
: Makefile.in config.status
242 $(SHELL
) config.status
244 config.status
: configure
245 $(SHELL
) config.status
--recheck