source: git/Singular/Makefile.in @ dd01bf0

fieker-DuValspielwiese
Last change on this file since dd01bf0 was dd01bf0, checked in by Olaf Bachmann <obachman@…>, 23 years ago
* fixed memory leaks (longalg, NF, syz) * eliminated OPT_MOREPAIS, CANCELUNIT, REDBEST * prepared for tailRings in local case git-svn-id: file:///usr/local/Singular/svn/trunk@4723 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 20.8 KB
Line 
1#################################################################
2###
3### Makefile for Singular
4###
5#################################################################
6
7SHELL           = /bin/sh
8
9##
10## version
11##
12SINGULAR_VERSION        = @SINGULAR_VERSION@
13SINGULAR                = @SINGULAR@
14SINGUNAME               = @SINGUNAME@
15EXEC_EXT                = @EXEC_EXT@
16##
17## various paths
18##
19srcdir          = @srcdir@
20prefix          = @prefix@
21exec_prefix     = @exec_prefix@
22libdir          = @libdir@
23# program executable goes here
24bindir          = @bindir@
25# includes are taken from here
26includedir      = @includedir@
27slibdir         = ${prefix}/LIB
28install_bindir  = ${install_prefix}/${SINGUNAME}
29install_slibdir = ${install_prefix}/LIB
30
31##
32## various programs
33##
34@SET_MAKE@
35CC              = @CC@
36CXX             = @CXX@
37LEX             = @LEX@
38PERL            = @PERL@
39BISON           = bison
40INSTALL         = @INSTALL@
41INSTALL_PROGRAM = @INSTALL_PROGRAM@
42INSTALL_DATA    = @INSTALL_DATA@
43MKINSTALLDIRS   = ./mkinstalldirs
44LN_S            = @LN_S@
45
46##
47## compiler and linker options
48##
49PIPE            = @PIPE@
50CFLAGS          = @CFLAGS@ ${PIPE}
51CXXFLAGS        = @CXXFLAGS@ ${PIPE}
52CXXTEMPLFLAGS   = @CXXTEMPLFLAGS@
53CPPFLAGS        = -I${srcdir} @CPPFLAGS@
54DEFS            = -DNDEBUG -DOM_NDEBUG -D@SING_UNAME@ @DEFS@
55LDFLAGS         = @LDFLAGS@
56LD_DYN_FLAGS    = @LD_DYN_FLAGS@
57LD_LIBC         = -lc
58STATIC_LDFLAGS  = @STATIC_LDFLAGS@
59LIBS            = -lm @NEED_LIBS@
60
61ifdef LD_STATIC
62LDFLAGS  := ${STATIC_LDFLAGS} ${LDFLAGS}
63SING_EXEC = Singular-static
64else
65LDFLAGS  := ${LD_DYN_FLAGS} ${LDFLAGS}
66SING_EXEC = Singular
67endif
68
69
70##
71## End configuration dependend stuff
72#################################################################
73
74###
75### file sets
76###
77
78# normal C++ source files
79CXXSOURCES=grammar.cc scanner.cc algmap.cc attrib.cc clapconv.cc \
80    clapsing.cc cntrlc.cc mminit.cc\
81    extra.cc febase.cc feread.cc fehelp.cc feResource.cc feOpt.cc \
82    ffields.cc hdegree.cc hilb.cc hutil.cc \
83    gring.cc \
84    ideals.cc intvec.cc \
85    ipassign.cc ipconv.cc ipid.cc iplib.cc \
86    ipprint.cc ipshell.cc khstd.cc kstdfac.cc \
87    kstd1.cc kstd2.cc kutil.cc lists.cc \
88    longalg.cc longrat.cc longrat0.cc \
89    maps.cc matpol.cc misc.cc sdb.cc gnumpfl.cc gnumpc.cc \
90    modulop.cc mpr_complex.cc sparsmat.cc \
91    fglm.cc fglmzero.cc fglmvec.cc fglmgauss.cc fglmhom.cc fglmcomb.cc \
92    numbers.cc polys.cc p_polys.cc polys0.cc polys1.cc polys-impl.cc \
93    ring.cc shortfl.cc silink.cc sing_mp.cc\
94    sing_dld.cc sing_dbm.cc kspoly.cc \
95    subexpr.cc syz.cc syz0.cc syz1.cc syz2.cc syz3.cc\
96    timer.cc weight.cc \
97    mpsr_Put.cc mpsr_PutPoly.cc mpsr_GetPoly.cc \
98    mpsr_Get.cc mpsr_GetMisc.cc mpsr_Error.cc \
99    GMPrat.cc multicnt.cc npolygon.cc semic.cc spectrum.cc splist.cc \
100    ndbm.cc  libparse.cc mod_raw.cc\
101    pcv.cc kbuckets.cc\
102    mpr_inout.cc mpr_base.cc mpr_numeric.cc \
103    prCopy.cc p_Procs.cc p_Mult_q.cc \
104    pDebug.cc pInline2.cc pInline1.cc pInline0.cc \
105    pShallowCopyDelete.cc
106
107# normal C source files
108CSOURCES=weight0.c fegetopt.c fereadl.c page.c feOpenWinntUrl.c dError.c
109
110# special source files (need extra compiling and/or linking)
111ESOURCES=iparith.cc tesths.cc mpsr_Tok.cc claptmpl.cc
112
113SOURCES=${CSOURCES} ${CXXSOURCES} ${ESOURCES} mmalloc.cc\
114        grammar.y scanner.l libparse.l syz2.cc prCopyTemplate.cc \
115        p_Delete__Template.cc p_ShallowCopyDelete__Template.cc \
116        p_Copy__Template.cc p_Mult_nn__Template.cc  pp_Mult_nn__Template.cc \
117        pp_Mult_mm__Template.cc p_Mult_mm__Template.cc \
118        p_Minus_mm_Mult_qq__Template.cc p_Add_q__Template.cc \
119        p_Neg__Template.cc pp_Mult_Coeff_mm_DivSelect__Template.cc \
120        p_Merge_q__Template.cc\
121        kInline.cc utils.cc utils.h
122
123
124HEADERS=algmap.h hutil.h lists.h stairc.h attrib.h ideals.h \
125        longalg.h mpsr_Tok.h structs.h intvec.h longrat.h \
126        numbers.h stype.h clapconv.h ipconv.h maps.h page.h \
127        subexpr.h clapsing.h ipid.h matpol.h polys.h p_polys.h syz.h \
128        cntrlc.h ipprint.h ring.h timer.h sdb.h dError.h \
129        febase.h ipshell.h shortfl.h tok.h mpr_complex.h mpr_global.h \
130        page.h gring.h \
131        ffields.h khstd.h silink.h sparsmat.h gnumpfl.h gnumpc.h \
132        fglm.h kstd1.h modulop.h sing_dbm.h weight.h \
133        fglmgauss.h fglmvec.h mpsr.h sing_mp.h \
134        kstdfac.h mpsr_Get.h kmatrix.h\
135        kutil.h mpsr_Put.h sing_dld.h\
136        ndbm.h polys-impl.h libparse.h \
137        GMPrat.h multicnt.h npolygon.h semic.h spectrum.h splist.h multicnt.h \
138        pcv.h mod_raw.h kbuckets.h \
139        mpr_global.h mpr_inout.h mpr_base.h mpr_numeric.h \
140        feOpt.h fegetopt.h distrib.h walk.h \
141        prCopy.h prCopyMacros.h \
142        p_MemAdd.h p_MemCopy.h p_MemCmp.h p_Numbers.h \
143        pInline2.h pInline1.h pInline0.h p_Procs.h mmalloc.h static.h\
144        omSingularConfig.h
145
146INCS=febase.inc iparith.inc mpsr_Tok.inc feOpt.inc
147
148DISTFILES=${SOURCES} ${HEADERS} Makefile.in configure.in configure \
149        mod2.h.in grammar.h testgh install-sh mkinstalldirs \
150        ${INCS} check_aso.pl prCopy.pl
151
152OBJS := $(CXXSOURCES:.cc=.o) $(CSOURCES:.c=.o)
153
154ifeq ($(SINGUNAME),ix86-Win)
155OBJS := $(OBJS) Singular_res.o
156endif
157
158#
159# Singular libraries which go into distribution
160# MAKE SURE THAT THIS IS UP_TO_DATE
161#
162SLIBS = algebra.lib        all.lib            classify.lib       deform.lib  \
163        elim.lib           factor.lib         finvar.lib         general.lib \
164        graphics.lib       hnoether.lib       homolog.lib        inout.lib   \
165        ainvar.lib         jordan.lib         latex.lib          linalg.lib  \
166        matrix.lib         mondromy.lib       normal.lib         makedbm.lib \
167        poly.lib           presolve.lib       primdec.lib                    \
168        primitiv.lib       random.lib         ring.lib           sing.lib    \
169        solve.lib          solver.lib         spcurve.lib        standard.lib\
170        surf.lib           triang.lib         template.lib       spectrum.lib\
171        mregular.lib       toric.lib          intprog.lib        gaussman.lib
172
173SLIBS_FILES = $(addprefix LIB/,${SLIBS})
174
175GFTABLES = $(wildcard LIB/gftables/[1-9]*)
176
177##
178## Build Targets
179##
180.l.cc:
181        @if test "x${LEX}" = x; then \
182                echo Error: no lex given, could not rebuilt scanner.cc;\
183                exit 1; \
184        fi
185        ${LEX} -s -I -t $< > scanner.cc
186.y.cc:
187        @if test "x${BISON}" = x; then \
188                echo Error: no bison given, could not rebuilt grammar.cc;\
189                exit 1; \
190        fi
191        ${BISON} -d -t -o grammar.cc $<
192        chmod +x testgh
193        ./testgh
194
195.cc.o: 
196        ${CXX} ${CXXFLAGS} ${CXXTEMPLFLAGS} ${CPPFLAGS} ${DEFS} -c $<
197.c.o:
198        ${CC} ${CFLAGS} ${CPPFLAGS} ${DEFS} -c $<
199
200all:    $(SING_EXEC)
201
202Singular-static: mod2.h Makefile version.h scanner.cc \
203          ${OBJS} iparith.o tesths.cc libparse.cc claptmpl.o mpsr_Tok.o
204        sleep 1
205        echo "#define HAVE_STATIC" > static.h
206        ${MAKE} LD_STATIC=1 Singular
207        echo "#undef HABE_STATIC" > static.h
208        ${INSTALL_PROGRAM} Singular Singular-static
209
210Singular: mod2.h Makefile version.h scanner.cc  ${OBJS} mmalloc.o \
211          iparith.o tesths.cc libparse.cc claptmpl.o mpsr_Tok.o
212        ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${CXXTEMPLFLAGS} ${DEFS} \
213          -o Singular \
214          tesths.cc iparith.o mpsr_Tok.o claptmpl.o\
215          ${OBJS} ${LDFLAGS} ${LIBS} -lomalloc_ndebug mmalloc.o
216
217iparith.o mpsr_Tok.o : iparith.inc mpsr_Tok.inc
218
219claptmpl.o: claptmpl.cc mod2.h
220        ${CXX} ${CXXFLAGS}  ${CPPFLAGS} ${DEFS} -c $<   
221
222iparith.inc mpsr_Tok.inc: claptmpl.o iparith.cc mmalloc.o\
223                          ipconv.cc tok.h mpsr_Tok.cc grammar.h mod2.h
224        ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${CXXTEMPLFLAGS} ${DEFS} -DGENTABLE \
225             -o gentable claptmpl.o iparith.cc tesths.cc mpsr_Tok.cc \
226             ${OBJS} ${LDFLAGS} ${LIBS} -lomalloc_ndebug mmalloc.o
227        ./gentable
228        /bin/rm -f gentable gentable.exe
229
230
231version.h: ${SOURCES} ${HEADERS} Makefile.in mod2.h.in \
232           configure.in
233        echo unsigned long feVersionId =  `date '+%Y%m%d%H'`\; >version.h
234
235libparse: libparse_main.o utils.o fegetopt.o febase.cc
236        ${CXX}  -DSTANDALONE_PARSER -o libparse febase.cc libparse_main.o utils.o fegetopt.o
237
238libparse_main.o: libparse.cc
239        ${CXX} -c -o libparse_main.o libparse.cc  -DSTANDALONE_PARSER
240
241libparse.cc: libparse.l
242        @if test "x${LEX}" = x; then \
243                echo Error: no lex given, could not rebuilt libparse.cc;\
244                exit 1; \
245        fi
246        ${LEX} -I -Pyylp -olibparse.cc libparse.l
247
248# Hmm compiling with -fomit-frame-pointer resulted in access violation
249# under cygwin
250ESingular: fegetopt.o feResource.cc mod2.h feOpt.cc version.h emacs.cc \
251           feOptES.inc mmalloc.o
252        ${CXX} -O2 ${CPPFLAGS} ${DEFS} -DESINGULAR -o ESingular emacs.cc fegetopt.o \
253        ${LDFLAGS} ${LIBS} -lomalloc_ndebug mmalloc.o
254
255TSingular: fegetopt.o feResource.cc mod2.h feOpt.cc version.h emacs.cc \
256           feOptTS.inc mmalloc.o
257        ${CXX} -O2 ${CPPFLAGS} ${DEFS} -DTSINGULAR -o TSingular emacs.cc fegetopt.o \
258        ${LDFLAGS}  ${LIBS} -lomalloc_ndebug mmalloc.o
259
260feOpt.h: feOpt.inc feOptES.inc feOptTS.inc
261
262feOpt.inc: feOpt.cc mod2.h
263        $(CXX) -DGENERATE_OPTION_INDEX feOpt.cc -o feOpt
264        ./feOpt
265        /bin/rm -f feOpt feOpt.exe
266
267feOptES.inc: feOpt.cc
268        $(CXX) -DGENERATE_OPTION_INDEX  -DESINGULAR feOpt.cc -o feOpt
269        ./feOpt
270        rm -f feOpt feOpt.exe
271
272feOptTS.inc: feOpt.cc
273        $(CXX) -DGENERATE_OPTION_INDEX  -DTSINGULAR feOpt.cc -o feOpt
274        ./feOpt
275        rm -f feOpt feOpt.exe
276
277prCopy.cc : prCopy.inc
278
279prCopy.inc : prCopyMacros.h prCopyTemplate.cc prCopy.pl
280        $(PERL) prCopy.pl > prCopy.inc
281
282p_Procs.inc: p_Procs.cc p_Procs.h mod2.h
283        $(CXX) -g -Wall -DNDEBUG -DGENERATE_P_PROCS p_Procs.cc -o p_Procs
284        ./p_Procs > p_Procs.inc
285p_Procs_debug.inc: p_Procs.cc p_Procs.h mod2.h
286        $(CXX) -g -Wall -DGENERATE_P_PROCS p_Procs.cc -o p_Procs
287        ./p_Procs > p_Procs_debug.inc
288
289p_Procs.o: p_Procs.inc p_Procs_debug.inc
290
291src: scanner.cc grammar.h grammar.cc libparse.cc
292
293mod2.h: stamp-h
294
295stamp-h : config.status mod2.h.in
296        CONFIG_FILES= CONFIG_HEADERS="mod2.h" ./config.status
297
298Makefile: Makefile.in config.status
299        CONFIG_FILES="Makefile" CONFIG_HEADERS= ./config.status
300
301config.status: configure
302        ./config.status --recheck
303
304configure: configure.in
305        @echo "WARNING: You need to rerun autoconf. I am proceeding, for now."
306        @touch configure
307#       autoconf
308
309ifeq ($(SINGUNAME),ix86-Win)
310##
311## windows only targets
312##
313
314## resources
315Singular.rc: Singular.rc.in config.status
316        CONFIG_FILES="Singular.rc" CONFIG_HEADERS= ./config.status
317
318ESingular_res.o: Singular.rc
319        windres -DESINGULAR -i Singular.rc -o ESingular_res.o
320
321TSingular_res.o: Singular.rc
322        windres -DTSINGULAR -i Singular.rc -o TSingular_res.o
323
324Singular_res.o: Singular.rc
325        windres -DSINGULAR -i Singular.rc -o Singular_res.o
326
327## run
328run.o: run.c run.h
329        gcc -c -I. -O2 run.c -o run.o
330
331runTSingular : run.o TSingular_res.o
332        gcc -mwindows -e _mainCRTStartup run.o TSingular_res.o -o runTSingular.exe
333
334runESingular : run.o ESingular_res.o
335        gcc -mwindows -e _mainCRTStartup run.o ESingular_res.o -o runESingular.exe
336
337RUN_SINGULARS=runESingular runTSingular
338
339endif
340
341##
342## install targets
343##
344install: all installbin installslib
345
346installbin: ${SING_EXEC} libparse ESingular TSingular ${RUN_SINGULARS}
347        ${MKINSTALLDIRS} ${bindir}
348        ${INSTALL_PROGRAM} ${SING_EXEC} ${SINGULAR}
349        ${INSTALL_PROGRAM} libparse ${RUN_SINGULARS} ${bindir}
350        ${INSTALL_PROGRAM} ESingular ${bindir}
351        ${INSTALL_PROGRAM} TSingular ${bindir}
352        chmod a+x ${SINGULAR}
353        rm -f ${bindir}/${SING_EXEC}${EXEC_EXT}
354        cd ${bindir}; ${LN_S} ${SINGULAR} Singular${EXEC_EXT};\
355
356installslib: LIB
357        test -r ${slibdir} || ${LN_S} `pwd`/LIB ${slibdir}
358
359
360uninstall: uninstallbin
361
362uninstallbin:
363        rm -f ${bindir}/Singular${EXEC_EXT}
364        rm -f ${SINGULAR}
365        -rmdir ${bindir}
366
367##
368## clean targest
369##
370mostlyclean:
371        -rm -f Singular Singular-static Singulara Singularg Singularp Singularb libparse feOpt*.inc p_Procs.inc p_Procs_debug.inc
372        -rm -f *.o *.og core *.op *.ob *.ot Singulart *.od *_d.cc *_d.c p_Procs *.oa
373        -rm ESingular* TSingular*
374
375clean: mostlyclean
376         -rm -f *.bak *.d *.dd depend
377
378distclean: clean
379        -rm -f iparith.inc mpsr_Tok.inc stamp.h
380        -rm -f Singular* *.gprof *.bprof *~ .\#* version.h
381        -rm -f mod2.h Makefile TAGS* tags config.status config.cache config.log
382        -rm -f ${slibdir}
383
384srcclean:
385        @echo "This command is intended for maintainers to use;"
386        @echo "Rebuilding the deleted files requires flex"
387        @echo "bison, perl"
388        -rm -f scanner.cc grammar.h grammar.cc libparse.cc
389
390maintainer-clean: distclean srcclean
391        @echo "This command is intended for maintainers to use;"
392        @echo "Rebuilding the deleted files requires flex"
393        @echo "bison, perl and autoconf"
394        -rm configure
395
396##
397## miscellanous targets
398##
399
400install-bindist: $(HEADERS) $(SOURCES) Makefile depend
401        echo "#define MAKE_DISTRIBUTION " > distrib.h
402        sleep 1
403        ${MAKE} ${SING_EXEC} ESingular TSingular libparse ${RUN_SINGULARS}
404        ${MKINSTALLDIRS} ${install_bindir}
405        ${INSTALL_PROGRAM} -s  ${SING_EXEC} ${install_bindir}/Singular
406        ${INSTALL_PROGRAM} -s  libparse ${RUN_SINGULARS} ESingular TSingular ${install_bindir}
407        echo "#undef MAKE_DISTRIBUTION " > distrib.h
408
409install-sharedist: ${SLIBS_FILES} LIB/gftables
410        ${MKINSTALLDIRS} ${install_slibdir}
411        cp ${SLIBS_FILES} ${install_slibdir}
412        ${MKINSTALLDIRS} ${install_slibdir}/gftables
413        cp ${GFTABLES} ${install_slibdir}/gftables
414        chmod -R +rX ${install_slibdir}/*
415
416tar:
417        tar cf Singular-${SINGULAR_VERSION}-src.tar ${DISTFILES}
418        gzip -f Singular-${SINGULAR_VERSION}-src.tar
419
420backup: tar
421        mcopy -o Singular-${SINGULAR_VERSION}-src.tar.gz a:
422
423TAGS:   ${SOURCES} ${HEADERS}
424        etags ${SOURCES} ${HEADERS}
425
426tags:   
427        ctags *.y *.l *.c *.h *.cc *.inc
428
429echoLIBS:
430        @echo ${SLIBS}
431
432##
433## Below here is stuff for developpers
434#################################################################
435
436##
437## compiler and linker options for debug version
438##
439
440CCG             = gcc
441CXXG            = gcc
442CXXM            = gcc -MM -MG -DGENERATE_DEPEND
443CCM             = gcc -MM -MG -DGENERATE_DEPEND
444
445CFLAGSG         = -g -Wall -Wno-unused ${PIPE}
446CXXFLAGSG       = -g -Wall -Wno-unused ${PIPE}
447CXXTEMPLFLAGSG  = -fno-implicit-templates
448DEFSG           = -D@SING_UNAME@ @DEFS@
449
450##
451## .og files for having -O and -g object versions available at the same time
452##
453
454OBJG1 := $(CXXSOURCES:.cc=.og)
455OBJG2 := $(CSOURCES:.c=.og)
456
457
458OBJG=$(OBJG1) $(OBJG2)
459
460##
461## Debug Targets
462##
463
464claptmpl.og: claptmpl.cc mod2.h
465        $(CXXG)  ${CXXFLAGSG} ${CPPFLAGS} ${DEFSG} -c $< -o $@
466
467$(OBJG1) mmalloc.og: %.og: %.cc
468        $(CXXG) ${CXXFLAGSG} ${CXXTEMPLFLAGSG} ${CPPFLAGS} ${DEFSG} -c $< -o $@
469
470$(OBJG2) : %.og: %.c
471        $(CCG)  ${CFLAGSG} ${CPPFLAGS} ${DEFSG} -c $< -o $@
472
473Singularg: scanner.cc  $(OBJG)  mmalloc.og\
474           iparith.og mpsr_Tok.og claptmpl.og tesths.cc version.h
475        $(CXXG) ${CXXFLAGSG} ${CXXTEMPLFLAGSG} ${CPPFLAGS} ${DEFSG} -o Singularg \
476        tesths.cc iparith.og mpsr_Tok.og claptmpl.og $(OBJG) ${LDFLAGS} ${LIBS} -lomalloc mmalloc.og \
477        ${LD_DYN_FLAGS} ${LD_LIBC}
478
479iparith.og: iparith.inc iparith.cc
480        $(CXXG)  ${CXXFLAGSG} ${CXXTEMPLFLAGSG} ${CPPFLAGS} ${DEFSG} -c iparith.cc -o iparith.og
481
482mpsr_Tok.og: iparith.inc mpsr_Tok.cc
483        $(CXXG) ${CXXFLAGSG} ${CPPFLAGS} ${CXXTEMPLFLAGSG} ${DEFSG} -c mpsr_Tok.cc -o mpsr_Tok.og
484
485installg: Singularg
486        ${MKINSTALLDIRS} ${bindir}
487        ${INSTALL_PROGRAM} Singularg ${bindir} 
488
489ESingularg: fegetopt.og feResource.cc mod2.h feOpt.cc version.h emacs.cc \
490           feOptES.inc mmalloc.og
491        ${CXXG} ${CXXFLAGSG} ${CPPFLAGS} -DESINGULAR -g ${DEFSG} -o ESingularg emacs.cc fegetopt.og ${LDFLAGS} ${LIBS} -lomalloc mmalloc.og
492
493##
494## compiler and linker options for profile version
495##
496
497CCP             = gcc
498CXXP            = gcc
499
500CFLAGSP         = -pg -O3 ${PIPE}
501CXXFLAGSP       = -pg -O3 ${PIPE}
502CXXTEMPLFLAGSP  = -fno-implicit-templates
503DEFSP           = -DNDEBUG -DOM_NDEBUG -DDO_PROFILE -D@SING_UNAME@ @DEFS@
504LDFLAGSP        = -static @LDFLAGS@
505
506CFLAGSB         = -g -O3 ${PIPE}
507CXXFLAGSB       = -g -O3 ${PIPE}
508CXXTEMPLFLAGSB  = -fno-implicit-templates
509DEFSB           = -D@SING_UNAME@ -DOM_NDEBUG -DNDEBUG @DEFS@
510LDFLAGSB        = -static @LDFLAGS@
511
512# bprof object  file to link with
513BPROFOBJ        = /usr/local/lib/bmon.o
514
515DEFST           = -DNO_INLINE -DNDEBUG -D@SING_UNAME@ -DOM_TRACK=2 -DOM_CHECK=0 @DEFS@
516LDFLAGST        = @LDFLAGS@
517CFLAGST         = -g  -O2 -w ${PIPE}
518CXXFLAGST       = -g  -O2 -w ${PIPE}
519
520##
521## op and ob files for gprof and bprof, ot for mtrack, oc for OMCHECK=1
522##
523
524OBJP1 := $(CXXSOURCES:.cc=.op)
525OBJP2 := $(CSOURCES:.c=.op)
526OBJP=$(OBJP1) $(OBJP2)
527
528OBJB1 := $(CXXSOURCES:.cc=.ob)
529OBJB2 := $(CSOURCES:.c=.ob)
530OBJB=$(OBJB1) $(OBJB2)
531
532OBJT1 := $(CXXSOURCES:.cc=.ot)
533OBJT2 := $(CSOURCES:.c=.ot)
534OBJT=$(OBJT1) $(OBJT2)
535
536##
537## profile targets
538##
539
540## for gprof
541claptmpl.op: claptmpl.cc mod2.h
542        $(CXXP)  ${CXXFLAGSP} ${CPPFLAGS} ${DEFSP} -c $< -o $@
543
544$(OBJP1) mmalloc.op: %.op: %.cc
545        $(CXXP) ${CXXFLAGSP} ${CXXTEMPLFLAGSP} ${CPPFLAGS} ${DEFSP} -c $< -o $@
546
547$(OBJP2) : %.op: %.c
548        $(CCP)  ${CFLAGSP} ${CPPFLAGS} ${DEFSP} -c $< -o $@
549
550Singularp: scanner.cc   $(OBJP) mmalloc.op\
551           iparith.op mpsr_Tok.op claptmpl.op tesths.cc version.h
552        $(CXXP) ${CXXFLAGSP} ${CXXTEMPLFLAGSP} ${CPPFLAGS} ${DEFSP} -o Singularp \
553        tesths.cc iparith.op mpsr_Tok.op claptmpl.op $(OBJP) ${LDFLAGSP} ${LIBS} -lomalloc_p mmalloc.op\
554        ${LD_DYN_FLAGS}
555
556iparith.op: iparith.inc iparith.cc
557        $(CXXP)  ${CXXFLAGSP} ${CXXTEMPLFLAGSP} ${CPPFLAGS} ${DEFSP} -c iparith.cc -o iparith.op
558
559mpsr_Tok.op: iparith.inc mpsr_Tok.cc
560        $(CXXP) ${CXXFLAGSP} ${CXXTEMPLFLAGSP} ${CPPFLAGS} ${DEFSP} -c mpsr_Tok.cc -o mpsr_Tok.op
561
562
563## for bprof
564claptmpl.ob: claptmpl.cc mod2.h
565        $(CXXP)  ${CXXFLAGSP} ${CPPFLAGS} ${DEFSB} -c $< -o $@
566
567$(OBJB1) mmalloc.ob: %.ob: %.cc
568        $(CXXP) ${CXXFLAGSP} ${CXXTEMPLFLAGSP} ${CPPFLAGS} ${DEFSB} -c $< -o $@
569
570$(OBJB2) : %.ob: %.c
571        $(CCP)  ${CFLAGSP} ${CPPFLAGS} ${DEFSB} -c $< -o $@
572
573Singularb: scanner.cc   $(OBJB) iparith.ob mpsr_Tok.ob claptmpl.ob tesths.cc version.h mmalloc.ob
574        $(CXXP) ${CXXFLAGSP} ${CPPFLAGS} ${DEFSB} -o Singularb \
575        tesths.cc iparith.ob mpsr_Tok.ob claptmpl.ob $(OBJB) $(BPROFOBJ) \
576        ${LDFLAGSP} ${LIBS} -lomalloc_ndebug mmalloc.ob ${LD_DYN_FLAGS}
577
578iparith.ob: iparith.inc iparith.cc
579        $(CXXP)  ${CXXFLAGSP} ${CXXTEMPLFLAGSP} ${CPPFLAGS} ${DEFSB} -c iparith.cc -o iparith.ob
580
581mpsr_Tok.ob: iparith.inc mpsr_Tok.cc
582        $(CXXP) ${CXXFLAGSP} ${CXXTEMPLFLAGSP} ${CPPFLAGS} ${DEFSB} -c mpsr_Tok.cc -o mpsr_Tok.ob
583
584#
585# for mtrack
586#
587claptmpl.ot: claptmpl.cc mod2.h
588        $(CXXP)  ${CXXFLAGST} ${CPPFLAGS} ${DEFST} -c $< -o $@
589
590$(OBJT1) mmalloc.ot: %.ot: %.cc
591        $(CXXP) ${CXXFLAGST} ${CXXTEMPLFLAGSP} ${CPPFLAGS} ${DEFST} -c $< -o $@
592
593$(OBJT2) : %.ot: %.c
594        $(CCP)  ${CFLAGST} ${CPPFLAGS} ${DEFST} -c $< -o $@
595
596Singulart: scanner.cc   $(OBJT) iparith.ot mpsr_Tok.ot claptmpl.ot tesths.cc version.h  mmalloc.ot
597        $(CXXP) ${CXXFLAGST} ${CPPFLAGS} ${DEFST} -o Singulart \
598        tesths.cc iparith.ot mpsr_Tok.ot claptmpl.ot $(OBJT) ${LDFLAGST} ${LIBS} -lomalloc mmalloc.ot \
599        ${LD_DYN_FLAGS}
600
601iparith.ot: iparith.inc iparith.cc
602        $(CXXP)  ${CXXFLAGST} ${CXXTEMPLFLAGSB} ${CPPFLAGS} ${DEFST} -c iparith.cc -o iparith.ot
603
604mpsr_Tok.ot: iparith.inc mpsr_Tok.cc
605        $(CXXP) ${CXXFLAGST} ${CXXTEMPLFLAGSB} ${CPPFLAGS} ${DEFST} -c mpsr_Tok.cc -o mpsr_Tok.ot
606
607
608#
609# for Singulara
610#
611DEFSA = -DOM_CHECK=1 -DHAVE_ASSUME -DNDEBUG -D@SING_UNAME@ @DEFS@
612OBJA1 := $(CXXSOURCES:.cc=.oa)
613OBJA2 := $(CSOURCES:.c=.oa)
614OBJA=$(OBJA1) $(OBJA2)
615CFLAGSA         = -g  -O -Wall -Wno-unused ${PIPE}
616CXXFLAGSA       = -g  -O -Wall -Wno-unused ${PIPE}
617
618claptmpl.oa: claptmpl.cc mod2.h
619        $(CXX)  ${CXXFLAGSA} ${CPPFLAGS} ${DEFSA} -c $< -o $@
620
621$(OBJA1) mmalloc.oa: %.oa: %.cc
622        $(CXX) ${CXXFLAGSA} ${CXXTEMPLFLAGS} ${CPPFLAGS} ${DEFSA} -c $< -o $@
623
624$(OBJA2) : %.oa: %.c
625        $(CCP)  ${CFLAGSA} ${CPPFLAGS} ${DEFSA} -c $< -o $@
626
627Singulara: scanner.cc   $(OBJA) iparith.oa mpsr_Tok.oa claptmpl.oa tesths.cc version.h  mmalloc.oa
628        $(CXXP) ${CXXFLAGSA} ${CPPFLAGS} ${DEFSA} -o Singulara \
629        tesths.cc iparith.oa mpsr_Tok.oa claptmpl.oa $(OBJA) ${LDFLAGS} ${LIBS} -lomalloc mmalloc.oa \
630        ${LD_DYN_FLAGS}
631
632iparith.oa: iparith.inc iparith.cc
633        $(CXXP)  ${CXXFLAGSA} ${CXXTEMPLFLAGS} ${CPPFLAGS} ${DEFSA} -c iparith.cc -o iparith.oa
634
635mpsr_Tok.oa: iparith.inc mpsr_Tok.cc
636        $(CXXP) ${CXXFLAGAT} ${CXXTEMPLFLAGSB} ${CPPFLAGS} ${DEFSA} -c mpsr_Tok.cc -o mpsr_Tok.oa
637
638#
639# for Macro expansion
640#
641CXXSOURCESD := $(CXXSOURCES:%.cc=%_d.cc)
642CSOURCESD := $(CSOURCES:%.c=%_d.c)
643OBJD1 := $(CXXSOURCESD:.cc=.od)
644OBJD2 := $(CSOURCESD:.c=.od)
645
646p_ProcsGen_d.cc: p_Procs.cc p_Procs.h mod2.h
647        $(CCG) -DNDEBUG -DGENERATE_P_PROCS ${CPPFLAGS} -E -P p_Procs.cc | $(PERL) -p -e 's/;/;\n/g' | $(PERL) -p -e 's/\{/\n\{/g' | $(PERL) -p -e 's/\}/\n\}/g' > $@
648p_ProcsGen_d: p_Procs_d.cc
649        gcc -g -Wall -DNDEBUG -DGENERATE_P_PROCS p_Procs_d.cc -o p_ProcsGen_d
650
651%_d.c : %.c
652        $(CCG) $(CFLAGSG) ${CPPFLAGS} -E -P $< | $(PERL) -p -e 's/;/;\n/g' | $(PERL) -p -e 's/\{/\n\{/g' | $(PERL) -p -e 's/\}/\n\}/g' > $@
653
654%_d.cc : %.cc
655        $(CCG) $(CXXFLAGS) ${CPPFLAGS} -E -P $< | $(PERL) -p -e 's/;/;\n/g' | $(PERL) -p -e 's/\{/\n\{/g' | $(PERL) -p -e 's/\}/\n\}/g' > $@
656
657.PRECIOUS: %_d.cc %_d.c
658
659%.od : %.c
660        $(CCG)  ${CFLAGSG} ${CPPFLAGS} ${DEFSG} -c $< -o $@
661
662%.od : %.cc
663        $(CXXG) ${CXXFLAGSG} ${CXXTEMPLFLAGSG} ${CPPFLAGS} ${DEFSG} -c $< -o $@
664
665Singular_d: scanner.cc  $(OBJD)  mmalloc.od\
666           iparith.od mpsr_Tok.od claptmpl.og tesths.cc version.h
667        $(CXXG) ${CXXFLAGSG} ${CXXTEMPLFLAGSG} ${CPPFLAGS} ${DEFSG} -o Singularg_d \
668        tesths.cc iparith.od mpsr_Tok.od claptmpl.og $(OBJG) ${LDFLAGS} ${LIBS} -lomalloc mmalloc.od \
669        ${LD_DYN_FLAGS} ${LD_LIBC}
670
671##
672## check_aso
673##
674check_aso:
675        ${PERL} check_aso.pl $(SOURCES)
676##
677## dependencies
678##
679
680%.dd: %.cc mod2.h
681        echo $(@:.dd=.og) $(@:.dd=.op) $(@:.dd=_d.cc) $(@:.dd=.od) $(@:.dd=.ob) $(@:.dd=.ot) $(@:.dd=.oa) " " \\ > $@
682        $(CXXM) -DGENTABLE ${CPPFLAGS} ${DEFSG} $< >> $@
683
684%.d: %.c mod2.h
685        echo $(@:.d=.og) $(@:.d=.od) $(@:.dd=_d.c) $(@:.d=.op) $(@:.d=.ob) $(@:.d=.ot) $(@:.dd=.oa)" " \\ > $@
686        $(CCM) ${CPPFLAGS} ${DEFSG} $< >> $@
687
688depend:   $(CXXSOURCES:.cc=.dd) $(CSOURCES:.c=.d) iparith.dd mmalloc.dd mod2.h
689        cat *.d *.dd >depend
690
691ifeq (depend,$(wildcard depend))
692include depend
693endif
694
695
Note: See TracBrowser for help on using the repository browser.