Implemented share/attach/detach; not tested yet - just checking in
[ocaml-ancient.git] / mmalloc / Makefile.in
1 # Copyright (C) 1992 Free Software Foundation, Inc.
2 # This file is part of the GNU C Library.
3
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.
8
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.
13
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.
18
19 #
20 # Makefile for mmalloc directory
21 #
22
23 # Directory containing source files.  Don't clean up the spacing,
24 # this exact string is matched for by the "configure" script.
25
26 VPATH = @srcdir@
27 srcdir = @srcdir@
28
29 prefix =        @prefix@
30 exec_prefix =   @exec_prefix@
31
32 bindir =        @bindir@
33 libdir =        @libdir@
34
35 datadir =       @datadir@
36 mandir =        @mandir@
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
46 infodir =       @infodir@
47 includedir =    @includedir@
48
49 SHELL =         @SHELL@
50
51 INSTALL =       @INSTALL@
52 INSTALL_PROGRAM=@INSTALL_PROGRAM@
53 INSTALL_DATA =  @INSTALL_DATA@
54
55 AR =            @AR@
56 AR_FLAGS =      qv
57 CFLAGS =        -g -fPIC
58 MAKEINFO =      makeinfo
59 RANLIB =        @RANLIB@
60 RM =            rm
61
62 # where to find makeinfo
63 MAKEINFO=makeinfo
64
65 SET_TEXINPUTS = TEXINPUTS=${TEXIDIR}:.:$(srcdir):$(READLINE_DIR):$$TEXINPUTS
66
67 # Files which should be generated via 'info' and installed by 'install-info'
68 INFO_DEPS = mmalloc.info
69
70 # The TeX formatter
71 TEX = tex
72
73 TARGETLIB =     libmmalloc.a
74
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
78
79 HFILES =        mmalloc.h
80
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 \
83                 keys.o sbrk-sup.o
84
85 DEFS =          @DEFS@
86
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)
90 TARGETOBJS =    mm.o
91
92 .c.o:
93                 $(CC) -c $(CFLAGS) $(DEFS) -I. -I$(srcdir)/../include $<
94
95 # Do we want/need any config overrides?
96 #        
97
98 STAGESTUFF =    $(TARGETLIB) *.o
99
100 all:            $(TARGETLIB)
101
102 info: $(INFO_DEPS)
103 dvi: mmalloc.dvi
104 clean-info:
105 installcheck:
106
107 mmalloc.info: mmalloc.texi
108         $(MAKEINFO) -I $(srcdir) -o ./mmalloc.info mmalloc.texi
109
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
114
115 install-info: info
116         $(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(infodir)
117         @list='$(INFO_DEPS)'; \
118         for file in $$list; do \
119           if test -f $$file; then d=.; else d=$(srcdir); fi; \
120           for ifile in `cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \
121             if test -f $$d/$$ifile; then \
122               echo " $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile"; \
123               $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile; \
124             else : ; fi; \
125           done; \
126         done
127         $(POST_INSTALL)
128         @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
129           list='$(INFO_DEPS)'; \
130           for file in $$list; do \
131             echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file";\
132             install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file || :;\
133           done; \
134         else : ; fi
135
136 uninstall-info:
137         $(PRE_UNINSTALL)
138         @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
139           ii=yes; \
140         else ii=; fi; \
141         list='$(INFO_DEPS)'; \
142         for file in $$list; do \
143           test -z "$$ii" \
144             || install-info --info-dir=$(DESTDIR)$(infodir) --remove $$file; \
145         done
146         $(NORMAL_UNINSTALL)
147         list='$(INFO_DEPS)'; \
148         for file in $$list; do \
149           (cd $(DESTDIR)$(infodir) && rm -f $$file $$file-[0-9] $$file-[0-9][0-9]); \
150         done
151
152 check: test1.c
153 #       $(CC) -g $(srcdir)/test1.c libmmalloc.a
154 # This loses for Canadian cross (building mmalloc with a cross-compiler).
155 # There is probably some dejagnu-ish solution (such as what we are doing
156 # for gdb, perhaps).
157 #       ./a.out
158
159 install:        all install-info
160                 $(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(libdir)
161                 $(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(libdir)/$(TARGETLIB)n
162                 $(RANLIB) $(DESTDIR)$(libdir)/$(TARGETLIB)n
163                 mv -f $(DESTDIR)$(libdir)/$(TARGETLIB)n $(DESTDIR)$(libdir)/$(TARGETLIB)
164
165 uninstall:      uninstall-info
166
167 $(TARGETLIB):   $(TARGETOBJS)
168                 $(RM) -rf $@
169                 $(AR) $(AR_FLAGS) $@ $(TARGETOBJS)
170                 $(RANLIB) $@
171
172 $(OFILES) :     $(HFILES) Makefile
173
174 mm.o:           $(HFILES) $(CFILES)
175                 $(CC) -c $(CFLAGS) $(DEFS) -I. -I$(srcdir)/../include $(srcdir)/mm.c
176
177 .always.:
178 # Do nothing.
179
180 .PHONEY: all etags tags ls clean stage1 stage2 .always.
181
182 stage1:         force
183                 -mkdir stage1
184                 -mv -f $(STAGESTUFF) stage1
185
186 stage2:         force
187                 -mkdir stage2
188                 -mv -f $(STAGESTUFF) stage2
189
190 stage3:         force
191                 -mkdir stage3
192                 -mv -f $(STAGESTUFF) stage3
193
194 stage4:         force
195                 -mkdir stage4
196                 -mv -f $(STAGESTUFF) stage4
197
198 against=stage2
199
200 comparison:     force
201                 for i in *.o ; do cmp $$i $(against)/$$i || exit 1 ; done
202
203 de-stage1:      force
204                 -(cd stage1 ; mv -f * ..)
205                 -rmdir stage1
206
207 de-stage2:      force
208                 -(cd stage2 ; mv -f * ..)
209                 -rmdir stage2
210
211 de-stage3:      force
212                 -(cd stage3 ; mv -f * ..)
213                 -rmdir stage3
214
215 de-stage4:      force
216                 -(cd stage4 ; mv -f * ..)
217                 -rmdir stage4
218
219 etags tags:     TAGS
220
221 TAGS:           $(CFILES)
222         etags `for i in $(HFILES) $(CFILES); do echo $(srcdir)/$$i ; done`
223
224 ls:
225                 @echo Makefile $(HFILES) $(CFILES)
226
227 # Need to deal with profiled libraries, too.
228
229 mostlyclean clean:
230                 rm -f *.a *.o core errs *~ \#* TAGS *.E a.out errors 
231
232 distclean:      clean 
233                 rm -f config.cache config.log config.status
234                 rm -f Makefile depend
235
236 maintainer-clean realclean: distclean clean
237                 @echo "This command is intended for maintainers to use;"
238                 @echo "it deletes files that may require special tools to rebuild."
239                 rm -f mmalloc.info
240
241 force:
242
243 Makefile:       Makefile.in config.status
244                 $(SHELL) config.status
245
246 config.status:  configure
247                 $(SHELL) config.status --recheck