source: git/Singular/Makefile.in @ 6b32990

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