source: git/omalloc/Makefile.in @ 36ee6f

spielwiese
Last change on this file since 36ee6f was 36ee6f, checked in by Olaf Bachmann <obachman@…>, 24 years ago
* more tests git-svn-id: file:///usr/local/Singular/svn/trunk@4604 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 9.8 KB
Line 
1#################################################################
2### File:    Makefile.in
3### Purpose: Makefile for omalloc
4### Author:  obachman@mathematik.uni-kl.de (Olaf Bachmann)
5### Created: 11/99
6### Version: $Id: Makefile.in,v 1.5 2000-09-18 09:12:13 obachman Exp $
7#################################################################
8
9SHELL           = /bin/sh
10VERSION         = @VERSION@
11
12##
13## various paths
14##
15prefix          = @prefix@
16exec_prefix     = @exec_prefix@
17
18# header file is installed here
19includedir      = @includedir@
20# library is installed here
21libdir          = @libdir@
22
23##
24## various programs
25##
26@SET_MAKE@
27CC              = @CC@
28AR              = @AR@
29RANLIB          = @RANLIB@
30PERL            = @PERL@
31LN_S            = @LN_S@
32INSTALL         = @INSTALL@
33INSTALL_PROGRAM = @INSTALL_PROGRAM@
34INSTALL_DATA    = @INSTALL_DATA@
35MKINSTALLDIRS   = ./mkinstalldirs
36##
37## compiler and linker options
38##
39CFLAGS          = @CFLAGS@
40CPPFLAGS        = -I. @CPPFLAGS@
41DEFS            = @DEFS@
42
43##
44## external config and and malloc files
45##
46EXTERNAL_CONFIG_SOURCE = @EXTERNAL_CONFIG_SOURCE@
47EXTERNAL_CONFIG_HEADER = @EXTERNAL_CONFIG_HEADER@
48
49OM_MALLOC_HEADER = @OM_MALLOC_HEADER@
50OM_MALLOC_SOURCE = @OM_MALLOC_SOURCE@
51
52##
53## End configuration dependend stuff
54#################################################################
55
56###
57### file sets
58###
59
60# normal C source files
61CSOURCES=                                                          \
62omBinPage.c      omList.c         omAllocEmulate.c omDebug.c       \
63omAlloc.c        omDebugCheck.c   omOpts.c         omGetBackTrace.c\
64omAllocSystem.c  omError.c        omStats.c        omRet2Info.c   \
65omBin.c          omFindExec.c     omDebugTrack.c                   \
66omalloc_provide.c         
67
68ifdef EXTERNAL_CONFIG_SOURCE
69GSOURCES := ${GSOURCES} omExternalConfig.c
70endif
71ifdef OM_MALLOC_SOURCE
72GSOURCES := ${GSOURCES} omMalloc.c
73endif
74
75# ASO_SOURCES
76ASO_SOURCES =
77
78HEADERS=                                                        \
79omAlloc.h              omList.h               omDerivedConfig.h \
80omAllocDecl.h          omConfig.h             omMemOps.h        \
81omDebug.h              omOpts.h               omInlineDecl.h    \
82omAllocPrivate.h       omError.h              omPage.h          \
83omAllocSystem.h        omFindExec.h           omStats.h         \
84omBin.h                omDefaultConfig.h      omStructs.h       \
85omBinPage.h            omInline.h             omGetBackTrace.h  \
86omReturn.h             omRet2Info.h             
87
88OBJS := $(CSOURCES:.c=.o)  $(GSOURCES:.c=.o)
89OBJS_NDEBUG := $(CSOURCES:.c=.o_ndebug) $(GSOURCES:.c=.o_ndebug)
90
91SOURCES=${CSOURCES} omGetPageSize.h omMallocSystem.h gmalloc.c dlmalloc.h dlmalloc.c \
92        omMmap.c gmalloc.c omTables.c pmalloc.h pmalloc.c omalloc.c omalloc_debug.c  \
93        $(TESTSOURCES) omtTestAlloc.c
94
95ASO_OBJS := $(ASO_SOURCES:.aso.cc=.aso)
96
97DISTFILES=$(SOURCES) $(HEADERS) omtTest.h makeheader.pl Makefile.in \
98           omConfig.h.in configure.in mkinstalldirs install-sh configure
99
100##
101## Build Targets
102##
103%.o: %.c omConfig.h omTables.h omalloc.h omTables.inc
104        ${CC} ${CFLAGS} ${CPPFLAGS} ${DEFS} -c $<
105
106%.o_ndebug: %.c omConfig.h omTables.h omalloc.h omTables.inc
107        ${CC} ${CFLAGS} ${CPPFLAGS} ${DEFS} -DOM_NDEBUG -c $< -o $@
108
109%.aso.o: %.aso.cc mmtables.inc
110        ${CXX} ${CXXFLAGS} ${CXXTEMPLFLAGS} ${CPPFLAGS} ${DEFS} $< -o $@
111.PRECIOUS: %.aso.o
112
113%.aso: %.aso.o
114        ./$< > $@
115
116all:    libomalloc.a libomalloc_ndebug.a omalloc.h omalloc.o omalloc_debug.o
117
118lib: libomalloc.a
119
120libomalloc.a: $(OBJS) Makefile omConfig.h
121        rm -f $@
122        $(AR) cr $@ $(OBJS)
123        $(RANLIB) $@
124
125libomalloc_ndebug.a: $(OBJS_NDEBUG) Makefile omConfig.h
126        rm -f $@
127        $(AR) cr $@ $(OBJS_NDEBUG)
128        $(RANLIB) $@
129
130omalloc.h: $(HEADERS)
131        $(PERL) makeheader.pl -a omAlloc.h $@
132
133omalloc.o: omalloc.c
134        ${CC} ${CFLAGS} ${CPPFLAGS} ${DEFS} -DOM_NDEBUG -c $< -o $@
135
136omalloc_debug.o: omalloc_debug.c
137        ${CC} ${CFLAGS} ${CPPFLAGS} ${DEFS} -c $< -o $@
138
139omTables.inc: omTables
140        ./omTables > $@
141
142omTables.h: omTables
143        ./omTables 1 >$@
144
145omTables: omAllocPrivate.h omConfig.h omTables.c
146        ${CC} ${CFLAGS} ${CPPFLAGS} ${DEFS} -DOM_GENERATE_INC omTables.c -o omTables
147
148#
149# targets to generate omExternalConfig.[c,h]
150#
151omAlloc.h: omMalloc.h
152
153ifdef OM_MALLOC_SOURCE
154omMalloc.c: $(OM_MALLOC_SOURCE)
155        cp $(OM_MALLOC_SOURCE) omMalloc.c
156endif
157ifdef EXTERNAL_CONFIG_SOURCE
158omExternalConfig.c: $(EXTERNAL_CONFIG_SOURCE)
159        cp $(EXTERNAL_CONFIG_SOURCE) omExternalConfig.c
160endif
161
162ifdef EXTERNAL_CONFIG_HEADER
163omExternalConfig.h: $(EXTERNAL_CONFIG_HEADER)
164        cp $(EXTERNAL_CONFIG_HEADER) omExternalConfig.h
165omDerivedConfig.h: omExternalConfig.h
166endif
167
168#
169# configure related stuff
170#
171omConfig.h omMalloc.h: stamp-h
172
173stamp-h : config.status omConfig.h.in ${OM_MALLOC_HEADER}
174        CONFIG_FILES= CONFIG_HEADERS="omConfig.h omMalloc.h:${OM_MALLOC_HEADER}" ./config.status
175
176Makefile: Makefile.in config.status
177        CONFIG_FILES="Makefile" CONFIG_HEADERS= ./config.status
178
179config.status: configure
180        ./config.status --recheck
181
182configure: configure.in
183        @echo "WARNING: You need to rerun autoconf. I am proceeding, for now."
184        @touch configure
185#       autoconf
186
187##
188## install targets
189##
190install: all libomalloc_p.a
191        $(MKINSTALLDIRS) $(libdir)
192        $(MKINSTALLDIRS) $(includedir)
193        $(INSTALL_DATA) libomalloc.a $(libdir)
194        $(RANLIB) $(libdir)/libomalloc.a
195        $(INSTALL_DATA) libomalloc_ndebug.a $(libdir)
196        $(RANLIB) $(libdir)/libomalloc_ndebug.a
197        $(INSTALL_DATA) libomalloc_p.a $(libdir)
198        $(RANLIB) $(libdir)/libomalloc_p.a
199        $(INSTALL_DATA) omalloc.o omalloc_debug.o $(libdir)
200        $(INSTALL_DATA) omalloc.h omalloc.c $(includedir)
201
202
203uninstall:
204        rm -f $(includedir)/omalloc.h $(includedir)/omalloc.c
205        rm -f $(libdir)/libomalloc.a $(libdir)/libomalloc_ndebug.a $(libdir)/libomalloc_p.a $(libdir)/omalloc.o $(libdir)/omalloc_debug.o
206
207##
208## dist targets
209##
210dist: omalloc-$(VERSION).tgz
211omalloc-$(VERSION).tgz: $(DISTFILES)
212        rm -rf omalloc-$(VERSION)
213        mkdir omalloc-$(VERSION)
214        cp $(DISTFILES) omalloc-$(VERSION)
215        tar czf omalloc-$(VERSION).tgz omalloc-$(VERSION)
216
217##
218## clean targest
219##
220mostlyclean:
221        -rm -f core *.d *.o *.og *.op *_d.c *.ob *.a depend *.out *.tgz omTables *.o_ndebug *.gp *.gprof
222        -rm -f omtTest omtTest_* libomalloc* *.bprof omtTest omtTest_*
223        -rm -f omMalloc.c omExternalConfig.h omExternalConfig.c
224
225clean: mostlyclean
226
227distclean: clean
228        -rm -f  *~ .\#*  stamp-h configure omMalloc.h
229        rm -rf omalloc-$(VERSION)
230        -rm -f omConfig.h Makefile TAGS* tags config.status config.cache config.log
231
232srcclean: distclean
233
234maintainer-clean: distclean
235        rm configure
236
237.PHONY: TAGS
238
239TAGS:   omConfig.h.in
240        etags omConfig.h.in $(SOURCES) $(HEADERS)
241
242##
243## check
244##
245
246check: omtTest omtTest_ndebug
247        ./omtTest
248        ./omtTest_ndebug
249
250##
251## Below here is stuff for developpers
252#################################################################
253
254##
255## compiler and linker options for debug version
256##
257
258CCG             = gcc
259CCM             = gcc -MM -DGENERATE_DEPEND
260
261CFLAGSG         = -g -O -fno-inline-functions -Wall -pipe
262DEFSG           =  @DEFS@
263
264OBJG := $(CSOURCES:.c=.og) $(GSOURCES:.c=.og)
265
266%.og: %.c omConfig.h omTables.h omalloc.h
267        $(CCG) ${CFLAGSG} ${CPPFLAGS} ${DEFSG} -c $< -o $@
268
269libg: libomalloc_g.a
270
271libomalloc_g.a: $(OBJG) Makefile omConfig.h
272        rm -f $@
273        $(AR) cr $@ $(OBJG)
274        $(RANLIB) $@
275
276
277##
278## expanded macros
279##
280OBJD := $(CSOURCES:%.c=%_d.og) $(GSOURCES:%.c=%_d.og)
281
282%_d.c : %.c omConfig.h omTables.h omalloc.h
283        $(CCG) -E -P $< | $(PERL) -p -e 's/;/;\n/g' | $(PERL) -p -e 's/\{/\n\{/g' | $(PERL) -p -e 's/\}/\n\}/g' > $@
284.PRECIOUS: %_d.c
285
286libd: libomalloc_d.a
287
288libomalloc_d.a: $(OBJD) Makefile omConfig.h
289        rm -f $@
290        $(AR) cr $@ $(OBJD)
291        $(RANLIB) $@
292
293####################################################
294## compiler and linker options for profile version
295##
296
297CCP             = gcc
298
299CFLAGSP         = -g -pg -O3 -a -pipe
300DEFSP           =  @DEFS@
301
302OBJP := $(CSOURCES:.c=.op) $(GSOURCES:.c=.op)
303
304
305##
306## Profile Targets
307##
308%.op: %.c omConfig.h omTables.h omalloc.h
309        $(CCP) ${CFLAGSP} ${CPPFLAGS} ${DEFSP} -c $< -o $@
310
311libp: libomalloc_p.a
312
313libomalloc_p.a: $(OBJP) Makefile omConfig.h
314        rm -f $@
315        $(AR) cr $@ $(OBJP)
316        $(RANLIB) $@
317
318####################################################
319## compiler and linker options for bprof version
320##
321
322CCB             = gcc
323
324CFLAGSB         = -g -O3 -pipe
325DEFSB           =  @DEFS@
326
327##
328## .og files for having -O and -g object versions available at the same time
329##
330OBJB := $(CSOURCES:.c=.ob) $(GSOURCES:.c=.ob)
331
332
333##
334## Profile Targets
335##
336%.ob: %.c omConfig.h omTables.h omalloc.h
337        $(CCB) ${CFLAGSB} ${CPPFLAGS} ${DEFSB} -c $< -o $@
338
339libb: libomalloc_b.a
340
341libomalloc_b.a: $(OBJB) Makefile omConfig.h
342        rm -f $@
343        $(AR) cr $@ $(OBJB)
344        $(RANLIB) $@
345
346####################################################
347## Test program
348##
349TESTSOURCES     = omtTest.c omtTestReal.c omtTestDebug.c omtTestKeep.c omtTestError.c
350
351TEST_D := $(TESTSOURCES:.c=_d.og)
352omtTest_d: libd $(TEST_D)
353        $(CCG) ${CFLAGSG} ${CPPFLAGS} ${DEFSG} $(TEST_D) -L. -lomalloc_d -o omtTest_d
354
355TEST_G := $(TESTSOURCES:.c=.og)
356omtTest_g: libg $(TEST_G)
357        $(CCG) ${CFLAGSG} ${CPPFLAGS} ${DEFSG} $(TEST_G) -L. -lomalloc_g -o omtTest_g
358
359TEST_P := $(TESTSOURCES:.c=.op)
360omtTest_p: libp $(TEST_P)
361        $(CCG) ${CFLAGSP} ${CPPFLAGS} ${DEFSP} $(TEST_P) -L. -lomalloc_p -o omtTest_p
362
363TEST_B := $(TESTSOURCES:.c=.ob)
364omtTest_b: libb $(TEST_B)
365        $(CCG) ${CFLAGSB} ${CPPFLAGS} ${DEFSB} $(TEST_B) -L. -lomalloc_b  /usr/lib/bmon.o -o omtTest_b
366
367TEST_O := $(TESTSOURCES:.c=.o)
368omtTest: lib  $(TEST_O)
369        $(CC) ${CFLAGS} ${CPPFLAGS} ${DEFS} $(TEST_O) -L. -lomalloc -o omtTest
370
371TEST_NDEBUG_O := $(TESTSOURCES:.c=.o_ndebug)
372omtTest_ndebug: libomalloc_ndebug.a $(TEST_NDEBUG_O)
373        $(CC) ${CFLAGS} ${CPPFLAGS} ${DEFS} $(TEST_NDEBUG_O) -DOM_NDEBUG -L. -lomalloc_ndebug -o omtTest_ndebug
374
375%.om : %.c omalloc.h
376        $(CC) ${CFLAGS} ${CPPFLAGS} ${DEFS} -DOM_TEST_MALLOC -c $< -o $@
377TEST_M := $(TESTSOURCES:.c=.om)
378omtTest_m: lib $(TEST_M)
379        $(CC) ${CFLAGS} ${CPPFLAGS} ${DEFS} -DOM_TEST_MALLOC $(TEST_M) -L. -lomalloc -o omtTest_m
380
381##
382## backup
383##
384
385backup: omalloc-$(VERSION).tgz
386        mcopy -o omalloc-$(VERSION).tgz a:
387
388##
389## Dependencies
390##
391%.d: %.c omConfig.h Makefile omTables.h omTables.inc omalloc.h
392        echo $(@:.d=.o_ndebug) $(@:.d=.og) $(@:.d=.od)  $(@:.d=.op) $(@:.d=.ob) $(@:.d=_d.c) $(@:.d=.om)" " \\ > $@
393        $(CCM) ${CPPFLAGS} ${DEFSG} $< >> $@
394
395depend:   $(CSOURCES:.c=.d) omConfig.h $(TESTSOURCES:.c=.d)
396        cat *.d >depend
397
398ifeq (depend,$(wildcard depend))
399include depend
400endif
401
402
403
Note: See TracBrowser for help on using the repository browser.