source: git/Singular/Makefile.in @ 9d72fe

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