source: git/Singular/Makefile.in @ a5189b

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