source: git/kernel/Makefile.in @ 86016d

fieker-DuValspielwiese
Last change on this file since 86016d was b3789a, checked in by Michael Brickenstein <bricken@…>, 17 years ago
*bricken: removed F4 dependency git-svn-id: file:///usr/local/Singular/svn/trunk@9788 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 16.5 KB
RevLine 
[f6e863]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@
15##
16## various paths
17##
18srcdir          = @srcdir@
19prefix          = @prefix@
20exec_prefix     = @exec_prefix@
21libdir          = @libdir@
22# program executable goes here
23bindir          = @bindir@
24# includes are taken from here
25includedir      = @includedir@
26install_bindir  = ${install_prefix}/${SINGUNAME}
27
28##
29## various programs
30##
31@SET_MAKE@
32CC              = @CC@
33LD              = @LD@
34CXX             = @CXX@
35LEX             = @LEX@
36PERL            = @PERL@
37BISON           = bison
38INSTALL         = @INSTALL@
[d3c2f9]39INSTALL_PROGRAM = @INSTALL_PROGRAM@
[f6e863]40INSTALL_DATA    = @INSTALL_DATA@
41MKINSTALLDIRS   = ./mkinstalldirs
42LN_S            = @LN_S@
43
44##
45## compiler and linker options
46##
47PIPE            = @PIPE@
48CFLAGS          = @CFLAGS@ ${PIPE}
49CXXFLAGS        = @CXXFLAGS@ ${PIPE}
50CXXTEMPLFLAGS   = @CXXTEMPLFLAGS@
51CPPFLAGS        = -I${srcdir} @CPPFLAGS@
[0012cd]52DEFS            = -DNDEBUG -DOM_NDEBUG -D@SING_UNAME@ @DEFS@
[f6e863]53LDFLAGS         = @LDFLAGS@
54LD_DYN_FLAGS    = @LD_DYN_FLAGS@
55SFLAGS          = @SFLAGS@
56SLDFLAGS        = @SLDFLAGS@
57
58LD_LIBC         = -lc
59STATIC_LDFLAGS  = @STATIC_LDFLAGS@
60# under cygwin, do not explicitly link against -lm, for it is the cygwin
61# lib -- if you really want to do this, use -lm as the _last_ thing on the
62# arguments to link
63ifneq ($(SINGUNAME),ix86-Win)
64LIBS            = -lm @NEED_LIBS@
65else
66# for the 2-0-* versions under Windows, we don't need gdbm, readline and ncurses
[d4f80c]67LIBS            = -lsingfac -lsingcf -lntl -lgmp -lreadline -lncurses -lomalloc_ndebug
[f6e863]68#LIBS           = -lsingfac -lsingcf -lgmp
69endif
70MP_LIBS         = @MP_LIBS@
[c14061]71
72ifdef LD_STATIC
73LDFLAGS  := ${STATIC_LDFLAGS} ${LDFLAGS}
[d3c2f9]74LIBS := ${MP_LIBS} ${LIBS}
[c14061]75DL_KERNEL =
76else
77LDFLAGS  := ${LD_DYN_FLAGS} ${LDFLAGS}
[86efbd]78DL_KERNEL       = @DL_KERNEL@
[c14061]79endif
[f6e863]80
81# CXXFLAGS =  -g -Wall -Wno-unused
82# CFLAGS =  -g -Wall -Wno-unused
83##
84## End configuration dependend stuff
85#################################################################
86
87###
88### file sets
89###
90
91# normal C++ source files
[5865b5c]92CXXSOURCES=clapconv.cc \
[08ecff]93    clapsing.cc mminit.cc\
[4bbe3b]94    febase.cc feread.cc feResource.cc \
[f6e863]95    ffields.cc hdegree.cc hilb.cc hutil.cc \
[6dbc96]96    sca.cc gring.cc gr_kstd2.cc\
[fc5095]97    ideals.cc intvec.cc int64vec.cc \
[08ecff]98    khstd.cc kstdfac.cc \
99    kstd1.cc kstd2.cc kutil.cc \
[f6e863]100    longalg.cc longrat.cc longrat0.cc \
[08ecff]101    maps.cc matpol.cc misc.cc gnumpfl.cc gnumpc.cc \
[cea6f3]102        rmodulo2m.cc \
[c9e0b0]103    modulop.cc mpr_complex.cc sparsmat.cc fast_maps.cc \
[5e87a1]104    fglmzero.cc fglmvec.cc fglmgauss.cc fglmhom.cc fglmcomb.cc \
[f6e863]105    numbers.cc polys.cc p_polys.cc polys0.cc polys1.cc polys-impl.cc \
[08ecff]106    ring.cc shortfl.cc kspoly.cc \
107    syz.cc syz0.cc syz1.cc syz2.cc syz3.cc\
[5e87a1]108    timer.cc weight.cc \
[f6e863]109    GMPrat.cc multicnt.cc npolygon.cc semic.cc spectrum.cc splist.cc \
[4c7d73]110    mod_raw.cc sing_win.cc walkProc.cc walkMain.cc walkSupport.cc\
[5e87a1]111    eigenval.cc units.cc kbuckets.cc sbuckets.cc\
[f6e863]112    mpr_inout.cc mpr_base.cc mpr_numeric.cc \
113    prCopy.cc p_Mult_q.cc \
114    pDebug.cc pInline2.cc pInline1.cc pInline0.cc \
[4f858ce]115    pShallowCopyDelete.cc fast_mult.cc digitech.cc\
[b3789a]116    tgb.cc tgbgauss.cc ringgb.cc
[f6e863]117
118# normal C source files
[d3c2f9]119CSOURCES=weight0.c fegetopt.c fereadl.c dError.c mmstd.c
[f6e863]120
121# C++ sources which are used if part of the kernel are dynamically linked
[d3c2f9]122ifeq ($(DL_KERNEL),1)
123DL_KERNEL_SOURCES=p_Procs_Dynamic.cc
124else
125DL_KERNEL_SOURCES=
126endif
[f6e863]127
128# C++ sources which are used for dynamic libraries if part of the kernel is
129# dynamically linked
[d3c2f9]130DL_LIB_SOURCES=p_Procs_Lib.cc
[f6e863]131
132# C++ sources which are used if no parts of the kernel are dynamically linked
[d3c2f9]133STATIC_SOURCES=p_Procs_Static.cc
[f6e863]134
135# special C++ source files (need extra compiling and/or linking), for which
136# dependencies should be generated
[d3c2f9]137ESOURCES=mmalloc.cc $(DL_KERNEL_SOURCES) $(DL_LIB_SOURCES) $(STATIC_SOURCES)
[f6e863]138
139SOURCES=${CSOURCES} ${CXXSOURCES} \
[9a7638]140        prCopyTemplate.cc \
[f6e863]141        p_Delete__T.cc p_ShallowCopyDelete__T.cc \
142        p_Copy__T.cc p_Mult_nn__T.cc  pp_Mult_nn__T.cc \
143        pp_Mult_mm__T.cc p_Mult_mm__T.cc \
144        p_Minus_mm_Mult_qq__T.cc p_Add_q__T.cc \
145        p_Neg__T.cc pp_Mult_Coeff_mm_DivSelect__T.cc \
146        pp_Mult_Coeff_mm_DivSelectMult__T.cc \
147        p_Merge_q__T.cc pp_Mult_mm_Noether__T.cc\
148        p_kBucketSetLm__T.cc \
[8ad9898]149        kInline.cc
[08ecff]150
[5865b5c]151HEADERS=hutil.h stairc.h ideals.h \
[fc5095]152        longalg.h structs.h intvec.h int64vec.h longrat.h \
[0654a8b]153        numbers.h stype.h clapconv.h maps.h \
[1c3b7e]154        clapsing.h matpol.h polys.h p_polys.h syz.h \
[6aef6f2]155        ring.h timer.h dError.h fast_maps.h \
[9708d8]156        febase.h shortfl.h mpr_complex.h mpr_global.h \
[6dbc96]157        sca.h gring.h walkProc.h walkMain.h walkSupport.h\
[c14061]158        ffields.h khstd.h sparsmat.h gnumpfl.h gnumpc.h \
[c9e0b0]159        fglm.h kstd1.h \
[cea6f3]160        rmodulo2m.h \
[c9e0b0]161    modulop.h sing_dbm.h weight.h \
[9708d8]162        fglmgauss.h fglmvec.h \
163        kstdfac.h kmatrix.h\
164        kutil.h \
[4bbe3b]165        dbm_sl.h polys-impl.h \
[f6e863]166        GMPrat.h multicnt.h npolygon.h semic.h spectrum.h splist.h multicnt.h \
[08ecff]167        eigenval.h units.h mod_raw.h kbuckets.h sbuckets.h\
[f6e863]168        mpr_global.h mpr_inout.h mpr_base.h mpr_numeric.h \
[5e87a1]169        fegetopt.h distrib.h \
[f6e863]170        prCopy.h prCopyMacros.h \
171        p_MemAdd.h p_MemCopy.h p_MemCmp.h p_Numbers.h \
172        pInline2.h pInline1.h pInline0.h mmalloc.h static.h\
173        omSingularConfig.h pShallowCopyDelete.h \
174        p_Procs_Dynamic.h p_Procs_Impl.h p_Procs_Set.h \
175        p_Procs.h p_Procs_Static.h p_Mult_q.h
176
177DISTFILES=${SOURCES} ${HEADERS} ${ESOURCES} \
178        Makefile.in configure.in configure \
[c14061]179        mod2.h.in testgh install-sh mkinstalldirs \
[f6e863]180        check_aso.pl prCopy.pl
181
182OBJS := $(CXXSOURCES:.cc=.o) $(CSOURCES:.c=.o)
[9c979f4]183OBJS2 := $(ESOURCES:.cc=.o)
184OBJSG2 := $(ESOURCES:.cc=.og)
[f6e863]185
186P_PROCS_MODULES = FieldZp FieldIndep FieldQ FieldGeneral
187
188ifeq ($(DL_KERNEL),1)
189OBJS    := $(OBJS) $(DL_KERNEL_SOURCES:.cc=.o)
[d3c2f9]190DL_LIBS := $(P_PROCS_MODULES:%=p_Procs_%.so)
[f6e863]191else
192ifndef LD_STATIC
193LIBS := $(MP_LIBS) $(LIBS)
194endif
[1c3b7e]195OBJS := $(OBJS) $(STATIC_SOURCES:.cc=.o)
[f6e863]196DL_LIBS=
197endif
198
199#
200# Singular libraries which go into distribution
201# MAKE SURE THAT THIS IS UP_TO_DATE
202#
203SLIBS = COPYING \
204        ainvar.lib   algebra.lib   all.lib       brnoeth.lib    classify.lib \
205        deform.lib   elim.lib      equising.lib  finvar.lib     gaussman.lib \
206        general.lib  graphics.lib  groups.lib    hnoether.lib   homolog.lib  \
207        inout.lib    intprog.lib   latex.lib     linalg.lib     makedbm.lib  \
208        matrix.lib   mondromy.lib  mprimdec.lib \
209        mregular.lib normal.lib    ntsolve.lib   paramet.lib \
210        poly.lib     presolve.lib  primdec.lib   primitiv.lib   qhmoduli.lib \
211        random.lib   reesclos.lib  ring.lib      rinvar.lib     sing.lib \
212        solve.lib    spcurve.lib   spectrum.lib  standard.lib   stratify.lib \
213        surf.lib     teachstd.lib  template.lib  toric.lib      triang.lib \
214        weierst.lib  zeroset.lib   help.cnf
215
216SLIBS_FILES = $(addprefix LIB/,${SLIBS})
217
218GFTABLES = $(wildcard LIB/gftables/[1-9]*)
219
220##
221## Build Targets
222##
223.cc.o: 
224        ${CXX} ${CXXFLAGS} ${CXXTEMPLFLAGS} ${CPPFLAGS} ${DEFS} -c $<
225.c.o:
226        ${CC} ${CFLAGS} ${CPPFLAGS} ${DEFS} -c $<
227
228# building objects for shared libraries
229p_Procs_Lib_%.dl_o : p_Procs_Lib.cc p_Procs_Dynamic.o
230        ${CXX} ${CXXFLAGS} ${CXXTEMPLFLAGS} ${CPPFLAGS} ${DEFS} ${SFLAGS} -Dp_Procs_$* -c $< -o $@
231
232%.dl_o : %.cc
233        ${CXX} ${CXXFLAGS} ${CXXTEMPLFLAGS} ${CPPFLAGS} ${DEFS} ${SFLAGS} -c $< -o $@
234
[13e43e]235DL_TAILG=\"sog\"
236DL_TAILP=\"sop\"
237DL_TAILB=\"sob\"
238DL_TAILT=\"sot\"
239DL_TAILA=\"soa\"
240
241
242ifeq ($(DL_KERNEL),1)
243
244OBJG := $(OBJG) $(DL_KERNEL_SOURCES:.cc=.og)
[d3c2f9]245DL_LIBSG := $(P_PROCS_MODULES:%=p_Procs_%.sog)
[13e43e]246
247OBJP := $(OBJP) $(DL_KERNEL_SOURCES:.cc=.op)
248DL_LIBSP := $(P_PROCS_MODULES:%=p_Procs_%.sop)
249
250OBJB := $(OBJB) $(DL_KERNEL_SOURCES:.cc=.ob)
251DL_LIBSB := $(P_PROCS_MODULES:%=p_Procs_%.sob)
252
253OBJT := $(OBJT) $(DL_KERNEL_SOURCES:.cc=.ot)
254DL_LIBST := $(P_PROCS_MODULES:%=p_Procs_%.sot)
255
256OBJA := $(OBJA) $(DL_KERNEL_SOURCES:.cc=.oa)
[d3c2f9]257DL_LIBSA := $(P_PROCS_MODULES:%=p_Procs_%.soa)
[13e43e]258
259else
260
261OBJG := $(OBJG) $(STATIC_SOURCES:.cc=.og)
262DL_LIBSG=
263
264OBJP := $(OBJP) $(STATIC_SOURCES:.cc=.op)
265DL_LIBSP=
266
267OBJB := $(OBJB) $(STATIC_SOURCES:.cc=.ob)
268DL_LIBSB=
269
270OBJT := $(OBJT) $(STATIC_SOURCES:.cc=.ot)
271DL_LIBST=
272
273OBJA := $(OBJA) $(STATIC_SOURCES:.cc=.oa)
274DL_LIBST=
275
276endif
277
[9c979f4]278all:    kversion.h libkernel.a libkernel-g.a ${DL_LIBS} ${DL_LIBSG} ${OBJS2} ${OBJSG2}
[c14061]279
280libkernel.a: ${OBJS}
281        ar cr $@ $^
[f6e863]282
283p_Procs_Lib.o: p_Procs_Lib.inc
284
[6160abe]285kversion.h: ${SOURCES} ${HEADERS} Makefile.in mod2.h.in \
[f6e863]286           configure.in
[6160abe]287        echo "#define feVersionId0 "  `date '+%Y%m%d%H'` >kversion.h
[f6e863]288
289# Hmm compiling with -fomit-frame-pointer resulted in access violation
290# under cygwin
291prCopy.o: prCopy.inc
292
293prCopy.inc : prCopyMacros.h prCopyTemplate.cc prCopy.pl
294        $(PERL) prCopy.pl > prCopy.inc
295
296# additional dependencies for p_Procs_[Static|Dynamic|Lib].cc
[d3c2f9]297p_Procs_Static.o: p_Procs_Static.inc
298p_Procs_Static.inc: p_Procs_Static.h
[f6e863]299p_Procs_Dynamic.o p_Procs_Lib.o: p_Procs_Dynamic.inc
300p_Procs_Dynamic.inc p_Procs_Lib.inc: p_Procs_Dynamic.h
301
302# here is how p_Procs_[Static|Dynamic].inc is generated
[d3c2f9]303p_Procs_%.inc: p_Procs_Generate.cc p_Procs_Impl.h mod2.h
[195fa13]304        $(CXX) -g -Dp_Procs_$* p_Procs_Generate.cc -o p_Procs_$*
[f6e863]305        ./p_Procs_$* > p_Procs_$*.inc
306        -rm -f p_Procs_$* p_Procs_$*.exe
307
308p_Procs_%.so: p_Procs_Lib_%.dl_o
309        $(LD) ${SLDFLAGS} -o $@ $^
310
311##
312## install targets
313##
[4bbe3b]314install: all installbin
[c14061]315
[13e43e]316installbin: ${DL_LIBS} ${DL_LIBSG}
[c14061]317        ${MKINSTALLDIRS} ${bindir}
[35b491]318        - ranlib libkernel.a
319        - ranlib libkernel-g.a
[672566a]320ifeq (,${DL_LIBS})
321else
322
323ifeq (,${DL_LIBSG})
324else
[cec18c]325        -${INSTALL_PROGRAM} ${DL_LIBS} ${DL_LIBSG} ${bindir}
326        -${INSTALL_PROGRAM} ${DL_LIBS} ${DL_LIBSG} ../Singular
[672566a]327endif
328endif
329
[f6e863]330
[ccf9ea]331install-bindist: ${DL_LIBS} libkernel.a
332        ${MKINSTALLDIRS} ${bindir}
[672566a]333ifeq (,${DL_LIBS})
334else
[ccf9ea]335        -${INSTALL_PROGRAM} ${DL_LIBS} ${bindir}
[672566a]336endif
[ccf9ea]337
[60467b]338# compatibility
339
340install-bindist-plural: install-bindist
341
[f6e863]342##
343## clean targest
344##
345mostlyclean:
[4bbe3b]346        -rm -f p_Procs_*.inc
347        -rm -f *.o *.og core *.op *.ob *.ot *.od *_d.cc *_d.c p_Procs *.oa *.dl_o* *.so*
[f6e863]348
349clean: mostlyclean
[d3c2f9]350        -rm -f *.bak *.d *.dd depend
[f6e863]351
352distclean: clean
[6160abe]353        -rm -f *~ .\#* kversion.h
[c14061]354        -rm -f mod2.h Makefile TAGS* tags config.status config.cache config.log
355
356srcclean:
357        @echo "This command is intended for maintainers to use;"
358        @echo "Rebuilding the deleted files requires flex"
359        @echo "bison, perl"
[f6e863]360
361maintainer-clean: distclean srcclean
362        @echo "This command is intended for maintainers to use;"
363        @echo "Rebuilding the deleted files requires flex"
364        @echo "bison, perl and autoconf"
365        -rm configure
366
367##
368## miscellanous targets
369##
370
371TAGS:   ${SOURCES} ${ESOURCES} ${HEADERS}
372        etags ${SOURCES} ${ESOURCES} ${HEADERS}
373
374tags:   
375        ctags *.y *.l *.c *.h *.cc *.inc
376
377echoLIBS:
378        @echo ${SLIBS}
379
380##
381## Below here is stuff for developpers
382#################################################################
383
384
385##
386## .og files for having -O and -g object versions available at the same time
387##
388
389OBJG1 := $(CXXSOURCES:.cc=.og)
390OBJG2 := $(CSOURCES:.c=.og)
391
392OBJP1 := $(CXXSOURCES:.cc=.op)
393OBJP2 := $(CSOURCES:.c=.op)
394
395OBJB1 := $(CXXSOURCES:.cc=.ob)
396OBJB2 := $(CSOURCES:.c=.ob)
397
398OBJT1 := $(CXXSOURCES:.cc=.ot)
399OBJT2 := $(CSOURCES:.c=.ot)
400
401OBJA1 := $(CXXSOURCES:.cc=.oa)
[d3c2f9]402OBJA2 := $(CSOURCES:.c=.oa)
[f6e863]403
404
405OBJG=$(OBJG1) $(OBJG2)
406OBJP=$(OBJP1) $(OBJP2)
407OBJB=$(OBJB1) $(OBJB2)
408OBJT=$(OBJT1) $(OBJT2)
409OBJA=$(OBJA1) $(OBJA2)
410
[a42c3c]411ifeq ($(DL_KERNEL),1)
412OBJG    := $(OBJG) $(DL_KERNEL_SOURCES:.cc=.og)
413else
414OBJG := $(OBJG) $(STATIC_SOURCES:.cc=.og)
415endif
416
[f6e863]417##
418## compiler and linker options for debug version
419##
420
[fbf19c]421CCG             = ${CC}
422CXXG            = ${CXX}
[f6e863]423CXXM            = gcc -MM -MG -DGENERATE_DEPEND
424CCM             = gcc -MM -MG -DGENERATE_DEPEND
425
[fbf19c]426CFLAGSG         = -g ${PIPE}
427CXXFLAGSG       = -g ${PIPE}
[f6e863]428CXXTEMPLFLAGSG  = -fno-implicit-templates
429DEFSG           = -D@SING_UNAME@ @DEFS@ -DDL_TAIL=$(DL_TAILG)
430
431##
432## Debug Targets
433##
434
435p_Procs_%.sog: p_Procs_Lib_%.dl_og
436        ${CXXG} ${CXXFLAGSG} ${SFLAGS} ${SLDFLAGS} $< -o $@
437
438p_Procs_Lib_%.dl_og : p_Procs_Lib.cc  p_Procs_Dynamic.og
439        ${CXXG} ${CXXFLAGSG} ${CXXTEMPLFLAGS} ${CPPFLAGS} ${DEFSG} ${SFLAGS} -Dp_Procs_$* -c $< -o $@
440
441%.dl_og: %.cc
442        ${CXXG} ${CXXFLAGSG} ${CXXTEMPLFLAGSG} ${CPPFLAGS} ${DEFSG} ${SFLAGS} -c $< -o $@
443
444%.og: %.cc
445        $(CXXG) ${CXXFLAGSG} ${CXXTEMPLFLAGSG} ${CPPFLAGS} ${DEFSG} -c $< -o $@
446
447$(OBJG2) : %.og: %.c
448        $(CCG)  ${CFLAGSG} ${CPPFLAGS} ${DEFSG} -c $< -o $@
449
[c14061]450libkernel-g.a: ${OBJG}
451        ar cr $@ $^
[f6e863]452
453##
454## compiler and linker options for profile version
455##
456
457CCP             = gcc
458CXXP            = gcc
459
460CFLAGSP         = -pg -O3 ${PIPE}
461CXXFLAGSP       = -pg -O3 ${PIPE}
462CXXTEMPLFLAGSP  = -fno-implicit-templates
[0012cd]463DEFSP           = -DNDEBUG -DOM_NDEBUG -DDO_PROFILE -D@SING_UNAME@ @DEFS@ -DDL_TAIL=$(DL_TAILP)
[f6e863]464LDFLAGSP        = -static @LDFLAGS@
465
466CFLAGSB         = -g -O3 ${PIPE}
467CXXFLAGSB       = -g -O3 ${PIPE}
468CXXTEMPLFLAGSB  = -fno-implicit-templates
[0012cd]469DEFSB           = -D@SING_UNAME@ -DOM_NDEBUG -DNDEBUG @DEFS@ -DDL_TAIL=$(DL_TAILB)
[f6e863]470LDFLAGSB        = -static @LDFLAGS@
471
472# bprof object  file to link with
473BPROFOBJ        = /usr/local/lib/bmon.o
474
475DEFST           = -DNO_INLINE -DNDEBUG -D@SING_UNAME@ -DOM_TRACK=2 -DOM_CHECK=0 @DEFS@ -DDL_TAIL=$(DL_TAILT)
476LDFLAGST        = @LDFLAGS@
477CFLAGST         = -g  -O2 -w ${PIPE}
478CXXFLAGST       = -g  -O2 -w ${PIPE}
479
480##
481## op and ob files for gprof and bprof, ot for mtrack, oc for OMCHECK=1
482##
483
484
485##
486## profile targets
487##
488
489## for gprof
490p_Procs_%.sop: p_Procs_Lib_%.dl_op
491        ${CXXP} ${CXXFLAGSP} ${SFLAGS} ${SLDFLAGS} $< -o $@
492
493p_Procs_Lib_%.dl_op : p_Procs_Lib.cc p_Procs_Dynamic.op
494        ${CXXP} ${CXXFLAGS} ${CXXTEMPLFLAGS} ${CPPFLAGS} ${DEFS} ${SFLAGS} -Dp_Procs_$* -c $< -o $@
495
496%.dl_op: %.cc
497        ${CXXP} ${CXXFLAGSP} ${CXXTEMPLFLAGS} ${CPPFLAGS} ${DEFSP} ${SFLAGS} -c $< -o $@
498
499
500%.op: %.cc
501        $(CXXP) ${CXXFLAGSP} ${CXXTEMPLFLAGSP} ${CPPFLAGS} ${DEFSP} -c $< -o $@
502
503$(OBJP2) : %.op: %.c
504        $(CCP)  ${CFLAGSP} ${CPPFLAGS} ${DEFSP} -c $< -o $@
505
506## for bprof
507p_Procs_%.sob: p_Procs_Lib_%.dl_ob
508        ${CXXP} ${CXXFLAGSB} ${SFLAGS} ${SLDFLAGS} $< -o $@
509
510p_Procs_Lib_%.dl_ob : p_Procs_Lib.cc  p_Procs_Dynamic.ob
511        ${CXXP} ${CXXFLAGS} ${CXXTEMPLFLAGS} ${CPPFLAGS} ${DEFS} ${SFLAGS} -Dp_Procs_$* -c $< -o $@
512
513%.dl_ob: %.cc
514        ${CXXP} ${CXXFLAGSB} ${CXXTEMPLFLAGS} ${CPPFLAGS} ${DEFSB} ${SFLAGS} -c $< -o $@
515
516%.ob: %.cc
517        $(CXXP) ${CXXFLAGSP} ${CXXTEMPLFLAGS} ${CPPFLAGS} ${DEFSB} -c $< -o $@
518
519$(OBJB2) : %.ob: %.c
520        $(CCP)  ${CFLAGSP} ${CPPFLAGS} ${DEFSB} -c $< -o $@
521
[c14061]522iparith.ob: iparith.inc iparith.cc
523        $(CXXP)  ${CXXFLAGSP} ${CXXTEMPLFLAGS} ${CPPFLAGS} ${DEFSB} -c iparith.cc -o iparith.ob
524
[f6e863]525#
526# for mtrack
527#
528p_Procs_%.sot: p_Procs_Lib_%.dl_ot
529        ${CXXP} ${CXXFLAGST} ${SFLAGS} ${SLDFLAGS} $< -o $@
530
531p_Procs_Lib_%.dl_ot : p_Procs_Lib.cc p_Procs_Dynamic.ot
532        ${CXXP} ${CXXFLAGS} ${CXXTEMPLFLAGS} ${CPPFLAGS} ${DEFS} ${SFLAGS} -Dp_Procs_$* -c $< -o $@
533
534%.dl_ot: %.cc
535        ${CXXP} ${CXXFLAGST} ${CXXTEMPLFLAGS} ${CPPFLAGS} ${DEFST} ${SFLAGS} -c $< -o $@
536
537%.ot: %.cc
538        $(CXXP) ${CXXFLAGST} ${CXXTEMPLFLAGS} ${CPPFLAGS} ${DEFST} -c $< -o $@
539
540$(OBJT2) : %.ot: %.c
541        $(CCP)  ${CFLAGST} ${CPPFLAGS} ${DEFST} -c $< -o $@
542
[c14061]543iparith.ot: iparith.inc iparith.cc
544        $(CXXP)  ${CXXFLAGST} ${CXXTEMPLFLAGS} ${CPPFLAGS} ${DEFST} -c iparith.cc -o iparith.ot
545
[f6e863]546#
547# for Singulara
548#
549DEFSA = -DOM_CHECK=1 -DHAVE_ASSUME -DNDEBUG -D@SING_UNAME@ @DEFS@ -DDL_TAIL=$(DL_TAILA)
550CFLAGSA         = -g  -O -Wall -Wno-unused ${PIPE}
551CXXFLAGSA       = -g  -O -Wall -Wno-unused ${PIPE}
552
553p_Procs_%.soa: p_Procs_Lib_%.dl_oa
554        ${CXX} ${CXXFLAGSA} ${SFLAGS} ${SLDFLAGS} $< -o $@
555
556p_Procs_Lib_%.dl_oa : p_Procs_Lib.cc p_Procs_Dynamic.oa
557        ${CXX} ${CXXFLAGS} ${CXXTEMPLFLAGS} ${CPPFLAGS} ${DEFS} ${SFLAGS} -Dp_Procs_$* -c $< -o $@
558
559%.dl_oa: %.cc
560        ${CXX} ${CXXFLAGSA} ${CXXTEMPLFLAGS} ${CPPFLAGS} ${DEFSA} ${SFLAGS} -c $< -o $@
561
562%.oa: %.cc
563        $(CXX) ${CXXFLAGSA} ${CXXTEMPLFLAGS} ${CPPFLAGS} ${DEFSA} -c $< -o $@
564
565$(OBJA2) : %.oa: %.c
566        $(CC)  ${CFLAGSA} ${CPPFLAGS} ${DEFSA} -c $< -o $@
567
[c14061]568iparith.oa: iparith.inc iparith.cc
569        $(CXX)  ${CXXFLAGSA} ${CXXTEMPLFLAGS} ${CPPFLAGS} ${DEFSA} -c iparith.cc -o iparith.oa
570
[f6e863]571#
572# for Macro expansion
573#
574CXXSOURCESD := $(CXXSOURCES:%.cc=%_d.cc) $(STATIC_SOURCES:%.cc=%_d.cc)
575CSOURCESD := $(CSOURCES:%.c=%_d.c)
576OBJD1 := $(CXXSOURCESD:.cc=.od)
577OBJD2 := $(CSOURCESD:.c=.od)
578
579%_d.c : %.c
580        $(CCG) $(CFLAGSG) ${CPPFLAGS} ${DEFS}-E -P $< | $(PERL) -p -e 's/;/;\n/g' | $(PERL) -p -e 's/\{/\n\{/g' | $(PERL) -p -e 's/\}/\n\}/g' > $@
581
582%_d.cc : %.cc
583        $(CCG) $(CXXFLAGS) ${CPPFLAGS} ${DEFS} -E -P $< | $(PERL) -p -e 's/;/;\n/g' | $(PERL) -p -e 's/\{/\n\{/g' | $(PERL) -p -e 's/\}/\n\}/g' > $@
584
585.PRECIOUS: %_d.cc %_d.c
586
587%.od : %.c
588        $(CCG)  ${CFLAGSG} ${CPPFLAGS} ${DEFSG} -c $< -o $@
589
590%.od : %.cc
591        $(CXXG) ${CXXFLAGSG} ${CXXTEMPLFLAGSG} ${CPPFLAGS} ${DEFSG} -c $< -o $@
592
593##
594## check_aso
595##
596check_aso:
597        ${PERL} check_aso.pl $(SOURCES)
598##
599## dependencies
600##
601
602%.dd: %.cc mod2.h
603        echo $(@:.dd=.og) $(@:.dd=.op) $(@:.dd=_d.cc) $(@:.dd=.od) $(@:.dd=.ob) $(@:.dd=.ot) $(@:.dd=.oa) $(@:.dd=.dl_o) $(@:.dd=.dl_og) $(@:.dd=.dl_op) $(@:.dd=.dl_od) $(@:.dd=.dl_ob) $(@:.dd=.dl_ot) $(@:.dd=.dl_oa)" " \\ > $@
604        $(CXXM) -DGENTABLE ${CPPFLAGS} ${DEFSG} $< >> $@
605
606%.d: %.c mod2.h
607        echo $(@:.d=.og) $(@:.d=.od) $(@:.dd=_d.c) $(@:.d=.op) $(@:.d=.ob) $(@:.d=.ot) $(@:.d=.oa)" " \\ > $@
608        $(CCM) ${CPPFLAGS} ${DEFSG} $< >> $@
609
[8ad9898]610depend:   $(CXXSOURCES:.cc=.dd) $(ESOURCES:.cc=.dd) $(CSOURCES:.c=.d) mod2.h
[f6e863]611        cat *.d *.dd >depend
612
613ifeq (depend,$(wildcard depend))
614include depend
615endif
616
617
Note: See TracBrowser for help on using the repository browser.