source: git/Singular/Makefile.am @ aee346d

spielwiese
Last change on this file since aee346d was 989d6b, checked in by Oleksandr Motsak <motsak@…>, 10 years ago
Minor fixes + cleanup
  • Property mode set to 100644
File size: 10.2 KB
Line 
1ACLOCAL_AMFLAGS = -I ../m4
2
3#LD_DYN_FLAGS   = -ldl -rdynamic
4#LD_LIBC                = -lc
5#SFLAGS         = -fpic -DPIC
6#SLDFLAGS       = -shared
7#STATIC_LDFLAGS = -static
8
9# WARNCFLAGS = -Wunused-parameter
10# clang has also: -Wunneeded-internal-declaration
11
12GIT_VERSION := $(shell $(top_srcdir)/git-version-gen $(top_srcdir)/.tarball-git-version)
13
14AM_CPPFLAGS = -I${top_srcdir} -I${top_builddir} -I${top_srcdir}/numeric -I${top_builddir}/numeric -I${top_srcdir}/kernel -I${top_builddir}/kernel -I${top_srcdir}/libpolys -I${top_builddir}/libpolys $(GMP_CFLAGS) -I${top_srcdir}/factory/include -I${top_builddir}/factory/include $(FACTORY_CFLAGS) $(NTL_CFLAGS) $(FLINT_CFLAGS) -DHAVE_CONFIG_H  -DGIT_VERSION='"$(GIT_VERSION)"'
15
16if ENABLE_FACTORY
17  USE_FACTORY = -L${top_builddir}/factory
18else
19  USE_FACTORY =
20endif
21
22if HAVE_GFANLIB
23  USE_GFANLIB = ${top_builddir}/dyn_modules/callgfanlib/gfanlib.la ${abs_top_builddir}/gfanlib/libgfan.la ${CDDGMPLDFLAGS}
24else
25  USE_GFANLIB =
26endif
27
28AM_LDFLAGS = -L${top_builddir}/Singular -L${top_builddir}/numeric -L${top_builddir}/kernel -L${top_builddir}/libpolys/polys  -L${top_builddir}/libpolys/coeffs -L${top_builddir}/libpolys/reporter -L${top_builddir}/libpolys/misc $(USE_FACTORY) -L${top_builddir}/omalloc -L${top_builddir}/resources
29
30########################### Dynamic Modules... #########################
31if ENABLE_P_PROCS_DYNAMIC
32  moduledir = $(libexecdir)/singular/MOD
33else !ENABLE_P_PROCS_DYNAMIC
34  moduledir = $(libdir)/singular
35endif !ENABLE_P_PROCS_DYNAMIC
36
37##########################################################################
38module_LTLIBRARIES = pyobject.la
39
40pyobject_la_SOURCES = pyobject.cc
41
42pyobject_la_CXXFLAGS = $(PYTHON_CSPEC)
43pyobject_la_CPPFLAGS = $(PYTHON_CPPFLAGS)  ${AM_CPPFLAGS}
44
45pyobject_la_LDFLAGS = $(PYTHON_EXTRA_LIBS)  $(PYTHON_LSPEC) ${AM_LDFLAGS} $(PYTHON_EXTRA_LDFLAGS) $(PYTHON_LDFLAGS) -module -export-dynamic -avoid-version -flat_namespace -weak_reference_mismatches weak -undefined dynamic_lookup
46###  -export-dynamic -shared -module -avoid-version (add to all DMs?)
47
48##########################################################################
49if PYTHON_USE
50  PY=pyobject.la  $(PYTHON_EXTRA_LIBS)  $(PYTHON_LSPEC) ${AM_LDFLAGS} $(PYTHON_EXTRA_LDFLAGS) $(PYTHON_LDFLAGS)
51else !PYTHON_USE
52  PY=
53endif !PYTHON_USE
54
55if SI_EMBED_PYTHON
56 EMBED_PYOBJECT   = ${PY} ${top_builddir}/dyn_modules/syzextra/syzextra.la ${USE_GFANLIB}
57else !SI_EMBED_PYTHON
58  EMBED_PYOBJECT =
59endif !SI_EMBED_PYTHON
60
61########################### libSingular* #########################
62
63libSingular_LTLIBRARIES = libSingular.la
64libSingulardir = $(libdir)/singular
65
66libSingular_la_CPPFLAGS = ${AM_CPPFLAGS} -DLIBSINGULAR
67
68SOURCES =    Minor.cc\
69   MinorInterface.cc\
70   MinorProcessor.cc\
71   links/asciiLink.cc\
72   attrib.cc\
73   blackbox.cc\
74   calcSVD.cc\
75   cntrlc.cc\
76   countedref.cc\
77   denom_list.cc\
78   eigenval_ip.cc\
79   extra.cc\
80   feOpt.cc\
81   fehelp.cc\
82   fevoices.cc\
83   fglm.cc\
84   gms.cc\
85   grammar.cc\
86   interpolation.cc\
87   iparith.cc\
88   ipassign.cc\
89   ipconv.cc\
90   ipid.cc\
91   iplib.cc\
92   ipprint.cc\
93   ipshell.cc\
94   janet.cc\
95   libparse.cc\
96   linearAlgebra_ip.cc\
97   lists.cc\
98   maps_ip.cc\
99   minpoly.cc\
100   misc_ip.cc\
101   mod_lib.cc\
102   links/ndbm.cc\
103   newstruct.cc\
104   pcv.cc\
105   links/pipeLink.cc\
106   scanner.cc\
107   sdb.cc\
108   links/s_buff.cc\
109   links/silink.cc\
110   links/sing_dbm.cc\
111   sing_win.cc\
112   links/slInit_Static.cc\
113   links/ssiLink.cc\
114   links/semaphore.c\
115   subexpr.cc\
116   pyobject_setup.cc\
117   singmathic.cc\
118   walk.cc\
119   walk_ip.cc\
120   wrapper.cc\
121   fereadl.c mmstd.c claptmpl.cc\
122   rlimit.c
123
124#   links/slInit_Dynamic.cc
125
126libSingular_la_SOURCES   = $(SOURCES)
127
128SingularHEADERS =    Cache.h \
129   CacheImplementation.h \
130   Minor.h \
131   MinorInterface.h \
132   MinorProcessor.h \
133   attrib.h \
134   blackbox.h \
135   cntrlc.h \
136   countedref.h \
137   links/dbm_sl.h \
138   distrib.h \
139   eigenval_ip.h \
140   feOpt.h feOptTab.h fehelp.h \
141   fglm.h \
142   gms.h \
143   grammar.h \
144   interpolation.h \
145   idrec.h \
146   ipconv.h \
147   ipid.h \
148   ipprint.h \
149   ipshell.h \
150   janet.h \
151   libparse.h \
152   libsingular.h \
153   linearAlgebra_ip.h\
154   lists.h \
155   locals.h \
156   maps_ip.h \
157   minpoly.h \
158   misc_ip.h \
159   mmalloc.h \
160   mod_lib.h \
161   omSingularConfig.h \
162   links/ndbm.h \
163   newstruct.h \
164   pcv.h \
165   links/pipeLink.h \
166   pyobject_setup.h \
167   run.h \
168   sdb.h \
169   links/silink.h \
170   links/s_buff.h \
171   links/sing_dbm.h \
172   sing_win.h \
173   links/slInit.h \
174   links/ssiLink.h \
175   links/simpleipc.h \
176   si_signals.h \
177   stype.h \
178   subexpr.h \
179   table.h \
180   tok.h \
181   walk.h \
182   rlimit.h
183
184
185# -DMAKE_DISTRIBUTION
186
187# plural_cmd.inc
188nodist_libSingular_la_SOURCES = feOpt.inc iparith.inc
189
190libSingular_la_LDFLAGS    = ${AM_LDFLAGS} ${EMBED_PYOBJECT} \
191-lnumeric -lkernel -lpolys -lcoeffs -lreporter -lmisc \
192$(FACTORY_LIBS) -lomalloc -lresources $(FLINT_LIBS) $(NTL_LIBS) $(GMP_LIBS) ${USEPPROCSDYNAMICLDFLAGS} ${USEPPROCSDYNAMICLD}
193
194libSingular_la_LIBADD      = ${EMBED_PYOBJECT} \
195-lnumeric -lkernel -lpolys -lcoeffs -lreporter -lmisc \
196$(FACTORY_LIBS) -lomalloc -lresources $(FLINT_LIBS) $(NTL_LIBS) $(GMP_LIBS) ${USEPPROCSDYNAMICLDFLAGS} ${USEPPROCSDYNAMICLD}
197
198# ${top_builddir}/numeric/libnumeric.la ${top_builddir}/kernel/libkernel.la ${top_builddir}/libpolys/polys/libpolys.la
199
200
201
202libSingular_includedir = ${includedir}/singular/Singular/
203nobase_libSingular_include_HEADERS = $(SingularHEADERS)
204
205#########################################################
206# handle all the generated *.inc
207
208noinst_PROGRAMS = gentable1 feOptGen feOptES feOptTS
209
210gentable1_SOURCES = gentable.cc grammar.h tok.h table.h
211gentable1_CPPFLAGS = ${AM_CPPFLAGS}
212
213feOptGen_SOURCES = feOptGen.cc feOptGen.h
214feOptGen_CPPFLAGS = ${AM_CPPFLAGS}
215
216feOptES_SOURCES = feOptGen.cc feOptGen.h
217feOptES_CPPFLAGS = ${AM_CPPFLAGS} -DESINGULAR
218
219feOptTS_SOURCES = feOptGen.cc feOptGen.h
220feOptTS_CPPFLAGS = ${AM_CPPFLAGS} -DTSINGULAR
221
222########################### Singular* #########################
223
224EXTRA_PROGRAMS =  libparse Singulard
225
226# the "optional_programs" variable should be defined in the configure
227# script, and listed in an AC_SUBST macro
228optional_Singular_programs =
229
230bin_PROGRAMS = Singular ESingular TSingular $(optional_Singular_programs)
231
232Singular ESingular TSingular $(optional_Singular_programs): ${abs_builddir}/LIB
233
234nodist_Singular_SOURCES = libSingular.la
235
236Singular_SOURCES = tesths.cc mmalloc.cc fegetopt.c fegetopt.h utils.cc  utils.h
237
238Singular_LDADD = libSingular.la ${EMBED_PYOBJECT}
239
240Singular_LDFLAGS = -static ${AM_LDFLAGS} ${EMBED_PYOBJECT}
241
242Singulard_SOURCES = tesths.cc mmalloc.cc fegetopt.c fegetopt.h utils.cc  utils.h
243nodist_Singulard_SOURCES = libSingular.la
244
245#  ${EMBED_PYOBJECT_LDFLAGS}  ${EMBED_PYOBJECT_LDFLAGS}
246Singulard_LDADD = libSingular.la ${EMBED_PYOBJECT}
247
248Singulard_LDFLAGS = ${AM_LDFLAGS} ${EMBED_PYOBJECT}
249
250
251#### ESingular
252ESingular_CPPFLAGS = ${AM_CPPFLAGS} -DESINGULAR -DPROTO
253ESingular_LDFLAGS = -static ${AM_LDFLAGS}
254ESingular_LDADD =   -lreporter -lmisc -lomalloc -lresources
255
256ESingular_SOURCES = emacs.cc fegetopt.c fegetopt.h feOptES.inc feOpt.cc
257
258#### same for TSingular
259TSingular_CPPFLAGS = ${AM_CPPFLAGS} -DTSINGULAR -DPROTO
260TSingular_LDFLAGS = -static ${AM_LDFLAGS}
261TSingular_LDADD =   -lreporter -lmisc -lomalloc -lresources
262
263TSingular_SOURCES = emacs.cc fegetopt.c fegetopt.h feOptTS.inc feOpt.cc
264# utils.cc utils.h
265
266
267#### libparse
268libparse_CPPFLAGS = ${AM_CPPFLAGS} -DSTANDALONE_PARSER
269
270libparse_SOURCES = libparse.cc fegetopt.c fegetopt.h utils.cc  utils.h
271
272# # libSingular.la -lnumeric
273libparse_LDADD = -lomalloc
274libparse_LDFLAGS = -static ${AM_LDFLAGS}
275# TODO for libparse: DONE by Hans???
276# multiple definition of `category_out': libparse.cc v.s. utils.cc
277# undefined reference to `iiInitSingularProcinfo(procinfo*, char const*, char const*, int, long, int)'
278
279#########################################################
280# the Singular library (*.lib files)
281
282include ${srcdir}/singular-libs
283
284singularlibrarydir = ${datadir}/singular
285singularlibrary = $(SLIB0:%=LIB/%) $(SLIB1:%=LIB/%) $(PLIBS:%=LIB/%)
286nobase_dist_singularlibrary_DATA = LIB/tst.lib LIB/help.cnf ${singularlibrary}
287EXTRA_DIST = make_alllib.sh LIB/all.lib.tmpl singular-libs \
288             LIB/help.cnf links/slInit_Dynamic.cc
289
290singularalllibrarydir = ${datadir}/singular/LIB
291singularalllibrary = all.lib
292nobase_dist_singularalllibrary_DATA = all.lib
293
294all.lib: ${srcdir}/make_alllib.sh ${srcdir}/LIB/all.lib.tmpl ${singularlibrary}
295        ${srcdir}/make_alllib.sh ${srcdir}/LIB/all.lib.tmpl ${SLIB0} ${PLIBS}
296
297########################### TEST #########################
298TESTS_ENVIRONMENT = SINGULARPATH='${top_builddir}/Singular/LIB:${top_srcdir}/Singular/LIB:${top_builddir}/libpolys/polys/.libs:${top_builddir}/factory/gftables'
299TESTS_ENVIRONMENT += SINGULAR_ROOT_DIR='${top_builddir}'
300
301TESTS=test-s-r test-d-r
302
303check_PROGRAMS=$(TESTS)
304
305# Static versions
306test_s_r_SOURCES = test.cc
307# ${EMBED_PYOBJECT_LDFLAGS}
308test_s_r_LDADD = libSingular.la
309
310#-lnumeric -lkernel -lpolys -lcoeffs -lreporter -lmisc \
311# $(FACTORY_LIBS) -lomalloc -lresources $(FLINT_LIBS) \
312# $(NTL_LIBS) $(GMP_LIBS) ${USEPPROCSDYNAMICLDFLAGS} ${USEPPROCSDYNAMICLD} \
313#${EMBED_PYOBJECT}
314#${EMBED_PYOBJECT_LDFLAGS}
315
316test_s_r_LDFLAGS = -static ${AM_LDFLAGS}
317
318# Dynamic versions
319test_d_r_SOURCES = test.cc
320test_d_r_LDADD = libSingular.la
321
322#########################################################
323
324# These files are built first
325BUILT_SOURCES = feOpt.inc feOptTS.inc feOptES.inc iparith.inc all.lib plural_cmd.inc \
326                gftables MOD
327
328CLEANFILES = $(BUILT_SOURCES) $(EXTRA_PROGRAMS)
329
330clean-local:
331        if [ "${abs_builddir}" != "${abs_srcdir}" ]; then \
332          if [ -L ${abs_builddir}/LIB ]; then unlink ${abs_builddir}/LIB; fi \
333        fi
334
335feOpt.inc: feOptGen$(EXEEXT)
336        ${builddir}/feOptGen$(EXEEXT)
337
338feOptES.inc: feOptES$(EXEEXT)
339        ${builddir}/feOptES$(EXEEXT)
340
341feOptTS.inc: feOptTS$(EXEEXT)
342        ${builddir}/feOptTS$(EXEEXT)
343
344plural_cmd.inc iparith.inc: gentable1$(EXEEXT)
345        ${builddir}/gentable1$(EXEEXT)
346
347# # fake rule to fix parallel make http://www.gnu.org/s/hello/manual/automake/Multiple-Outputs.html
348# plural_cmd.inc: iparith.inc
349
350gftables: ${top_srcdir}/factory/gftables
351        ln -snf ${top_srcdir}/factory/gftables ${builddir}/gftables
352
353${abs_builddir}/LIB: ${srcdir}/LIB
354        if [ "${abs_builddir}" != "${abs_srcdir}" ]; then \
355          ln -snf ${abs_srcdir}/LIB ${abs_builddir}/; \
356        fi
357
358MOD: ${top_builddir}/libpolys/polys/.libs
359        ln -snf ${top_builddir}/libpolys/polys/.libs/ ${builddir}/MOD
360
Note: See TracBrowser for help on using the repository browser.