source: git/kernel/Makefile.in @ 35b491

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