source: git/kernel/Makefile.in @ a42c3c

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