source: git/Singular/Makefile.in @ bbad78

spielwiese
Last change on this file since bbad78 was bbad78, checked in by Viktor Levandovskyy <levandov@…>, 21 years ago
*levandov: libs in plural, help.cnf added git-svn-id: file:///usr/local/Singular/svn/trunk@6858 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 28.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_bindir_plural  = ${install_prefix}/Plural
30install_slibdir = ${install_prefix}/LIB
31
32##
33## various programs
34##
35@SET_MAKE@
36CC              = @CC@
37LD              = @LD@
38CXX             = @CXX@
39LEX             = @LEX@
40PERL            = @PERL@
41BISON           = bison
42INSTALL         = @INSTALL@
43INSTALL_PROGRAM = @INSTALL_PROGRAM@
44INSTALL_DATA    = @INSTALL_DATA@
45MKINSTALLDIRS   = ./mkinstalldirs
46LN_S            = @LN_S@
47
48##
49## compiler and linker options
50##
51PIPE            = @PIPE@
52CFLAGS          = @CFLAGS@ ${PIPE}
53CXXFLAGS        = @CXXFLAGS@ ${PIPE}
54CXXTEMPLFLAGS   = @CXXTEMPLFLAGS@
55CPPFLAGS        = -I${srcdir} @CPPFLAGS@
56DEFS            = -DNDEBUG -DOM_NDEBUG -D@SING_UNAME@ @DEFS@
57LDFLAGS         = @LDFLAGS@
58LD_DYN_FLAGS    = @LD_DYN_FLAGS@
59SFLAGS          = @SFLAGS@
60SLDFLAGS        = @SLDFLAGS@
61
62LD_LIBC         = -lc
63STATIC_LDFLAGS  = @STATIC_LDFLAGS@
64# under cygwin, do not explicitly link against -lm, for it is the cygwin
65# lib -- if you really want to do this, use -lm as the _last_ thing on the
66# arguments to link
67ifneq ($(SINGUNAME),ix86-Win)
68LIBS            = -lm @NEED_LIBS@
69else
70LIBS            = -lsingfac -lsingcf -lntl -lgmp -static -lgdbm -lreadline -lncurses
71endif
72MP_LIBS         = @MP_LIBS@
73DL_KERNEL       = @DL_KERNEL@
74HAVE_MPSR       = @HAVE_MPSR@
75
76ifdef LD_STATIC
77LDFLAGS  := ${STATIC_LDFLAGS} ${LDFLAGS}
78SING_EXEC = Singular-static
79LIBS := ${MP_LIBS} ${LIBS}
80DL_KERNEL =
81else
82LDFLAGS  := ${LD_DYN_FLAGS} ${LDFLAGS}
83SING_EXEC = Singular
84endif
85
86# CXXFLAGS =  -g -Wall -Wno-unused
87# CFLAGS =  -g -Wall -Wno-unused
88##
89## End configuration dependend stuff
90#################################################################
91
92###
93### file sets
94###
95
96# normal C++ source files
97CXXSOURCES=grammar.cc scanner.cc algmap.cc attrib.cc clapconv.cc \
98    clapsing.cc mminit.cc eigenval.cc\
99    extra.cc febase.cc feread.cc fehelp.cc feResource.cc feOpt.cc \
100    ffields.cc hdegree.cc hilb.cc hutil.cc \
101    gring.cc gr_kstd2.cc\
102    ideals.cc intvec.cc \
103    ipassign.cc ipconv.cc ipid.cc iplib.cc \
104    ipprint.cc ipshell.cc khstd.cc kstdfac.cc \
105    kstd1.cc kstd2.cc kutil.cc lists.cc \
106    longalg.cc longrat.cc longrat0.cc \
107    maps.cc matpol.cc sdb.cc gnumpfl.cc gnumpc.cc \
108    modulop.cc mpr_complex.cc sparsmat.cc \
109    fglm.cc fglmzero.cc fglmvec.cc fglmgauss.cc fglmhom.cc fglmcomb.cc \
110    numbers.cc polys.cc p_polys.cc polys0.cc polys1.cc polys-impl.cc \
111    ring.cc shortfl.cc silink.cc kspoly.cc \
112    subexpr.cc syz.cc syz0.cc syz1.cc syz2.cc syz3.cc\
113    timer.cc weight.cc \
114    GMPrat.cc multicnt.cc npolygon.cc semic.cc spectrum.cc splist.cc \
115    libparse.cc mod_raw.cc sing_win.cc\
116    gms.cc pcv.cc units.cc kbuckets.cc sbuckets.cc\
117    mpr_inout.cc mpr_base.cc mpr_numeric.cc \
118    prCopy.cc p_Mult_q.cc \
119    pDebug.cc pInline2.cc pInline1.cc pInline0.cc \
120    pShallowCopyDelete.cc fast_maps.cc cntrlc.cc misc.cc
121
122# stuff for MP
123MPSR_SOURCES = mpsr_Put.cc mpsr_PutPoly.cc mpsr_GetPoly.cc mpsr_sl.cc\
124        mpsr_Get.cc mpsr_GetMisc.cc mpsr_Error.cc \
125
126
127# stuff for dbm
128DBMSR_SOURCES =  ndbm.cc sing_dbm.cc
129
130# normal C source files
131CSOURCES=weight0.c fegetopt.c fereadl.c page.c dError.c mmstd.c
132
133# C++ sources which are used if part of the kernel are dynamically linked
134DL_KERNEL_SOURCES=p_Procs_Dynamic.cc slInit_Dynamic.cc
135
136# C++ sources which are used for dynamic libraries if part of the kernel is
137# dynamically linked
138DL_LIB_SOURCES=p_Procs_Lib.cc
139
140# C++ sources which are used if no parts of the kernel are dynamically linked
141STATIC_SOURCES=p_Procs_Static.cc slInit_Static.cc
142
143# C++ sources for which both, shared and static object files are needed
144COMMON_SOURCES = $(MPSR_SOURCES) $(DBMSR_SOURCES)
145
146# special C++ source files (need extra compiling and/or linking), for which
147# dependencies should be generated
148ESOURCES=mmalloc.cc iparith.cc $(COMMON_SOURCES) \
149        $(DL_KERNEL_SOURCES) $(DL_LIB_SOURCES) $(STATIC_SOURCES)
150
151SOURCES=${CSOURCES} ${CXXSOURCES} \
152        grammar.y scanner.l libparse.l syz2.cc prCopyTemplate.cc \
153        p_Delete__T.cc p_ShallowCopyDelete__T.cc \
154        p_Copy__T.cc p_Mult_nn__T.cc  pp_Mult_nn__T.cc \
155        pp_Mult_mm__T.cc p_Mult_mm__T.cc \
156        p_Minus_mm_Mult_qq__T.cc p_Add_q__T.cc \
157        p_Neg__T.cc pp_Mult_Coeff_mm_DivSelect__T.cc \
158        pp_Mult_Coeff_mm_DivSelectMult__T.cc \
159        p_Merge_q__T.cc pp_Mult_mm_Noether__T.cc\
160        p_kBucketSetLm__T.cc \
161        kInline.cc utils.cc utils.h \
162        tesths.cc mpsr_Tok.cc claptmpl.cc
163
164HEADERS=algmap.h hutil.h lists.h stairc.h attrib.h ideals.h \
165        longalg.h mpsr_Tok.h structs.h intvec.h longrat.h \
166        numbers.h stype.h clapconv.h ipconv.h maps.h page.h \
167        subexpr.h clapsing.h ipid.h matpol.h polys.h p_polys.h syz.h \
168        cntrlc.h ipprint.h ring.h timer.h sdb.h dError.h \
169        febase.h ipshell.h shortfl.h tok.h mpr_complex.h mpr_global.h \
170        page.h gring.h fast_maps.h \
171        ffields.h khstd.h silink.h sparsmat.h gnumpfl.h gnumpc.h \
172        fglm.h kstd1.h modulop.h sing_dbm.h weight.h \
173        fglmgauss.h fglmvec.h mpsr.h mpsr_sl.h\
174        kstdfac.h mpsr_Get.h kmatrix.h\
175        kutil.h mpsr_Put.h\
176        ndbm.h dbm_sl.h polys-impl.h libparse.h \
177        GMPrat.h multicnt.h npolygon.h semic.h spectrum.h splist.h multicnt.h \
178        gms.h pcv.h units.h eigenval.h mod_raw.h kbuckets.h sbuckets.h\
179        mpr_global.h mpr_inout.h mpr_base.h mpr_numeric.h \
180        feOpt.h fegetopt.h distrib.h walk.h \
181        prCopy.h prCopyMacros.h \
182        p_MemAdd.h p_MemCopy.h p_MemCmp.h p_Numbers.h \
183        pInline2.h pInline1.h pInline0.h mmalloc.h static.h\
184        omSingularConfig.h pShallowCopyDelete.h \
185        p_Procs_Dynamic.h p_Procs_Impl.h p_Procs_Set.h \
186        p_Procs.h p_Procs_Static.h p_Mult_q.h
187
188DISTFILES=${SOURCES} ${HEADERS} ${ESOURCES} \
189        Makefile.in configure.in configure \
190        mod2.h.in grammar.h testgh install-sh mkinstalldirs \
191        check_aso.pl prCopy.pl
192
193OBJS := $(CXXSOURCES:.cc=.o) $(CSOURCES:.c=.o)
194
195ifeq ($(SINGUNAME),ix86-Win)
196OBJS := $(OBJS) Singular_res.o
197endif
198
199P_PROCS_MODULES = FieldZp FieldIndep FieldQ FieldGeneral
200
201ifeq ($(DL_KERNEL),1)
202OBJS    := $(OBJS) $(DL_KERNEL_SOURCES:.cc=.o)
203DBMSR_SO= dbmsr.so
204DL_LIBS := $(P_PROCS_MODULES:%=p_Procs_%.so) $(DBMSR_SO)
205ifeq ($(HAVE_MPSR), 1)
206MPSR_SO =       mpsr.so
207DL_LIBS :=      $(DL_LIBS) $(MPSR_SO)
208endif
209else
210ifndef LD_STATIC
211LIBS := $(MP_LIBS) $(LIBS)
212endif
213OBJS := $(OBJS) $(STATIC_SOURCES:.cc=.o) $(COMMON_SOURCES:.cc=.o)
214DL_LIBS=
215endif
216
217#
218# Singular libraries which go into distribution
219# MAKE SURE THAT THIS IS UP_TO_DATE
220#
221
222SLIBS = COPYING \
223        ainvar.lib   algebra.lib   all.lib       brnoeth.lib    classify.lib \
224        deform.lib   elim.lib      equising.lib  finvar.lib     gmssing.lib \
225        general.lib  graphics.lib  hnoether.lib  homolog.lib    inout.lib \
226        intprog.lib  latex.lib     linalg.lib    makedbm.lib    matrix.lib \
227        mprimdec.lib \
228        mondromy.lib mregular.lib  normal.lib    ntsolve.lib    paramet.lib \
229        poly.lib     presolve.lib  primdec.lib   primitiv.lib   qhmoduli.lib \
230        random.lib   reesclos.lib  ring.lib      rinvar.lib     sing.lib \
231        solve.lib    spcurve.lib   spectrum.lib  standard.lib   stratify.lib \
232        surf.lib     toric.lib     triang.lib    zeroset.lib    help.cnf
233
234PLIBS = lieA.lib
235
236SLIBS_FILES = $(addprefix LIB/,${SLIBS})
237
238PLIBS_FILES = $(addprefix LIB/,${PLIBS})
239
240GFTABLES = $(wildcard LIB/gftables/[1-9]*)
241
242##
243## Build Targets
244##
245.l.cc:
246        @if test "x${LEX}" = x; then \
247                echo Error: no lex given, could not rebuilt scanner.cc;\
248                exit 1; \
249        fi
250        ${LEX} -s -I -t $< > scanner.cc
251.y.cc:
252        @if test "x${BISON}" = x; then \
253                echo Error: no bison given, could not rebuilt grammar.cc;\
254                exit 1; \
255        fi
256        ${BISON} -d -t -o grammar.cc $<
257        chmod +x testgh
258        ./testgh
259
260.cc.o: 
261        ${CXX} ${CXXFLAGS} ${CXXTEMPLFLAGS} ${CPPFLAGS} ${DEFS} -c $<
262.c.o:
263        ${CC} ${CFLAGS} ${CPPFLAGS} ${DEFS} -c $<
264
265# building objects for shared libraries
266p_Procs_Lib_%.dl_o : p_Procs_Lib.cc p_Procs_Dynamic.o
267        ${CXX} ${CXXFLAGS} ${CXXTEMPLFLAGS} ${CPPFLAGS} ${DEFS} ${SFLAGS} -Dp_Procs_$* -c $< -o $@
268
269%.dl_o : %.cc
270        ${CXX} ${CXXFLAGS} ${CXXTEMPLFLAGS} ${CPPFLAGS} ${DEFS} ${SFLAGS} -c $< -o $@
271
272
273all:    $(SING_EXEC)
274
275Singular-static: version.h
276        sleep 1
277        echo "#define HAVE_STATIC" > static.h
278        ${MAKE} LD_STATIC=1 S_EXT="-static" Singular-static
279        echo "#undef HAVE_STATIC" > static.h
280
281Singular${S_EXT}: mod2.h Makefile version.h scanner.cc  ${OBJS} mmalloc.o \
282          iparith.o tesths.cc libparse.cc claptmpl.o mpsr_Tok.o $(DL_LIBS)
283        ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${CXXTEMPLFLAGS} ${DEFS} \
284          -o Singular${S_EXT} \
285          tesths.cc iparith.o mpsr_Tok.o claptmpl.o\
286          ${OBJS} ${LDFLAGS} ${LIBS} -lomalloc_ndebug mmalloc.o
287
288%.static: version.h
289        ${MAKE} DL_KERNEL=0 S_EXT=".static" $@
290
291iparith.o mpsr_Tok.o : iparith.inc mpsr_Tok.inc
292
293cntrlc.o cntrlc.og : feOptES.inc feOptTS.inc feOpt.inc
294
295p_Procs_Lib.o: p_Procs_Lib.inc
296
297claptmpl.o: claptmpl.cc mod2.h
298        ${CXX} ${CXXFLAGS}  ${CPPFLAGS} ${DEFS} -c $<   
299
300iparith.inc mpsr_Tok.inc: claptmpl.o iparith.cc mmalloc.o\
301                          ipconv.cc tok.h mpsr_Tok.cc grammar.h mod2.h
302        ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${CXXTEMPLFLAGS} ${DEFS} -DGENTABLE \
303             -o gentable claptmpl.o iparith.cc tesths.cc mpsr_Tok.cc \
304             ${OBJS} ${LDFLAGS} ${LIBS} -lomalloc_ndebug mmalloc.o
305        ./gentable
306        /bin/rm -f gentable gentable.exe
307
308
309version.h: ${SOURCES} ${HEADERS} Makefile.in mod2.h.in \
310           configure.in
311        echo "#define feVersionId "  `date '+%Y%m%d%H'` >version.h
312
313libparse: libparse_main.o utils.o fegetopt.o febase.cc
314        ${CXX}  -DSTANDALONE_PARSER -o libparse febase.cc libparse_main.o utils.o fegetopt.o
315
316libparse_main.o: libparse.cc
317        ${CXX} -c -o libparse_main.o libparse.cc  -DSTANDALONE_PARSER
318
319libparse.cc: libparse.l
320        @if test "x${LEX}" = x; then \
321                echo Error: no lex given, could not rebuilt libparse.cc;\
322                exit 1; \
323        fi
324        ${LEX} -I -Pyylp -olibparse.cc libparse.l
325
326# Hmm compiling with -fomit-frame-pointer resulted in access violation
327# under cygwin
328ESingular: fegetopt.o feResource.cc mod2.h feOpt.cc version.h emacs.cc \
329           feOptES.inc mmalloc.o
330        ${CXX} -O2 ${CPPFLAGS} ${DEFS} -DESINGULAR -o ESingular emacs.cc fegetopt.o \
331        ${LDFLAGS} -lomalloc_ndebug mmalloc.o
332
333TSingular: fegetopt.o feResource.cc mod2.h feOpt.cc version.h emacs.cc \
334           feOptTS.inc mmalloc.o
335        ${CXX} -O2 ${CPPFLAGS} ${DEFS} -DTSINGULAR -o TSingular emacs.cc fegetopt.o \
336        ${LDFLAGS} -lomalloc_ndebug mmalloc.o
337
338feOpt.o: feOpt.inc feOptES.inc feOptTS.inc
339extra.o: feOpt.inc
340
341feOpt.inc: feOpt.cc mod2.h feOpt.h
342        $(CXX) -DGENERATE_OPTION_INDEX feOpt.cc -o feOpt
343        ./feOpt
344        /bin/rm -f feOpt feOpt.exe
345
346feOptES.inc: feOpt.cc mod2.h feOpt.h
347        $(CXX) -DGENERATE_OPTION_INDEX  -DESINGULAR feOpt.cc -o feOpt
348        ./feOpt
349        rm -f feOpt feOpt.exe
350
351feOptTS.inc: feOpt.cc mod2.h feOpt.h
352        $(CXX) -DGENERATE_OPTION_INDEX  -DTSINGULAR feOpt.cc -o feOpt
353        ./feOpt
354        rm -f feOpt feOpt.exe
355
356prCopy.o: prCopy.inc
357
358prCopy.inc : prCopyMacros.h prCopyTemplate.cc prCopy.pl
359        $(PERL) prCopy.pl > prCopy.inc
360
361# additional dependencies for p_Procs_[Static|Dynamic|Lib].cc
362p_Procs_Static.o: p_Procs_Static.inc
363p_Procs_Static.inc: p_Procs_Static.h
364p_Procs_Dynamic.o p_Procs_Lib.o: p_Procs_Dynamic.inc
365p_Procs_Dynamic.inc p_Procs_Lib.inc: p_Procs_Dynamic.h
366
367# here is how p_Procs_[Static|Dynamic].inc is generated
368p_Procs_%.inc: p_Procs_Generate.cc p_Procs_Impl.h mod2.h
369        $(CXX) -g -Wall -Dp_Procs_$* p_Procs_Generate.cc -o p_Procs_$*
370        ./p_Procs_$* > p_Procs_$*.inc
371        -rm -f p_Procs_$* p_Procs_$*.exe
372
373p_Procs_%.so: p_Procs_Lib_%.dl_o
374        $(LD) ${SLDFLAGS} -o $@ $^
375
376mpsr.so: $(MPSR_SOURCES:.cc=.dl_o)
377        $(LD) ${SLDFLAGS} -o $@ $^ -L${libdir} ${MP_LIBS}
378
379dbmsr.so: $(DBMSR_SOURCES:.cc=.dl_o)
380        $(LD) ${SLDFLAGS} -o $@ $^
381
382src: scanner.cc grammar.h grammar.cc libparse.cc
383
384mod2.h: stamp-h
385
386stamp-h : config.status mod2.h.in
387        CONFIG_FILES= CONFIG_HEADERS="mod2.h" ./config.status
388
389Makefile: Makefile.in config.status
390        CONFIG_FILES="Makefile" CONFIG_HEADERS= ./config.status
391
392config.status: configure
393        ./config.status --recheck
394
395configure: configure.in
396        @echo "WARNING: You need to rerun autoconf. I am proceeding, for now."
397        @touch configure
398#       autoconf
399
400ifeq ($(SINGUNAME),ix86-Win)
401##
402## windows only targets
403##
404
405## resources
406Singular.rc: Singular.rc.in config.status
407        CONFIG_FILES="Singular.rc" CONFIG_HEADERS= ./config.status
408
409ESingular_res.o: Singular.rc
410        windres -DESINGULAR -i Singular.rc -o ESingular_res.o
411
412TSingular_res.o: Singular.rc
413        windres -DTSINGULAR -i Singular.rc -o TSingular_res.o
414
415Singular_res.o: Singular.rc
416        windres -DSINGULAR -i Singular.rc -o Singular_res.o
417
418## run
419run.o: run.c run.h
420        gcc -c -I. -O2 run.c -o run.o
421
422runTSingular : run.o TSingular_res.o
423        gcc -mwindows -e _mainCRTStartup run.o TSingular_res.o -o runTSingular.exe
424
425runESingular : run.o ESingular_res.o
426        gcc -mwindows -e _mainCRTStartup run.o ESingular_res.o -o runESingular.exe
427
428RUN_SINGULARS=runESingular runTSingular
429
430endif
431
432##
433## install targets
434##
435install: all installbin installslib
436
437installbin: ${SING_EXEC} libparse ESingular TSingular ${RUN_SINGULARS}
438        ${MKINSTALLDIRS} ${bindir}
439        ${INSTALL_PROGRAM} ${SING_EXEC} ${SINGULAR}
440        ${INSTALL_PROGRAM} libparse ${RUN_SINGULARS} ${bindir}
441        ${INSTALL_PROGRAM} ESingular TSingular ${DL_LIBS} ${bindir}
442        chmod a+x ${SINGULAR}
443        rm -f ${bindir}/${SING_EXEC}${EXEC_EXT}
444        cd ${bindir}; ${LN_S} ${SINGULAR} Singular${EXEC_EXT};
445
446installslib: LIB
447        test -r ${slibdir} || ${LN_S} `pwd`/LIB ${slibdir}
448
449
450uninstall: uninstallbin
451
452uninstallbin:
453        rm -f ${bindir}/Singular${EXEC_EXT}
454        rm -f ${SINGULAR}
455        -rmdir ${bindir}
456
457##
458## clean targest
459##
460mostlyclean:
461        -rm -f Singular Singular-static Singulara Singularg Singularp Singularb libparse feOpt*.inc p_Procs_*.inc
462        -rm -f *.o *.og core *.op *.ob *.ot Singulart *.od *_d.cc *_d.c p_Procs *.oa *.dl_o* *.so*
463        -rm -f ESingular* TSingular*
464
465clean: mostlyclean
466        -rm -f *.bak *.d *.dd depend
467        -rm -f ${slibdir}
468
469distclean: clean
470        -rm -f iparith.inc mpsr_Tok.inc stamp.h
471        -rm -f Singular* *.gprof *.bprof *~ .\#* version.h
472        -rm -f mod2.h Makefile TAGS* tags config.status config.cache config.log
473
474srcclean:
475        @echo "This command is intended for maintainers to use;"
476        @echo "Rebuilding the deleted files requires flex"
477        @echo "bison, perl"
478        -rm -f scanner.cc grammar.h grammar.cc libparse.cc
479
480maintainer-clean: distclean srcclean
481        @echo "This command is intended for maintainers to use;"
482        @echo "Rebuilding the deleted files requires flex"
483        @echo "bison, perl and autoconf"
484        -rm configure
485
486##
487## miscellanous targets
488##
489
490install-bindist: $(HEADERS) $(SOURCES) Makefile depend
491        echo "#define MAKE_DISTRIBUTION " > distrib.h
492        sleep 1
493        ${MAKE} ${SING_EXEC} ESingular TSingular libparse ${RUN_SINGULARS}
494        ${MKINSTALLDIRS} ${install_bindir}
495        ${INSTALL_PROGRAM} -s  ${SING_EXEC} ${install_bindir}/Singular
496        ${INSTALL_PROGRAM} -s  libparse ${RUN_SINGULARS} ESingular TSingular ${DL_LIBS} ${install_bindir}
497        echo "#undef MAKE_DISTRIBUTION " > distrib.h
498
499install-bindist-plural: $(HEADERS) $(SOURCES) Makefile depend
500        echo "#define MAKE_DISTRIBUTION " > distrib.h
501        sleep 1
502        ${MAKE} ${SING_EXEC} ESingular TSingular libparse ${RUN_SINGULARS}
503        ${MKINSTALLDIRS} ${install_bindir}
504        ${INSTALL_PROGRAM} -s  ${SING_EXEC} ${install_bindir}/Plural
505        ${INSTALL_PROGRAM} -s  ESingular ${install_bindir}/EPlural
506        ${INSTALL_PROGRAM} -s  TSingular ${install_bindir}/TPlural
507        - ${INSTALL_PROGRAM} -s  runESingular ${install_bindir}/runEPlural
508        - ${INSTALL_PROGRAM} -s  runTSingular ${install_bindir}/runTPlural
509        ${INSTALL_PROGRAM} -s  libparse ${DL_LIBS} ${install_bindir}
510        echo "#undef MAKE_DISTRIBUTION " > distrib.h
511
512install-sharedist: ${SLIBS_FILES} LIB/gftables
513        ${MKINSTALLDIRS} ${install_slibdir}
514        cp ${SLIBS_FILES} ${install_slibdir}
515        ${MKINSTALLDIRS} ${install_slibdir}/gftables
516        cp ${GFTABLES} ${install_slibdir}/gftables
517        chmod -R +rX ${install_slibdir}/*
518
519install-sharedist-plural: ${PLIBS_FILES} install-sharedist
520        ${MKINSTALLDIRS} ${install_slibdir}
521        cp ${PLIBS_FILES} ${install_slibdir}
522        chmod -R +rX ${install_slibdir}/*
523
524tar:
525        tar cf Singular-${SINGULAR_VERSION}-src.tar ${DISTFILES}
526        gzip -f Singular-${SINGULAR_VERSION}-src.tar
527
528backup: tar
529        mcopy -o Singular-${SINGULAR_VERSION}-src.tar.gz a:
530
531TAGS:   ${SOURCES} ${ESOURCES} ${HEADERS}
532        etags ${SOURCES} ${ESOURCES} ${HEADERS}
533
534tags:   
535        ctags *.y *.l *.c *.h *.cc *.inc
536
537echoLIBS:
538        @echo ${SLIBS}
539
540##
541## Below here is stuff for developpers
542#################################################################
543
544
545##
546## .og files for having -O and -g object versions available at the same time
547##
548
549OBJG1 := $(CXXSOURCES:.cc=.og)
550OBJG2 := $(CSOURCES:.c=.og)
551
552OBJP1 := $(CXXSOURCES:.cc=.op)
553OBJP2 := $(CSOURCES:.c=.op)
554
555OBJB1 := $(CXXSOURCES:.cc=.ob)
556OBJB2 := $(CSOURCES:.c=.ob)
557
558OBJT1 := $(CXXSOURCES:.cc=.ot)
559OBJT2 := $(CSOURCES:.c=.ot)
560
561OBJA1 := $(CXXSOURCES:.cc=.oa)
562OBJA2 := $(CSOURCES:.c=.oa)
563
564
565OBJG=$(OBJG1) $(OBJG2)
566OBJP=$(OBJP1) $(OBJP2)
567OBJB=$(OBJB1) $(OBJB2)
568OBJT=$(OBJT1) $(OBJT2)
569OBJA=$(OBJA1) $(OBJA2)
570
571DL_TAILG=\"sog\"
572DL_TAILP=\"sop\"
573DL_TAILB=\"sob\"
574DL_TAILT=\"sot\"
575DL_TAILA=\"soa\"
576
577
578ifeq ($(DL_KERNEL),1)
579
580OBJG := $(OBJG) $(DL_KERNEL_SOURCES:.cc=.og)
581DL_LIBSG := $(P_PROCS_MODULES:%=p_Procs_%.sog) $(MPSR_SO:%.so=%.sog) $(DBMSR_SO:%.so=%.sog)
582
583OBJP := $(OBJP) $(DL_KERNEL_SOURCES:.cc=.op)
584DL_LIBSP := $(P_PROCS_MODULES:%=p_Procs_%.sop) $(MPSR_SO:%.so=%.sop) $(DBMSR_SO:%.so=%.sop)
585
586OBJB := $(OBJB) $(DL_KERNEL_SOURCES:.cc=.ob)
587DL_LIBSB := $(P_PROCS_MODULES:%=p_Procs_%.sob) $(MPSR_SO:%.so=%.sob) $(DBMSR_SO:%.so=%.sob)
588
589OBJT := $(OBJT) $(DL_KERNEL_SOURCES:.cc=.ot)
590DL_LIBST := $(P_PROCS_MODULES:%=p_Procs_%.sot) $(MPSR_SO:%.so=%.sot) $(DBMSR_SO:%.so=%.sot)
591
592OBJA := $(OBJA) $(DL_KERNEL_SOURCES:.cc=.oa)
593DL_LIBSA := $(P_PROCS_MODULES:%=p_Procs_%.soa) $(MPSR_SO:%.so=%.soa) $(DBMSR_SO:%.so=%.soa)
594
595else
596
597OBJG := $(OBJG) $(STATIC_SOURCES:.cc=.og) $(COMMON_SOURCES:.cc=.og)
598DL_LIBSG=
599
600OBJP := $(OBJP) $(STATIC_SOURCES:.cc=.op) $(COMMON_SOURCES:.cc=.op)
601DL_LIBSP=
602
603OBJB := $(OBJB) $(STATIC_SOURCES:.cc=.ob) $(COMMON_SOURCES:.cc=.ob)
604DL_LIBSB=
605
606OBJT := $(OBJT) $(STATIC_SOURCES:.cc=.ot) $(COMMON_SOURCES:.cc=.ot)
607DL_LIBST=
608
609OBJA := $(OBJA) $(STATIC_SOURCES:.cc=.oa) $(COMMON_SOURCES:.cc=.oa)
610DL_LIBST=
611
612endif
613
614
615##
616## compiler and linker options for debug version
617##
618
619CCG             = gcc
620CXXG            = @CXX@
621CXXM            = gcc -MM -MG -DGENERATE_DEPEND
622CCM             = gcc -MM -MG -DGENERATE_DEPEND
623
624CFLAGSG         = -g -Wall -Wno-unused ${PIPE}
625CXXFLAGSG       = -g -Wall -Wno-unused ${PIPE}
626CXXTEMPLFLAGSG  = -fno-implicit-templates
627DEFSG           = -D@SING_UNAME@ @DEFS@ -DDL_TAIL=$(DL_TAILG)
628
629##
630## Debug Targets
631##
632
633p_Procs_%.sog: p_Procs_Lib_%.dl_og
634        ${CXXG} ${CXXFLAGSG} ${SFLAGS} ${SLDFLAGS} $< -o $@
635
636p_Procs_Lib_%.dl_og : p_Procs_Lib.cc  p_Procs_Dynamic.og
637        ${CXXG} ${CXXFLAGSG} ${CXXTEMPLFLAGS} ${CPPFLAGS} ${DEFSG} ${SFLAGS} -Dp_Procs_$* -c $< -o $@
638
639%.dl_og: %.cc
640        ${CXXG} ${CXXFLAGSG} ${CXXTEMPLFLAGSG} ${CPPFLAGS} ${DEFSG} ${SFLAGS} -c $< -o $@
641
642mpsr.sog: $(MPSR_SOURCES:.cc=.dl_og)
643        ${CXXG} ${CXXFLAGSG} ${SFLAGS} ${SLDFLAGS} ${LDFLAGS} -o $@ $^ ${MP_LIBS}
644
645dbmsr.sog: $(DBMSR_SOURCES:.cc=.dl_og)
646        ${CXXG} ${CXXFLAGSG} ${SFLAGS} ${SLDFLAGS} ${LDFLAGS} -o $@ $^ ${MP_LIBS}
647
648claptmpl.og: claptmpl.cc mod2.h
649        $(CXXG)  ${CXXFLAGSG} ${CPPFLAGS} ${DEFSG} -c $< -o $@
650
651%.og: %.cc
652        $(CXXG) ${CXXFLAGSG} ${CXXTEMPLFLAGSG} ${CPPFLAGS} ${DEFSG} -c $< -o $@
653
654$(OBJG2) : %.og: %.c
655        $(CCG)  ${CFLAGSG} ${CPPFLAGS} ${DEFSG} -c $< -o $@
656
657Singularg${S_EXT}: scanner.cc  $(OBJG)  mmalloc.og $(DL_LIBSG)\
658           iparith.og mpsr_Tok.og claptmpl.og tesths.cc version.h
659        $(CXXG) ${CXXFLAGSG} ${CXXTEMPLFLAGSG} ${CPPFLAGS} ${DEFSG} -o Singularg${S_EXT} \
660        tesths.cc iparith.og mpsr_Tok.og claptmpl.og $(OBJG) ${LDFLAGS} ${LIBS} -lomalloc mmalloc.og \
661        ${LD_DYN_FLAGS} ${LD_LIBC}
662
663iparith.og: iparith.inc iparith.cc
664        $(CXXG)  ${CXXFLAGSG} ${CXXTEMPLFLAGSG} ${CPPFLAGS} ${DEFSG} -c iparith.cc -o iparith.og
665
666mpsr_Tok.og: iparith.inc mpsr_Tok.cc
667        $(CXXG) ${CXXFLAGSG} ${CPPFLAGS} ${CXXTEMPLFLAGSG} ${DEFSG} -c mpsr_Tok.cc -o mpsr_Tok.og
668
669installg: Singularg
670        ${MKINSTALLDIRS} ${bindir}
671        ${INSTALL_PROGRAM} Singularg ${bindir} 
672
673ESingularg: fegetopt.og feResource.cc mod2.h feOpt.cc version.h emacs.cc \
674           feOptES.inc mmalloc.og
675        ${CXXG} ${CXXFLAGSG} ${CPPFLAGS} -DESINGULAR -g ${DEFSG} -o ESingularg emacs.cc fegetopt.og ${LDFLAGS} ${LIBS} -lomalloc mmalloc.og
676
677##
678## compiler and linker options for profile version
679##
680
681CCP             = gcc
682CXXP            = @CXX@
683
684CFLAGSP         = -pg -O3 ${PIPE}
685CXXFLAGSP       = -pg -O3 ${PIPE}
686CXXTEMPLFLAGSP  = -fno-implicit-templates
687DEFSP           = -DNDEBUG -DOM_NDEBUG -DDO_PROFILE -D@SING_UNAME@ @DEFS@ -DDL_TAIL=$(DL_TAILP)
688LDFLAGSP        = -static @LDFLAGS@
689
690CFLAGSB         = -g -O3 ${PIPE}
691CXXFLAGSB       = -g -O3 ${PIPE}
692CXXTEMPLFLAGSB  = -fno-implicit-templates
693DEFSB           = -D@SING_UNAME@ -DOM_NDEBUG -DNDEBUG @DEFS@ -DDL_TAIL=$(DL_TAILB)
694LDFLAGSB        = -static @LDFLAGS@
695
696# bprof object  file to link with
697BPROFOBJ        = /usr/local/lib/bmon.o
698
699DEFST           = -DNO_INLINE -DNDEBUG -D@SING_UNAME@ -DOM_TRACK=2 -DOM_CHECK=0 @DEFS@ -DDL_TAIL=$(DL_TAILT)
700LDFLAGST        = @LDFLAGS@
701CFLAGST         = -g  -O2 -w ${PIPE}
702CXXFLAGST       = -g  -O2 -w ${PIPE}
703
704##
705## op and ob files for gprof and bprof, ot for mtrack, oc for OMCHECK=1
706##
707
708
709##
710## profile targets
711##
712
713## for gprof
714p_Procs_%.sop: p_Procs_Lib_%.dl_op
715        ${CXXP} ${CXXFLAGSP} ${SFLAGS} ${SLDFLAGS} $< -o $@
716
717p_Procs_Lib_%.dl_op : p_Procs_Lib.cc p_Procs_Dynamic.op
718        ${CXXP} ${CXXFLAGS} ${CXXTEMPLFLAGS} ${CPPFLAGS} ${DEFS} ${SFLAGS} -Dp_Procs_$* -c $< -o $@
719
720%.dl_op: %.cc
721        ${CXXP} ${CXXFLAGSP} ${CXXTEMPLFLAGS} ${CPPFLAGS} ${DEFSP} ${SFLAGS} -c $< -o $@
722
723
724mpsr.sop: $(MPSR_SOURCES:.cc=.dl_op)
725        ${CXXP} ${CXXFLAGSP} ${SFLAGS} ${SLDFLAGS} ${LDFLAGS} -o $@ $^ ${MP_LIBS}
726
727dbmsr.sop: $(DBMSR_SOURCES:.cc=.dl_op)
728        ${CXXP} ${CXXFLAGSP} ${SFLAGS} ${SLDFLAGS} ${LDFLAGS} -o $@ $^ ${MP_LIBS}
729
730claptmpl.op: claptmpl.cc mod2.h
731        $(CXXP)  ${CXXFLAGSP} ${CPPFLAGS} ${DEFSP} -c $< -o $@
732
733%.op: %.cc
734        $(CXXP) ${CXXFLAGSP} ${CXXTEMPLFLAGSP} ${CPPFLAGS} ${DEFSP} -c $< -o $@
735
736$(OBJP2) : %.op: %.c
737        $(CCP)  ${CFLAGSP} ${CPPFLAGS} ${DEFSP} -c $< -o $@
738
739Singularp${S_EXT}: scanner.cc   $(OBJP) mmalloc.op\
740           iparith.op mpsr_Tok.op claptmpl.op tesths.cc version.h $(DL_LIBSP)
741        $(CXXP) ${CXXFLAGSP} ${CXXTEMPLFLAGSP} ${CPPFLAGS} ${DEFSP} -o Singularp${S_EXT} \
742        tesths.cc iparith.op mpsr_Tok.op claptmpl.op $(OBJP) ${LDFLAGSP} ${LIBS} -lomalloc_p mmalloc.op\
743        ${LD_DYN_FLAGS}
744
745iparith.op: iparith.inc iparith.cc
746        $(CXXP)  ${CXXFLAGSP} ${CXXTEMPLFLAGSP} ${CPPFLAGS} ${DEFSP} -c iparith.cc -o iparith.op
747
748mpsr_Tok.op: iparith.inc mpsr_Tok.cc
749        $(CXXP) ${CXXFLAGSP} ${CXXTEMPLFLAGSP} ${CPPFLAGS} ${DEFSP} -c mpsr_Tok.cc -o mpsr_Tok.op
750
751
752## for bprof
753p_Procs_%.sob: p_Procs_Lib_%.dl_ob
754        ${CXXP} ${CXXFLAGSB} ${SFLAGS} ${SLDFLAGS} $< -o $@
755
756p_Procs_Lib_%.dl_ob : p_Procs_Lib.cc  p_Procs_Dynamic.ob
757        ${CXXP} ${CXXFLAGS} ${CXXTEMPLFLAGS} ${CPPFLAGS} ${DEFS} ${SFLAGS} -Dp_Procs_$* -c $< -o $@
758
759%.dl_ob: %.cc
760        ${CXXP} ${CXXFLAGSB} ${CXXTEMPLFLAGS} ${CPPFLAGS} ${DEFSB} ${SFLAGS} -c $< -o $@
761
762mpsr.sob: $(MPSR_SOURCES:.cc=.dl_ob)
763        ${CXXP} ${CXXFLAGSB} ${SFLAGS} ${SLDFLAGS} ${LDFLAGS} -o $@ $^ ${MP_LIBS}
764
765dbmsr.sob: $(DBMSR_SOURCES:.cc=.dl_ob)
766        ${CXXP} ${CXXFLAGSB} ${SFLAGS} ${SLDFLAGS} ${LDFLAGS} -o $@ $^ ${MP_LIBS}
767
768claptmpl.ob: claptmpl.cc mod2.h
769        $(CXXP)  ${CXXFLAGSP} ${CPPFLAGS} ${DEFSB} -c $< -o $@
770
771%.ob: %.cc
772        $(CXXP) ${CXXFLAGSP} ${CXXTEMPLFLAGS} ${CPPFLAGS} ${DEFSB} -c $< -o $@
773
774$(OBJB2) : %.ob: %.c
775        $(CCP)  ${CFLAGSP} ${CPPFLAGS} ${DEFSB} -c $< -o $@
776
777Singularb${S_EXT}: scanner.cc   $(OBJB) iparith.ob mpsr_Tok.ob claptmpl.ob tesths.cc version.h mmalloc.ob
778        $(CXXP) ${CXXFLAGSP} ${CPPFLAGS} ${DEFSB} -o Singularb${S_EXT} \
779        tesths.cc iparith.ob mpsr_Tok.ob claptmpl.ob $(OBJB) $(BPROFOBJ) \
780        ${LDFLAGSP} ${LIBS} -lomalloc_ndebug mmalloc.ob ${LD_DYN_FLAGS}
781
782iparith.ob: iparith.inc iparith.cc
783        $(CXXP)  ${CXXFLAGSP} ${CXXTEMPLFLAGS} ${CPPFLAGS} ${DEFSB} -c iparith.cc -o iparith.ob
784
785mpsr_Tok.ob: iparith.inc mpsr_Tok.cc
786        $(CXXP) ${CXXFLAGSP} ${CXXTEMPLFLAGS} ${CPPFLAGS} ${DEFSB} -c mpsr_Tok.cc -o mpsr_Tok.ob
787
788#
789# for mtrack
790#
791p_Procs_%.sot: p_Procs_Lib_%.dl_ot
792        ${CXXP} ${CXXFLAGST} ${SFLAGS} ${SLDFLAGS} $< -o $@
793
794p_Procs_Lib_%.dl_ot : p_Procs_Lib.cc p_Procs_Dynamic.ot
795        ${CXXP} ${CXXFLAGS} ${CXXTEMPLFLAGS} ${CPPFLAGS} ${DEFS} ${SFLAGS} -Dp_Procs_$* -c $< -o $@
796
797%.dl_ot: %.cc
798        ${CXXP} ${CXXFLAGST} ${CXXTEMPLFLAGS} ${CPPFLAGS} ${DEFST} ${SFLAGS} -c $< -o $@
799
800mpsr.sot: $(MPSR_SOURCES:.cc=.dl_ot)
801        ${CXXP} ${CXXFLAGST} ${SFLAGS} ${SLDFLAGS} ${LDFLAGS} -o $@ $^ ${MP_LIBS}
802
803dbmsr.sot: $(DBMSR_SOURCES:.cc=.dl_ot)
804        ${CXX} ${CXXFLAGST} ${SFLAGS} ${SLDFLAGS} ${LDFLAGS} -o $@ $^ ${MP_LIBS}
805
806claptmpl.ot: claptmpl.cc mod2.h
807        $(CXXP)  ${CXXFLAGST} ${CPPFLAGS} ${DEFST} -c $< -o $@
808
809%.ot: %.cc
810        $(CXXP) ${CXXFLAGST} ${CXXTEMPLFLAGS} ${CPPFLAGS} ${DEFST} -c $< -o $@
811
812$(OBJT2) : %.ot: %.c
813        $(CCP)  ${CFLAGST} ${CPPFLAGS} ${DEFST} -c $< -o $@
814
815Singulart${S_EXT}: scanner.cc   $(OBJT) iparith.ot mpsr_Tok.ot claptmpl.ot tesths.cc version.h  mmalloc.ot $(DL_LIBST)
816        $(CXXP) ${CXXFLAGST} ${CPPFLAGS} ${DEFST} -o Singulart${S_EXT} \
817        tesths.cc iparith.ot mpsr_Tok.ot claptmpl.ot $(OBJT) ${LDFLAGST} ${LIBS} -lomalloc mmalloc.ot \
818        ${LD_DYN_FLAGS}
819
820iparith.ot: iparith.inc iparith.cc
821        $(CXXP)  ${CXXFLAGST} ${CXXTEMPLFLAGS} ${CPPFLAGS} ${DEFST} -c iparith.cc -o iparith.ot
822
823mpsr_Tok.ot: iparith.inc mpsr_Tok.cc
824        $(CXXP) ${CXXFLAGST} ${CXXTEMPLFLAGS} ${CPPFLAGS} ${DEFST} -c mpsr_Tok.cc -o mpsr_Tok.ot
825
826
827#
828# for Singulara
829#
830DEFSA = -DOM_CHECK=1 -DHAVE_ASSUME -DNDEBUG -D@SING_UNAME@ @DEFS@ -DDL_TAIL=$(DL_TAILA)
831CFLAGSA         = -g  -O -Wall -Wno-unused ${PIPE}
832CXXFLAGSA       = -g  -O -Wall -Wno-unused ${PIPE}
833
834p_Procs_%.soa: p_Procs_Lib_%.dl_oa
835        ${CXX} ${CXXFLAGSA} ${SFLAGS} ${SLDFLAGS} $< -o $@
836
837p_Procs_Lib_%.dl_oa : p_Procs_Lib.cc p_Procs_Dynamic.oa
838        ${CXX} ${CXXFLAGS} ${CXXTEMPLFLAGS} ${CPPFLAGS} ${DEFS} ${SFLAGS} -Dp_Procs_$* -c $< -o $@
839
840%.dl_oa: %.cc
841        ${CXX} ${CXXFLAGSA} ${CXXTEMPLFLAGS} ${CPPFLAGS} ${DEFSA} ${SFLAGS} -c $< -o $@
842
843mpsr.soa: $(MPSR_SOURCES:.cc=.dl_oa)
844        ${CXX} ${CXXFLAGSA} ${SFLAGS} ${SLDFLAGS} ${LDFLAGS} -o $@ $^ ${MP_LIBS}
845
846dbmsr.soa: $(DBMSR_SOURCES:.cc=.dl_oa)
847        ${CXX} ${CXXFLAGSA} ${SFLAGS} ${SLDFLAGS} ${LDFLAGS} -o $@ $^ ${MP_LIBS}
848
849
850claptmpl.oa: claptmpl.cc mod2.h
851        $(CXX)  ${CXXFLAGSA} ${CPPFLAGS} ${DEFSA} -c $< -o $@
852
853%.oa: %.cc
854        $(CXX) ${CXXFLAGSA} ${CXXTEMPLFLAGS} ${CPPFLAGS} ${DEFSA} -c $< -o $@
855
856$(OBJA2) : %.oa: %.c
857        $(CC)  ${CFLAGSA} ${CPPFLAGS} ${DEFSA} -c $< -o $@
858
859Singulara${S_EXT}: scanner.cc   $(OBJA) iparith.oa mpsr_Tok.oa claptmpl.oa tesths.cc version.h  mmalloc.oa $(DL_LIBSA)
860        $(CXX) ${CXXFLAGSA} ${CPPFLAGS} ${DEFSA} -o Singulara${S_EXT} \
861        tesths.cc iparith.oa mpsr_Tok.oa claptmpl.oa $(OBJA) ${LDFLAGS} ${LIBS} -lomalloc mmalloc.oa \
862        ${LD_DYN_FLAGS}
863
864iparith.oa: iparith.inc iparith.cc
865        $(CXX)  ${CXXFLAGSA} ${CXXTEMPLFLAGS} ${CPPFLAGS} ${DEFSA} -c iparith.cc -o iparith.oa
866
867mpsr_Tok.oa: iparith.inc mpsr_Tok.cc
868        $(CXX) ${CXXFLAGAT} ${CXXTEMPLFLAGSB} ${CPPFLAGS} ${DEFSA} -c mpsr_Tok.cc -o mpsr_Tok.oa
869
870#
871# for Macro expansion
872#
873CXXSOURCESD := $(CXXSOURCES:%.cc=%_d.cc) $(STATIC_SOURCES:%.cc=%_d.cc)
874CSOURCESD := $(CSOURCES:%.c=%_d.c)
875OBJD1 := $(CXXSOURCESD:.cc=.od)
876OBJD2 := $(CSOURCESD:.c=.od)
877
878%_d.c : %.c
879        $(CCG) $(CFLAGSG) ${CPPFLAGS} ${DEFS}-E -P $< | $(PERL) -p -e 's/;/;\n/g' | $(PERL) -p -e 's/\{/\n\{/g' | $(PERL) -p -e 's/\}/\n\}/g' > $@
880
881%_d.cc : %.cc
882        $(CCG) $(CXXFLAGS) ${CPPFLAGS} ${DEFS} -E -P $< | $(PERL) -p -e 's/;/;\n/g' | $(PERL) -p -e 's/\{/\n\{/g' | $(PERL) -p -e 's/\}/\n\}/g' > $@
883
884.PRECIOUS: %_d.cc %_d.c
885
886%.od : %.c
887        $(CCG)  ${CFLAGSG} ${CPPFLAGS} ${DEFSG} -c $< -o $@
888
889%.od : %.cc
890        $(CXXG) ${CXXFLAGSG} ${CXXTEMPLFLAGSG} ${CPPFLAGS} ${DEFSG} -c $< -o $@
891
892Singular_d: scanner.cc  $(OBJD)  mmalloc.od\
893           iparith.od mpsr_Tok.od claptmpl.og tesths.cc version.h
894        $(CXXG) ${CXXFLAGSG} ${CXXTEMPLFLAGSG} ${CPPFLAGS} ${DEFSG} -o Singularg_d \
895        tesths.cc iparith.od mpsr_Tok.od claptmpl.og $(OBJG) ${LDFLAGS} ${LIBS} -lomalloc mmalloc.od \
896        ${LD_DYN_FLAGS} ${LD_LIBC}
897
898##
899## check_aso
900##
901check_aso:
902        ${PERL} check_aso.pl $(SOURCES)
903##
904## dependencies
905##
906
907%.dd: %.cc mod2.h
908        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)" " \\ > $@
909        $(CXXM) -DGENTABLE ${CPPFLAGS} ${DEFSG} $< >> $@
910
911%.d: %.c mod2.h
912        echo $(@:.d=.og) $(@:.d=.od) $(@:.dd=_d.c) $(@:.d=.op) $(@:.d=.ob) $(@:.d=.ot) $(@:.d=.oa)" " \\ > $@
913        $(CCM) ${CPPFLAGS} ${DEFSG} $< >> $@
914
915depend:   $(CXXSOURCES:.cc=.dd) $(ESOURCES:.cc=.dd) $(CSOURCES:.c=.d) mod2.h claptmpl.dd
916        cat *.d *.dd >depend
917
918ifeq (depend,$(wildcard depend))
919include depend
920endif
921
922
Note: See TracBrowser for help on using the repository browser.