import os, sys
from distutils.core import setup
from distutils.extension import Extension
if not os.environ.has_key('SAGE_ROOT'):
print " ERROR: The environment variable SAGE_ROOT must be defined."
sys.exit(1)
else:
SAGE_ROOT = os.environ['SAGE_ROOT']
SAGE_LOCAL = SAGE_ROOT + '/local'
SAGE_DEVEL = SAGE_ROOT + '/devel'
SAGE_INC = SAGE_LOCAL + '/include/'
if os.environ.has_key('SAGE_BLAS'):
BLAS=os.environ['SAGE_BLAS']
BLAS2=os.environ['SAGE_BLAS']
elif os.path.exists('%s/lib/libatlas.so'%os.environ['SAGE_LOCAL']):
BLAS='cblas'
BLAS2='atlas'
elif os.path.exists('/usr/lib/libcblas.dylib') or \
os.path.exists('/usr/lib/libcblas.so'):
BLAS='cblas'
BLAS2='atlas'
elif os.path.exists('/usr/lib/libblas.dll.a'):
BLAS='gslcblas'
BLAS2='gslcblas'
else:
BLAS='gslcblas'
BLAS2='gslcblas'
numpy_include_dirs = [SAGE_LOCAL + '/lib/python/site-packages/numpy/core/include']
numpy_depends = [SAGE_LOCAL + '/lib/python/site-packages/numpy/core/include/numpy/_numpyconfig.h']
flint_depends = [SAGE_INC + 'FLINT/flint.h']
singular_depends = [SAGE_INC + 'libsingular.h', SAGE_INC + 'givaro/givconfig.h']
ginac_depends = [SAGE_INC + 'pynac/ginac.h']
import ast
m4ri_extra_compile_args = []
for line in open(SAGE_INC + "m4ri/m4ri_config.h"):
if not line.startswith("#define __M4RI_SIMD_CFLAGS"):
continue
m4ri_sse2_cflags = ast.literal_eval(line[len("#define __M4RI_SIMD_CFLAGS"):].strip())
m4ri_extra_compile_args = [flag.strip() for flag in m4ri_sse2_cflags.split(" ") if flag.strip()]
break
singular_libs = ['m', 'readline', 'singular', 'givaro', 'ntl', 'gmpxx', 'gmp']
polybori_extra_compile_args = []
for line in open(SAGE_LOCAL + "/share/polybori/flags.conf"):
if not line.startswith("CPPDEFINES"):
continue
polybori_extra_compile_args = ["-D"+e for e in ast.literal_eval(line[len("CPPDEFINES = "):])]
break
def uname_specific(name, value, alternative):
if name in os.uname()[0]:
return value
else:
return alternative
ext_modules = [
Extension('sage.algebras.quatalg.quaternion_algebra_element',
sources = ['sage/algebras/quatalg/quaternion_algebra_element.pyx'],
language='c++',
libraries = ["csage", "flint", "gmp", "gmpxx", "m", "stdc++", "ntl"],
include_dirs = [SAGE_INC + 'FLINT/'],
depends = flint_depends),
Extension('sage.algebras.quatalg.quaternion_algebra_cython',
sources = ['sage/algebras/quatalg/quaternion_algebra_cython.pyx'],
language='c++',
libraries = ["csage", "flint", "gmp", "gmpxx", "m", "stdc++", "ntl"]),
Extension('sage.calculus.var',
sources = ['sage/calculus/var.pyx']),
Extension('sage.calculus.riemann',
sources = ['sage/calculus/riemann.pyx'],
include_dirs = numpy_include_dirs,
depends = numpy_depends),
Extension('sage.calculus.interpolators',
sources = ['sage/calculus/interpolators.pyx'],
include_dirs = numpy_include_dirs,
depends = numpy_depends),
Extension('sage.categories.action',
sources = ['sage/categories/action.pyx']),
Extension('sage.categories.category_singleton',
sources = ['sage/categories/category_singleton.pyx']),
Extension('sage.categories.functor',
sources = ['sage/categories/functor.pyx']),
Extension('sage.categories.map',
sources = ['sage/categories/map.pyx']),
Extension('sage.categories.morphism',
sources = ['sage/categories/morphism.pyx']),
Extension('sage.categories.examples.semigroups_cython',
sources = ['sage/categories/examples/semigroups_cython.pyx']),
Extension('sage.coding.binary_code',
sources = ['sage/coding/binary_code.pyx']),
Extension('sage.combinat.expnums',
sources = ['sage/combinat/expnums.pyx'],
libraries = ['gmp']),
Extension('sage.combinat.matrices.dancing_links',
sources = ['sage/combinat/matrices/dancing_links.pyx'],
libraries = ["stdc++"],
language='c++'),
Extension('sage.structure.list_clone',
sources=['sage/structure/list_clone.pyx']),
Extension('sage.structure.list_clone_timings_cy',
sources=['sage/structure/list_clone_timings_cy.pyx']),
Extension('sage.sets.finite_set_map_cy',
sources=['sage/sets/finite_set_map_cy.pyx']),
Extension('sage.combinat.partitions',
sources = ['sage/combinat/partitions.pyx',
'sage/combinat/partitions_c.cc'],
libraries = ['gmp', 'mpfr'],
depends = ['sage/combinat/partitions_c.h'],
language='c++'),
Extension('sage.combinat.words.word_datatypes',
sources=['sage/combinat/words/word_datatypes.pyx'],
include_dirs = ['sage/combinat/words'],
libraries = ['stdc++'],
language='c++'),
Extension('sage.combinat.permutation_cython',
sources=['sage/combinat/permutation_cython.pyx']),
Extension('sage.combinat.dict_addition',
sources=['sage/combinat/dict_addition.pyx']),
Extension('sage.combinat.debruijn_sequence',
sources=['sage/combinat/debruijn_sequence.pyx']),
Extension('sage.combinat.degree_sequences',
sources = ['sage/combinat/degree_sequences.pyx']),
Extension('sage.combinat.combinat_cython',
sources=['sage/combinat/combinat_cython.pyx'],
libraries=['gmp']),
Extension('sage.combinat.enumeration_mod_permgroup',
sources=['sage/combinat/enumeration_mod_permgroup.pyx']),
Extension('sage.crypto.boolean_function',
sources = ['sage/crypto/boolean_function.pyx']),
Extension('sage.ext.c_lib',
sources = ['sage/ext/c_lib.pyx']),
Extension('sage.ext.fast_callable',
sources = ['sage/ext/fast_callable.pyx']),
Extension('sage.ext.fast_eval',
sources = ['sage/ext/fast_eval.pyx']),
Extension('sage.ext.interactive_constructors_c',
sources = ['sage/ext/interactive_constructors_c.pyx']),
Extension('sage.ext.multi_modular',
sources = ['sage/ext/multi_modular.pyx'],
extra_compile_args = ['-std=c99'],
libraries=['gmp']),
Extension('sage.finance.fractal',
sources = ['sage/finance/fractal.pyx'],
depends = numpy_depends),
Extension('sage.finance.markov_multifractal_cython',
sources = ['sage/finance/markov_multifractal_cython.pyx']),
Extension('sage.finance.time_series',
sources = ['sage/finance/time_series.pyx'],
include_dirs = numpy_include_dirs,
depends = numpy_depends),
Extension('sage.functions.prime_pi',
sources = ['sage/functions/prime_pi.pyx']),
Extension('sage.games.sudoku_backtrack',
sources = ['sage/games/sudoku_backtrack.pyx']),
Extension('sage.geometry.point_collection',
sources = ['sage/geometry/point_collection.pyx']),
Extension('sage.geometry.toric_lattice_element',
sources = ['sage/geometry/toric_lattice_element.pyx'],
libraries=['gmp']),
Extension('sage.geometry.integral_points',
sources = ['sage/geometry/integral_points.pyx']),
Extension('sage.geometry.triangulation.base',
sources = ['sage/geometry/triangulation/functions.cc',
'sage/geometry/triangulation/data.cc',
'sage/geometry/triangulation/base.pyx',
'sage/geometry/triangulation/triangulations.cc'],
language="c++"),
Extension('sage.graphs.chrompoly',
sources = ['sage/graphs/chrompoly.pyx'],
libraries = ['gmp']),
Extension('sage.graphs.cliquer',
sources = ['sage/graphs/cliquer.pyx'],
libraries = ['cliquer']),
Extension('sage.graphs.graph_decompositions.vertex_separation',
sources = ['sage/graphs/graph_decompositions/vertex_separation.pyx']),
Extension('sage.graphs.convexity_properties',
sources = ['sage/graphs/convexity_properties.pyx']),
Extension('sage.graphs.comparability',
sources = ['sage/graphs/comparability.pyx']),
Extension('sage.graphs.generic_graph_pyx',
sources = ['sage/graphs/generic_graph_pyx.pyx'],
libraries = ['gmp']),
Extension('sage.graphs.graph_generators_pyx',
sources = ['sage/graphs/graph_generators_pyx.pyx']),
Extension('sage.graphs.distances_all_pairs',
sources = ['sage/graphs/distances_all_pairs.pyx']),
Extension('sage.graphs.base.static_sparse_graph',
sources = ['sage/graphs/base/static_sparse_graph.pyx']),
Extension('sage.graphs.modular_decomposition.modular_decomposition',
sources = ['sage/graphs/modular_decomposition/modular_decomposition.pyx'],
depends = ['sage/graphs/modular_decomposition/src/dm.c',
'sage/graphs/modular_decomposition/src/dm_english.h']),
Extension('sage.graphs.matchpoly',
sources = ['sage/graphs/matchpoly.pyx'],
libraries = ['gmp', 'flint'],
include_dirs = [SAGE_INC + 'FLINT/'],
extra_compile_args = ['-std=c99'],
depends = flint_depends),
Extension('sage.graphs.planarity',
sources = ['sage/graphs/planarity/graphColorVertices.c',
'sage/graphs/planarity/graphColorVertices_Extensions.c',
'sage/graphs/planarity/graphDrawPlanar.c',
'sage/graphs/planarity/graphDrawPlanar_Extensions.c',
'sage/graphs/planarity/graphEmbed.c',
'sage/graphs/planarity/graphExtensions.c',
'sage/graphs/planarity/graphIO.c',
'sage/graphs/planarity/graphIsolator.c',
'sage/graphs/planarity/graphK23Search.c',
'sage/graphs/planarity/graphK23Search_Extensions.c',
'sage/graphs/planarity/graphK33Search.c',
'sage/graphs/planarity/graphK33Search_Extensions.c',
'sage/graphs/planarity/graphK4Search.c',
'sage/graphs/planarity/graphK4Search_Extensions.c',
'sage/graphs/planarity/graphNonplanar.c',
'sage/graphs/planarity/graphOuterplanarObstruction.c',
'sage/graphs/planarity/graphPreprocess.c',
'sage/graphs/planarity/graphTests.c',
'sage/graphs/planarity/graphUtils.c',
'sage/graphs/planarity/listcoll.c',
'sage/graphs/planarity/planarity.c',
'sage/graphs/planarity/planarityCommandLine.c',
'sage/graphs/planarity/planarityRandomGraphs.c',
'sage/graphs/planarity/planaritySpecificGraph.c',
'sage/graphs/planarity/planarityUtils.c',
'sage/graphs/planarity/stack.c',
'sage/graphs/planarity.pyx'],
depends = ['sage/graphs/planarity/appconst.h',
'sage/graphs/planarity/graphColorVertices.h',
'sage/graphs/planarity/graphColorVertices.private.h',
'sage/graphs/planarity/graphDrawPlanar.h',
'sage/graphs/planarity/graphDrawPlanar.private.h',
'sage/graphs/planarity/graphExtensions.h',
'sage/graphs/planarity/graphExtensions.private.h',
'sage/graphs/planarity/graphFunctionTable.h',
'sage/graphs/planarity/graph.h',
'sage/graphs/planarity/graphK23Search.h',
'sage/graphs/planarity/graphK23Search.private.h',
'sage/graphs/planarity/graphK33Search.h',
'sage/graphs/planarity/graphK33Search.private.h',
'sage/graphs/planarity/graphK4Search.h',
'sage/graphs/planarity/graphK4Search.private.h',
'sage/graphs/planarity/graphStructures.h',
'sage/graphs/planarity/listcoll.h',
'sage/graphs/planarity/planarity.h',
'sage/graphs/planarity/platformTime.h',
'sage/graphs/planarity/stack.h']),
Extension('sage.graphs.graph_decompositions.rankwidth',
sources = ['sage/graphs/graph_decompositions/rankwidth.pyx']),
Extension('sage.graphs.spanning_tree',
sources = ['sage/graphs/spanning_tree.pyx']),
Extension('sage.graphs.trees',
sources = ['sage/graphs/trees.pyx']),
Extension('sage.graphs.genus',
sources = ['sage/graphs/genus.pyx']),
Extension('sage.graphs.base.c_graph',
sources = ['sage/graphs/base/c_graph.pyx']),
Extension('sage.graphs.base.sparse_graph',
sources = ['sage/graphs/base/sparse_graph.pyx']),
Extension('sage.graphs.base.dense_graph',
sources = ['sage/graphs/base/dense_graph.pyx']),
Extension('sage.groups.group',
sources = ['sage/groups/group.pyx']),
Extension('sage.groups.perm_gps.permgroup_element',
sources = ['sage/groups/perm_gps/permgroup_element.pyx']),
Extension('sage.groups.perm_gps.partn_ref.automorphism_group_canonical_label',
sources = ['sage/groups/perm_gps/partn_ref/automorphism_group_canonical_label.pyx'],
libraries = ['gmp', 'flint'],
include_dirs = [SAGE_INC + 'FLINT/'],
extra_compile_args = ['-std=c99'],
depends = flint_depends),
Extension('sage.groups.perm_gps.partn_ref.double_coset',
sources = ['sage/groups/perm_gps/partn_ref/double_coset.pyx'],
libraries = ['gmp', 'flint'],
include_dirs = [SAGE_INC + 'FLINT/'],
extra_compile_args = ['-std=c99'],
depends = flint_depends),
Extension('sage.groups.perm_gps.partn_ref.refinement_binary',
sources = ['sage/groups/perm_gps/partn_ref/refinement_binary.pyx'],
libraries = ['gmp', 'flint'],
include_dirs = [SAGE_INC + 'FLINT/'],
extra_compile_args = ['-std=c99'],
depends = flint_depends),
Extension('sage.groups.perm_gps.partn_ref.refinement_graphs',
sources = ['sage/groups/perm_gps/partn_ref/refinement_graphs.pyx'],
libraries = ['gmp', 'flint'],
include_dirs = [SAGE_INC + 'FLINT/'],
extra_compile_args = ['-std=c99'],
depends = flint_depends),
Extension('sage.groups.perm_gps.partn_ref.refinement_lists',
sources = ['sage/groups/perm_gps/partn_ref/refinement_lists.pyx'],
libraries = ['gmp', 'flint'],
include_dirs = [SAGE_INC + 'FLINT/'],
extra_compile_args = ['-std=c99'],
depends = flint_depends),
Extension('sage.groups.perm_gps.partn_ref.refinement_matrices',
sources = ['sage/groups/perm_gps/partn_ref/refinement_matrices.pyx'],
libraries = ['gmp', 'flint'],
include_dirs = [SAGE_INC + 'FLINT/'],
extra_compile_args = ['-std=c99'],
depends = flint_depends),
Extension('sage.groups.perm_gps.partn_ref.refinement_python',
sources = ['sage/groups/perm_gps/partn_ref/refinement_python.pyx'],
libraries = ['gmp', 'flint'],
include_dirs = [SAGE_INC + 'FLINT/'],
extra_compile_args = ['-std=c99'],
depends = flint_depends),
Extension('sage.gsl.callback',
sources = ['sage/gsl/callback.pyx'],
libraries = ['gsl', BLAS, BLAS2],
define_macros=[('GSL_DISABLE_DEPRECATED','1')]),
Extension('sage.gsl.dwt',
sources = ['sage/gsl/dwt.pyx'],
libraries=['gsl',BLAS],
define_macros=[('GSL_DISABLE_DEPRECATED','1')]),
Extension('sage.gsl.fft',
sources = ['sage/gsl/fft.pyx'],
libraries = ['gsl', BLAS, BLAS2],
define_macros=[('GSL_DISABLE_DEPRECATED','1')]),
Extension('sage.gsl.gsl_array',
sources = ['sage/gsl/gsl_array.pyx'],
libraries=['gsl', BLAS, BLAS2],
define_macros=[('GSL_DISABLE_DEPRECATED','1')]),
Extension('sage.gsl.integration',
sources = ['sage/gsl/integration.pyx'],
define_macros=[('GSL_DISABLE_DEPRECATED','1')],
libraries=['gsl',BLAS, BLAS2]),
Extension('sage.gsl.interpolation',
sources = ['sage/gsl/interpolation.pyx'],
libraries = ['gsl', BLAS, BLAS2],
define_macros=[('GSL_DISABLE_DEPRECATED','1')]),
Extension('sage.gsl.ode',
sources = ['sage/gsl/ode.pyx'],
libraries=['gsl',BLAS, BLAS2],
define_macros=[('GSL_DISABLE_DEPRECATED','1')]),
Extension('sage.gsl.probability_distribution',
sources = ['sage/gsl/probability_distribution.pyx'],
libraries=['gsl', BLAS, BLAS2],
define_macros=[('GSL_DISABLE_DEPRECATED','1')]),
Extension('sage.interacts.library_cython',
sources = ['sage/interacts/library_cython.pyx'],
libraries = []),
Extension('sage.libs.ecl',
sources = ["sage/libs/ecl.pyx"],
libraries = ["ecl"],
include_dirs = [SAGE_INC + 'ecl/'],
depends = [SAGE_INC + 'ecl/ecl.h']),
Extension('sage.libs.flint.flint',
sources = ["sage/libs/flint/flint.pyx"],
libraries = ["csage", "flint", "gmp", "gmpxx", "m", "stdc++"],
include_dirs = [SAGE_INC + 'FLINT/'],
extra_compile_args=["-std=c99", "-D_XPG6"],
depends = flint_depends),
Extension('sage.libs.flint.fmpz_poly',
sources = ["sage/libs/flint/fmpz_poly.pyx"],
libraries = ["csage", "flint", "gmp", "gmpxx", "m", "stdc++"],
include_dirs = [SAGE_INC + 'FLINT/'],
extra_compile_args=["-std=c99", "-D_XPG6"],
depends = flint_depends),
Extension('sage.libs.fplll.fplll',
sources = ['sage/libs/fplll/fplll.pyx'],
libraries = ['gmp', 'mpfr', 'stdc++', 'fplll'],
language="c++",
include_dirs = [SAGE_INC + 'fplll'],
depends = [SAGE_INC + "fplll/fplll.h"]),
Extension('sage.libs.linbox.linbox',
sources = ['sage/libs/linbox/linbox.pyx'],
libraries = ['linboxsage', 'ntl', 'linbox',
'stdc++', 'givaro', 'gmp', 'gmpxx', BLAS, BLAS2],
language = 'c++',
depends = [SAGE_INC + 'givaro/givconfig.h']),
Extension('sage.libs.lcalc.lcalc_Lfunction',
sources = ['sage/libs/lcalc/lcalc_Lfunction.pyx'],
libraries = ['m', 'ntl', 'mpfr', 'gmp', 'gmpxx',
'Lfunction', 'stdc++'],
include_dirs = [SAGE_INC + "lcalc/"],
extra_compile_args=["-O3", "-ffast-math"],
language = 'c++'),
Extension('sage.libs.libecm',
sources = ['sage/libs/libecm.pyx'],
libraries = ['ecm', 'gmp'],
extra_link_args = uname_specific("Linux", ["-Wl,-z,noexecstack"],
[]),
depends = [SAGE_INC + "ecm.h"]),
Extension('sage.libs.mwrank.mwrank',
sources = ["sage/libs/mwrank/mwrank.pyx",
"sage/libs/mwrank/wrap.cc"],
define_macros = [("NTL_ALL",None)],
depends = ["sage/libs/mwrank/wrap.h"] +
[ SAGE_INC + "eclib/" + h for h in
["curve.h","egr.h","descent.h","points.h","isogs.h",
"marith.h","htconst.h","interface.h"]
],
libraries = ["jc",
"ntl", "gmp", "gmpxx", "stdc++", "m", "pari"]),
Extension('sage.libs.pari.gen',
sources = ["sage/libs/pari/gen.pyx"],
libraries = ['pari', 'gmp']),
Extension('sage.libs.ppl',
sources = ['sage/libs/ppl.pyx', 'sage/libs/ppl_shim.cc'],
libraries = ['ppl', 'gmpxx', 'gmp', 'm'],
language="c++",
depends = [SAGE_INC + "ppl.hh"]),
Extension('sage.libs.ratpoints',
sources = ["sage/libs/ratpoints.pyx"],
depends = [SAGE_INC + 'ratpoints.h'],
libraries = ["ratpoints", "gmp"]),
Extension('sage.libs.singular.singular',
sources = ['sage/libs/singular/singular.pyx'],
libraries = singular_libs,
language="c++",
include_dirs = [SAGE_INC + 'singular', SAGE_INC + 'factory'],
depends = singular_depends),
Extension('sage.libs.singular.polynomial',
sources = ['sage/libs/singular/polynomial.pyx'],
libraries = singular_libs,
language="c++",
include_dirs = [SAGE_INC + 'singular', SAGE_INC + 'factory'],
depends = singular_depends),
Extension('sage.libs.singular.ring',
sources = ['sage/libs/singular/ring.pyx'],
libraries = singular_libs,
language="c++",
include_dirs = [SAGE_INC + 'singular', SAGE_INC + 'factory'],
depends = singular_depends),
Extension('sage.libs.singular.groebner_strategy',
sources = ['sage/libs/singular/groebner_strategy.pyx'],
libraries = singular_libs,
language="c++",
include_dirs = [SAGE_INC + 'singular', SAGE_INC + 'factory'],
depends = singular_depends),
Extension('sage.libs.singular.function',
sources = ['sage/libs/singular/function.pyx'],
libraries = singular_libs,
language="c++",
include_dirs = [SAGE_INC +'singular', SAGE_INC + 'factory'],
depends = singular_depends),
Extension('sage.libs.singular.option',
sources = ['sage/libs/singular/option.pyx'],
libraries = singular_libs,
language="c++",
include_dirs = [SAGE_INC + 'singular', SAGE_INC + 'factory'],
depends = singular_depends),
Extension('sage.libs.symmetrica.symmetrica',
sources = ["sage/libs/symmetrica/%s"%s for s in ["symmetrica.pyx"]],
include_dirs = ['/usr/include/malloc/'],
libraries = ["symmetrica"],
depends = [SAGE_INC + "symmetrica/def.h"]),
Extension('sage.libs.mpmath.utils',
sources = ["sage/libs/mpmath/utils.pyx"],
libraries = ['mpfr', 'gmp']),
Extension('sage.libs.mpmath.ext_impl',
sources = ["sage/libs/mpmath/ext_impl.pyx"],
libraries = ['mpfr', 'gmp']),
Extension('sage.libs.mpmath.ext_main',
sources = ["sage/libs/mpmath/ext_main.pyx"],
libraries = ['gmp']),
Extension('sage.libs.mpmath.ext_libmp',
sources = ["sage/libs/mpmath/ext_libmp.pyx"],
libraries = ['gmp']),
Extension('sage.libs.cremona.homspace',
sources = ["sage/libs/cremona/homspace.pyx"],
libraries = ['jc', 'gmpxx', 'ntl', 'gmp',
'm', 'stdc++', 'pari'],
language='c++',
define_macros = [("NTL_ALL",None)],
depends = [ SAGE_INC + "eclib/" + h for h in
["interface.h","bigrat.h","rat.h","curve.h",
"moddata.h","symb.h","cusp.h","homspace.h","mat.h"]
]),
Extension('sage.libs.cremona.mat',
sources = ["sage/libs/cremona/mat.pyx"],
libraries = ['jc', 'gmpxx', 'ntl',
'gmp', 'm', 'stdc++', ],
language='c++',
define_macros = [("NTL_ALL",None)],
depends = [ SAGE_INC + "eclib/" + h for h in
["interface.h","bigrat.h","rat.h","curve.h",
"moddata.h","symb.h","cusp.h","homspace.h","mat.h"]
]),
Extension('sage.libs.cremona.newforms',
sources = ["sage/libs/cremona/newforms.pyx"],
libraries = ['jc', 'gmpxx', 'ntl', 'gmp',
'm', 'stdc++', 'pari'],
language='c++',
define_macros = [("NTL_ALL",None)],
depends = [ SAGE_INC + "eclib/" + h for h in
["interface.h","bigrat.h","rat.h","curve.h",
"moddata.h","symb.h","cusp.h","xsplit.h","method.h",
"oldforms.h","homspace.h","cperiods.h","newforms.h"]
]),
Extension('sage.libs.ntl.ntl_GF2',
sources = ["sage/libs/ntl/ntl_GF2.pyx"],
libraries = ["csage", "ntl", "gmp", "gmpxx", "stdc++"],
language='c++'),
Extension('sage.libs.ntl.ntl_GF2E',
sources = ["sage/libs/ntl/ntl_GF2E.pyx"],
libraries = ["csage", "ntl", "gmp", "gmpxx", "m", "stdc++"],
language='c++'),
Extension('sage.libs.ntl.ntl_GF2EContext',
sources = ["sage/libs/ntl/ntl_GF2EContext.pyx"],
libraries = ["csage", "ntl", "gmp", "gmpxx", "m", "stdc++"],
language='c++'),
Extension('sage.libs.ntl.ntl_GF2EX',
sources = ["sage/libs/ntl/ntl_GF2EX.pyx"],
libraries = ["csage", "ntl", "gmp", "gmpxx", "m", "stdc++"],
language='c++'),
Extension('sage.libs.ntl.ntl_GF2X',
sources = ["sage/libs/ntl/ntl_GF2X.pyx"],
libraries = ["csage", "ntl", "gmp", "gmpxx", "m", "stdc++"],
language='c++'),
Extension('sage.libs.ntl.ntl_lzz_p',
sources = ["sage/libs/ntl/ntl_lzz_p.pyx"],
libraries = ["csage", "ntl", "gmp", "gmpxx", "m", "stdc++"],
language='c++'),
Extension('sage.libs.ntl.ntl_lzz_pContext',
sources = ["sage/libs/ntl/ntl_lzz_pContext.pyx"],
libraries = ["csage", "ntl", "gmp", "gmpxx", "m", "stdc++"],
language='c++'),
Extension('sage.libs.ntl.ntl_lzz_pX',
sources = ["sage/libs/ntl/ntl_lzz_pX.pyx"],
libraries = ["csage", "ntl", "gmp", "gmpxx", "m", "stdc++"],
language='c++'),
Extension('sage.libs.ntl.ntl_mat_GF2',
sources = ["sage/libs/ntl/ntl_mat_GF2.pyx"],
libraries = ["csage", "ntl", "gmp", "gmpxx", "m", "stdc++"],
language='c++'),
Extension('sage.libs.ntl.ntl_mat_GF2E',
sources = ["sage/libs/ntl/ntl_mat_GF2E.pyx"],
libraries = ["csage", "ntl", "gmp", "gmpxx", "m", "stdc++"],
language='c++'),
Extension('sage.libs.ntl.ntl_mat_ZZ',
sources = ["sage/libs/ntl/ntl_mat_ZZ.pyx"],
libraries = ["csage", "ntl", "gmp", "gmpxx", "m", "stdc++"],
language='c++'),
Extension('sage.libs.ntl.ntl_ZZ',
sources = ["sage/libs/ntl/ntl_ZZ.pyx"],
libraries = ["csage", "ntl", "gmp", "gmpxx", "m", "stdc++"],
language='c++'),
Extension('sage.libs.ntl.ntl_ZZX',
sources = ["sage/libs/ntl/ntl_ZZX.pyx"],
libraries = ["csage", "ntl", "gmp", "gmpxx", "m", "stdc++"],
language='c++'),
Extension('sage.libs.ntl.ntl_ZZ_p',
sources = ["sage/libs/ntl/ntl_ZZ_p.pyx"],
libraries = ["csage", "ntl", "gmp", "gmpxx", "m", "stdc++"],
language='c++'),
Extension('sage.libs.ntl.ntl_ZZ_pContext',
sources = ["sage/libs/ntl/ntl_ZZ_pContext.pyx"],
libraries = ["csage", "ntl", "gmp", "gmpxx", "m", "stdc++"],
language='c++'),
Extension('sage.libs.ntl.ntl_ZZ_pE',
sources = ["sage/libs/ntl/ntl_ZZ_pE.pyx"],
libraries = ["csage", "ntl", "gmp", "gmpxx", "m", "stdc++"],
language='c++'),
Extension('sage.libs.ntl.ntl_ZZ_pEContext',
sources = ["sage/libs/ntl/ntl_ZZ_pEContext.pyx"],
libraries = ["csage", "ntl", "gmp", "gmpxx", "m", "stdc++"],
language='c++'),
Extension('sage.libs.ntl.ntl_ZZ_pEX',
sources = ["sage/libs/ntl/ntl_ZZ_pEX.pyx"],
libraries = ["csage", "ntl", "gmp", "gmpxx", "m", "stdc++"],
language='c++'),
Extension('sage.libs.ntl.ntl_ZZ_pX',
sources = ["sage/libs/ntl/ntl_ZZ_pX.pyx"],
libraries = ["csage", "ntl", "gmp", "gmpxx", "m", "stdc++"],
language='c++'),
Extension('sage.matrix.action',
sources = ['sage/matrix/action.pyx']),
Extension('sage.matrix.change_ring',
sources = ['sage/matrix/change_ring.pyx'],
libraries=[BLAS, BLAS2, 'gmp'],
include_dirs = numpy_include_dirs),
Extension('sage.matrix.matrix',
sources = ['sage/matrix/matrix.pyx']),
Extension('sage.matrix.matrix0',
sources = ['sage/matrix/matrix0.pyx']),
Extension('sage.matrix.matrix1',
sources = ['sage/matrix/matrix1.pyx'],
depends = numpy_depends),
Extension('sage.matrix.matrix2',
sources = ['sage/matrix/matrix2.pyx']),
Extension('sage.matrix.matrix_complex_double_dense',
sources = ['sage/matrix/matrix_complex_double_dense.pyx'],
libraries=[BLAS, BLAS2],
include_dirs = numpy_include_dirs,
depends = numpy_depends),
Extension('sage.matrix.matrix_cyclo_dense',
sources = ['sage/matrix/matrix_cyclo_dense.pyx'],
language = "c++",
libraries=['ntl', 'gmp']),
Extension('sage.matrix.matrix_dense',
sources = ['sage/matrix/matrix_dense.pyx']),
Extension('sage.matrix.matrix_double_dense',
sources = ['sage/matrix/matrix_double_dense.pyx'],
libraries=[BLAS, BLAS2],
include_dirs = numpy_include_dirs,
depends = numpy_depends),
Extension('sage.matrix.matrix_generic_dense',
sources = ['sage/matrix/matrix_generic_dense.pyx']),
Extension('sage.matrix.matrix_generic_sparse',
sources = ['sage/matrix/matrix_generic_sparse.pyx']),
Extension('sage.matrix.matrix_integer_2x2',
sources = ['sage/matrix/matrix_integer_2x2.pyx'],
libraries = ['gmp']),
Extension('sage.matrix.matrix_integer_dense',
sources = ['sage/matrix/matrix_integer_dense.pyx'],
extra_compile_args = ['-std=c99'] + m4ri_extra_compile_args,
depends = [SAGE_INC + 'm4ri/m4ri.h'],
libraries = ['iml', 'pari', 'm', 'gmp', BLAS, BLAS2]),
Extension('sage.matrix.matrix_integer_sparse',
sources = ['sage/matrix/matrix_integer_sparse.pyx'],
libraries = ['gmp']),
Extension('sage.matrix.matrix_mod2_dense',
sources = ['sage/matrix/matrix_mod2_dense.pyx'],
libraries = ['gmp','m4ri', 'gd', 'png12', 'z'],
extra_compile_args = ['-std=c99'] + m4ri_extra_compile_args,
depends = [SAGE_INC + "png.h", SAGE_INC + "m4ri/m4ri.h"]),
Extension('sage.matrix.matrix_mod2e_dense',
sources = ['sage/matrix/matrix_mod2e_dense.pyx'],
libraries = ['m4rie', 'm4ri', 'givaro', 'ntl', 'gmpxx', 'gmp', 'm', 'stdc++'],
depends = [SAGE_INC + "m4rie/m4rie.h"],
include_dirs = [SAGE_INC + 'm4rie'],
extra_compile_args = m4ri_extra_compile_args,
language="c++"),
Extension('sage.matrix.matrix_modn_dense',
sources = ['sage/matrix/matrix_modn_dense.pyx'],
libraries = ['gmp']),
Extension('sage.matrix.matrix_modn_dense_float',
sources = ['sage/matrix/matrix_modn_dense_float.pyx'],
language="c++",
libraries = ['gmp', 'linbox', 'givaro', BLAS, BLAS2],
extra_compile_args = ['-DDISABLE_COMMENTATOR']),
Extension('sage.matrix.matrix_modn_dense_double',
sources = ['sage/matrix/matrix_modn_dense_double.pyx'],
language="c++",
libraries = ['gmp', 'linbox', 'givaro', BLAS, BLAS2],
extra_compile_args = ['-DDISABLE_COMMENTATOR']),
Extension('sage.matrix.matrix_modn_sparse',
sources = ['sage/matrix/matrix_modn_sparse.pyx'],
libraries = ['gmp']),
Extension('sage.matrix.matrix_mpolynomial_dense',
sources = ['sage/matrix/matrix_mpolynomial_dense.pyx'],
libraries = singular_libs,
language="c++",
include_dirs = [SAGE_INC + 'singular', SAGE_INC + 'factory'],
depends = singular_depends),
Extension('sage.matrix.matrix_rational_dense',
sources = ['sage/matrix/matrix_rational_dense.pyx'],
libraries = ['pari', 'gmp']),
Extension('sage.matrix.matrix_rational_sparse',
sources = ['sage/matrix/matrix_rational_sparse.pyx'],
libraries = ['gmp']),
Extension('sage.matrix.matrix_real_double_dense',
sources = ['sage/matrix/matrix_real_double_dense.pyx'],
libraries=[BLAS, BLAS2],
include_dirs = numpy_include_dirs,
depends = numpy_depends),
Extension('sage.matrix.matrix_sparse',
sources = ['sage/matrix/matrix_sparse.pyx']),
Extension('sage.matrix.matrix_symbolic_dense',
sources = ['sage/matrix/matrix_symbolic_dense.pyx']),
Extension('sage.matrix.matrix_window',
sources = ['sage/matrix/matrix_window.pyx']),
Extension('sage.matrix.matrix_window_modn_dense',
sources = ['sage/matrix/matrix_window_modn_dense.pyx']),
Extension('sage.matrix.misc',
sources = ['sage/matrix/misc.pyx'],
libraries=['mpfr','gmp']),
Extension('sage.matrix.strassen',
sources = ['sage/matrix/strassen.pyx']),
Extension('sage.media.channels',
sources = ['sage/media/channels.pyx']),
Extension('sage.misc.allocator',
sources = ['sage/misc/allocator.pyx']),
Extension('sage.misc.bitset',
sources = ['sage/misc/bitset.pyx']),
Extension('sage.misc.cachefunc',
sources = ['sage/misc/cachefunc.pyx']),
Extension('sage.misc.citation',
sources = ['sage/misc/citation.pyx']),
Extension('sage.misc.constant_function',
sources = ['sage/misc/constant_function.pyx']),
Extension('sage.misc.cython_c',
sources = ['sage/misc/cython_c.pyx']),
Extension('sage.misc.c3',
sources = ['sage/misc/c3.pyx']),
Extension('sage.misc.derivative',
sources = ['sage/misc/derivative.pyx']),
Extension('sage.misc.fpickle',
sources = ['sage/misc/fpickle.pyx']),
Extension('sage.misc.function_mangling',
sources = ['sage/misc/function_mangling.pyx']),
Extension('sage.misc.lazy_import',
sources = ['sage/misc/lazy_import.pyx']),
Extension('sage.misc.misc_c',
sources = ['sage/misc/misc_c.pyx']),
Extension('sage.misc.nested_class',
sources = ['sage/misc/nested_class.pyx']),
Extension('sage.misc.parser',
sources = ['sage/misc/parser.pyx']),
Extension('sage.misc.pickle_old',
sources = ['sage/misc/pickle_old.pyx']),
Extension('sage.misc.randstate',
sources = ['sage/misc/randstate.pyx'],
libraries = ['gmp']),
Extension('sage.misc.refcount',
sources = ['sage/misc/refcount.pyx']),
Extension('sage.misc.reset',
sources = ['sage/misc/reset.pyx']),
Extension('sage.misc.sage_timeit_class',
sources = ['sage/misc/sage_timeit_class.pyx']),
Extension('sage.misc.classcall_metaclass',
sources = ['sage/misc/classcall_metaclass.pyx']),
Extension('sage.misc.sagex_ds',
sources = ['sage/misc/sagex_ds.pyx']),
Extension('sage.misc.search',
sources = ['sage/misc/search.pyx']),
Extension('sage.misc.session',
sources = ['sage/misc/session.pyx']),
Extension('sage.misc.stopgap',
sources = ['sage/misc/stopgap.pyx']),
Extension('sage.modular.arithgroup.congroup_pyx',
sources = ['sage/modular/arithgroup/congroup_pyx.pyx']),
Extension('sage.modular.arithgroup.farey_symbol',
sources = ['sage/modular/arithgroup/farey_symbol.pyx',
'sage/modular/arithgroup/farey.cpp',
'sage/modular/arithgroup/sl2z.cpp'],
libraries = ['gmpxx'],
language = 'c++'),
Extension('sage.modular.modform.eis_series_cython',
sources = ['sage/modular/modform/eis_series_cython.pyx'],
libraries = ["gmp", "flint"],
include_dirs = [SAGE_INC + 'FLINT/'],
extra_compile_args = ['-std=c99'],
depends = flint_depends),
Extension('sage.modular.modsym.apply',
sources = ['sage/modular/modsym/apply.pyx'],
libraries = ["csage", "flint", "gmp", "gmpxx", "m", "stdc++"],
include_dirs = [SAGE_INC + 'FLINT/'],
extra_compile_args=["-std=c99", "-D_XPG6"],
depends = flint_depends),
Extension('sage.modular.modsym.relation_matrix_pyx',
sources = ['sage/modular/modsym/relation_matrix_pyx.pyx']),
Extension('sage.modular.modsym.heilbronn',
sources = ['sage/modular/modsym/heilbronn.pyx'],
libraries = ["csage", "flint", "gmp", "gmpxx", "m", "stdc++"],
include_dirs = [SAGE_INC + 'FLINT/'],
extra_compile_args=["-std=c99", "-D_XPG6"],
depends = flint_depends),
Extension('sage.modular.modsym.p1list',
sources = ['sage/modular/modsym/p1list.pyx'],
libraries = ['gmp']),
Extension('sage.modules.free_module_element',
sources = ['sage/modules/free_module_element.pyx'],
depends = numpy_depends),
Extension('sage.modules.module',
sources = ['sage/modules/module.pyx']),
Extension('sage.modules.vector_complex_double_dense',
['sage/modules/vector_complex_double_dense.pyx'],
libraries = [BLAS, BLAS2],
include_dirs = numpy_include_dirs,
depends = numpy_depends),
Extension('sage.modules.vector_double_dense',
['sage/modules/vector_double_dense.pyx'],
libraries = [BLAS, BLAS2],
include_dirs = numpy_include_dirs,
depends = numpy_depends),
Extension('sage.modules.vector_integer_dense',
sources = ['sage/modules/vector_integer_dense.pyx'],
libraries = ['gmp']),
Extension('sage.modules.vector_modn_dense',
extra_compile_args = ['-std=c99'],
sources = ['sage/modules/vector_modn_dense.pyx']),
Extension('sage.modules.vector_mod2_dense',
sources = ['sage/modules/vector_mod2_dense.pyx'],
libraries = ['gmp','m4ri', 'png12', 'gd'],
extra_compile_args = ['-std=c99'] + m4ri_extra_compile_args,
depends = [SAGE_INC + "png.h", SAGE_INC + "m4ri/m4ri.h"]),
Extension('sage.modules.vector_rational_dense',
sources = ['sage/modules/vector_rational_dense.pyx'],
libraries = ['gmp']),
Extension('sage.modules.vector_real_double_dense',
['sage/modules/vector_real_double_dense.pyx'],
libraries = [BLAS, BLAS2],
include_dirs = numpy_include_dirs,
depends = numpy_depends),
Extension("sage.numerical.mip",
["sage/numerical/mip.pyx"],
include_dirs=[SAGE_INC],
libraries=["csage","stdc++"]),
Extension("sage.numerical.backends.generic_backend",
["sage/numerical/backends/generic_backend.pyx"],
include_dirs = [SAGE_INC, "sage/c_lib/include/"],
libraries=["csage", "stdc++"]),
Extension("sage.numerical.backends.glpk_backend",
["sage/numerical/backends/glpk_backend.pyx"],
include_dirs = [SAGE_INC, "sage/c_lib/include/"],
language = 'c++',
libraries=["csage", "stdc++", "glpk", "gmp", "z"]),
Extension('sage.plot.complex_plot',
sources = ['sage/plot/complex_plot.pyx'],
include_dirs = numpy_include_dirs,
depends = numpy_depends),
Extension('sage.plot.plot3d.base',
sources = ['sage/plot/plot3d/base.pyx'],
extra_compile_args=["-std=c99"]),
Extension('sage.plot.plot3d.implicit_surface',
sources = ['sage/plot/plot3d/implicit_surface.pyx'],
libraries = ['gsl'],
include_dirs = numpy_include_dirs,
depends = numpy_depends),
Extension('sage.plot.plot3d.index_face_set',
sources = ['sage/plot/plot3d/index_face_set.pyx'],
extra_compile_args=["-std=c99"]),
Extension('sage.plot.plot3d.parametric_surface',
sources = ['sage/plot/plot3d/parametric_surface.pyx']),
Extension('sage.plot.plot3d.shapes',
sources = ['sage/plot/plot3d/shapes.pyx']),
Extension('sage.plot.plot3d.transform',
sources = ['sage/plot/plot3d/transform.pyx']),
Extension('sage.quadratic_forms.count_local_2',
sources = ['sage/quadratic_forms/count_local_2.pyx'],
libraries = ['gmp']),
Extension('sage.quadratic_forms.quadratic_form__evaluate',
sources = ['sage/quadratic_forms/quadratic_form__evaluate.pyx']),
Extension('sage.rings.bernmm',
sources = ['sage/rings/bernmm.pyx',
'sage/rings/bernmm/bern_modp.cpp',
'sage/rings/bernmm/bern_modp_util.cpp',
'sage/rings/bernmm/bern_rat.cpp'],
libraries = ['ntl', 'gmp', 'stdc++', 'pthread'],
depends = ['sage/rings/bernmm/bern_modp.h',
'sage/rings/bernmm/bern_modp_util.h',
'sage/rings/bernmm/bern_rat.h'],
language = 'c++',
define_macros=[('USE_THREADS', '1'),
('THREAD_STACK_SIZE', '4096')]),
Extension('sage.rings.bernoulli_mod_p',
sources = ['sage/rings/bernoulli_mod_p.pyx'],
libraries=['ntl','stdc++'],
language = 'c++',
include_dirs = ['sage/libs/ntl/']),
Extension('sage.rings.complex_double',
sources = ['sage/rings/complex_double.pyx'],
extra_compile_args=["-std=c99", "-D_XPG6"],
libraries = (['gsl', BLAS, BLAS2, 'pari', 'gmp'] +
uname_specific('CYGWIN', ['mc', 'md'], []) +
['m'])),
Extension('sage.rings.complex_interval',
sources = ['sage/rings/complex_interval.pyx'],
libraries = ['mpfi', 'mpfr', 'gmp']),
Extension('sage.rings.complex_number',
sources = ['sage/rings/complex_number.pyx'],
libraries = ['mpfr', 'gmp'],
depends = numpy_depends),
Extension('sage.rings.integer',
sources = ['sage/rings/integer.pyx'],
libraries=['ntl', 'pari', 'flint', 'gmp'],
include_dirs = [SAGE_INC + 'FLINT/'],
depends = numpy_depends + flint_depends),
Extension('sage.rings.integer_ring',
sources = ['sage/rings/integer_ring.pyx'],
libraries=['ntl', 'gmp']),
Extension('sage.rings.factorint',
sources = ['sage/rings/factorint.pyx'],
libraries=['gmp']),
Extension('sage.rings.fast_arith',
sources = ['sage/rings/fast_arith.pyx'],
libraries=['pari','gmp','csage']),
Extension('sage.rings.fraction_field_element',
sources = ['sage/rings/fraction_field_element.pyx']),
Extension('sage.rings.fraction_field_FpT',
sources = ['sage/rings/fraction_field_FpT.pyx'],
libraries = ["csage", "flint", "gmp", "gmpxx", "ntl", "zn_poly"],
extra_compile_args=["-std=c99", "-D_XPG6"],
include_dirs = [SAGE_INC + 'FLINT/'],
depends = flint_depends),
Extension('sage.rings.laurent_series_ring_element',
sources = ['sage/rings/laurent_series_ring_element.pyx']),
Extension('sage.rings.morphism',
sources = ['sage/rings/morphism.pyx']),
Extension('sage.rings.complex_mpc',
sources = ['sage/rings/complex_mpc.pyx'],
libraries = ['mpc', 'mpfr', 'gmp']),
Extension('sage.rings.noncommutative_ideals',
sources = ['sage/rings/noncommutative_ideals.pyx']),
Extension('sage.rings.power_series_mpoly',
sources = ['sage/rings/power_series_mpoly.pyx']),
Extension('sage.rings.power_series_poly',
sources = ['sage/rings/power_series_poly.pyx']),
Extension('sage.rings.power_series_ring_element',
sources = ['sage/rings/power_series_ring_element.pyx']),
Extension('sage.rings.rational',
sources = ['sage/rings/rational.pyx'],
libraries=['ntl', 'gmp'],
depends = numpy_depends),
Extension('sage.rings.real_double',
sources = ['sage/rings/real_double.pyx'],
libraries = ['gsl', 'gmp', BLAS, BLAS2],
depends = numpy_depends,
define_macros=[('GSL_DISABLE_DEPRECATED','1')]),
Extension('sage.rings.real_interval_absolute',
sources = ['sage/rings/real_interval_absolute.pyx'],
libraries = ['gmp']),
Extension('sage.rings.real_lazy',
sources = ['sage/rings/real_lazy.pyx']),
Extension('sage.rings.real_mpfi',
sources = ['sage/rings/real_mpfi.pyx'],
libraries = ['mpfi', 'mpfr', 'gmp']),
Extension('sage.rings.real_mpfr',
sources = ['sage/rings/real_mpfr.pyx'],
libraries = ['mpfr', 'pari', 'gmp'],
depends = numpy_depends),
Extension('sage.rings.residue_field',
sources = ['sage/rings/residue_field.pyx']),
Extension('sage.rings.ring',
sources = ['sage/rings/ring.pyx']),
Extension('sage.rings.finite_rings.finite_field_base',
sources = ['sage/rings/finite_rings/finite_field_base.pyx']),
Extension('sage.rings.finite_rings.element_base',
sources = ['sage/rings/finite_rings/element_base.pyx']),
Extension('sage.rings.finite_rings.integer_mod',
sources = ['sage/rings/finite_rings/integer_mod.pyx'],
libraries = ['gmp']),
Extension('sage.rings.finite_rings.element_givaro',
sources = ["sage/rings/finite_rings/element_givaro.pyx"],
libraries = ['givaro', 'ntl', 'gmpxx', 'gmp', 'm', 'stdc++', ],
language='c++'),
Extension('sage.rings.finite_rings.element_ntl_gf2e',
sources = ['sage/rings/finite_rings/element_ntl_gf2e.pyx'],
libraries = ['ntl', 'gmp'],
language = 'c++'),
Extension('sage.rings.function_field.function_field_element',
sources = ['sage/rings/function_field/function_field_element.pyx']),
Extension('sage.rings.number_field.number_field_base',
sources = ['sage/rings/number_field/number_field_base.pyx']),
Extension('sage.rings.number_field.number_field_element',
sources = ['sage/rings/number_field/number_field_element.pyx'],
libraries=['ntl','gmp'],
language = 'c++'),
Extension('sage.rings.number_field.number_field_element_quadratic',
sources = ['sage/rings/number_field/number_field_element_quadratic.pyx'],
libraries=['ntl', 'gmp'],
language = 'c++'),
Extension('sage.rings.number_field.number_field_morphisms',
sources = ['sage/rings/number_field/number_field_morphisms.pyx']),
Extension('sage.rings.number_field.totallyreal',
sources = ['sage/rings/number_field/totallyreal.pyx'],
libraries = ['pari', 'gmp']),
Extension('sage.rings.number_field.totallyreal_data',
sources = ['sage/rings/number_field/totallyreal_data.pyx'],
libraries = ['gmp'],
depends = numpy_depends),
Extension('sage.rings.padics.local_generic_element',
sources = ['sage/rings/padics/local_generic_element.pyx']),
Extension('sage.rings.padics.padic_base_coercion',
sources = ['sage/rings/padics/padic_base_coercion.pyx'],
libraries=['gmp']),
Extension('sage.rings.padics.padic_base_generic_element',
sources = ['sage/rings/padics/padic_base_generic_element.pyx'],
libraries=['gmp']),
Extension('sage.rings.padics.padic_capped_absolute_element',
sources = ['sage/rings/padics/padic_capped_absolute_element.pyx'],
libraries=['gmp']),
Extension('sage.rings.padics.padic_capped_relative_element',
sources = ['sage/rings/padics/padic_capped_relative_element.pyx'],
libraries=['gmp', 'csage']),
Extension('sage.rings.padics.padic_ext_element',
sources = ['sage/rings/padics/padic_ext_element.pyx'],
libraries=['ntl', 'gmp', 'csage', 'gmpxx', 'm', 'stdc++'],
language='c++'),
Extension('sage.rings.padics.padic_fixed_mod_element',
sources = ['sage/rings/padics/padic_fixed_mod_element.pyx'],
libraries=['gmp']),
Extension('sage.rings.padics.padic_generic_element',
sources = ['sage/rings/padics/padic_generic_element.pyx'],
libraries=['gmp']),
Extension('sage.rings.padics.padic_printing',
sources = ['sage/rings/padics/padic_printing.pyx'],
libraries=['gmp', 'ntl', 'csage', 'gmpxx', 'm', 'stdc++'],
language='c++'),
Extension('sage.rings.padics.padic_ZZ_pX_CA_element',
sources = ['sage/rings/padics/padic_ZZ_pX_CA_element.pyx'],
libraries = ['ntl', 'gmp', 'csage','gmpxx','m','stdc++'],
language='c++'),
Extension('sage.rings.padics.padic_ZZ_pX_CR_element',
sources = ['sage/rings/padics/padic_ZZ_pX_CR_element.pyx'],
libraries=['ntl', 'gmp', 'csage','gmpxx','m','stdc++'],
language='c++'),
Extension('sage.rings.padics.padic_ZZ_pX_element',
sources = ['sage/rings/padics/padic_ZZ_pX_element.pyx'],
libraries=['ntl', 'gmp', 'csage', 'gmpxx', 'm', 'stdc++'],
language='c++'),
Extension('sage.rings.padics.padic_ZZ_pX_FM_element',
sources = ['sage/rings/padics/padic_ZZ_pX_FM_element.pyx'],
libraries=['ntl', 'gmp', 'csage', 'gmpxx', 'm', 'stdc++'],
language='c++'),
Extension('sage.rings.padics.pow_computer',
sources = ['sage/rings/padics/pow_computer.pyx'],
libraries = ["csage", "ntl", "gmp", "gmpxx", "m", "stdc++"],
language='c++'),
Extension('sage.rings.padics.pow_computer_ext',
sources = ['sage/rings/padics/pow_computer_ext.pyx'],
libraries = ["csage", "ntl", "gmp", "gmpxx", "m", "stdc++"],
language='c++'),
Extension('sage.rings.polynomial.cyclotomic',
sources = ['sage/rings/polynomial/cyclotomic.pyx']),
Extension('sage.rings.polynomial.laurent_polynomial',
sources = ['sage/rings/polynomial/laurent_polynomial.pyx']),
Extension('sage.rings.polynomial.multi_polynomial',
sources = ['sage/rings/polynomial/multi_polynomial.pyx']),
Extension('sage.rings.polynomial.multi_polynomial_ideal_libsingular',
sources = ['sage/rings/polynomial/multi_polynomial_ideal_libsingular.pyx'],
libraries = singular_libs,
language="c++",
include_dirs = [SAGE_INC + 'singular', SAGE_INC + 'factory'],
depends = singular_depends),
Extension('sage.rings.polynomial.plural',
sources = ['sage/rings/polynomial/plural.pyx'],
libraries = ['m', 'readline', 'singular', 'givaro', 'gmpxx', 'gmp'],
language="c++",
include_dirs = [SAGE_ROOT +'/local/include/singular'],
depends = [SAGE_ROOT + "/local/include/libsingular.h"]),
Extension('sage.rings.polynomial.multi_polynomial_libsingular',
sources = ['sage/rings/polynomial/multi_polynomial_libsingular.pyx'],
libraries = singular_libs,
language="c++",
include_dirs = [SAGE_INC + 'singular', SAGE_INC + 'factory'],
depends = singular_depends),
Extension('sage.rings.polynomial.multi_polynomial_ring_generic',
sources = ['sage/rings/polynomial/multi_polynomial_ring_generic.pyx']),
Extension('sage.rings.polynomial.polydict',
sources = ['sage/rings/polynomial/polydict.pyx']),
Extension('sage.rings.polynomial.polynomial_compiled',
sources = ['sage/rings/polynomial/polynomial_compiled.pyx']),
Extension('sage.rings.polynomial.polynomial_element',
sources = ['sage/rings/polynomial/polynomial_element.pyx'],
depends = numpy_depends),
Extension('sage.rings.polynomial.polynomial_gf2x',
sources = ['sage/rings/polynomial/polynomial_gf2x.pyx'],
libraries = ['ntl', 'stdc++', 'gmp'],
extra_compile_args = m4ri_extra_compile_args,
language = 'c++',
depends = [SAGE_INC + 'm4ri/m4ri.h'],
include_dirs = ['sage/libs/ntl/']),
Extension('sage.rings.polynomial.polynomial_zz_pex',
sources = ['sage/rings/polynomial/polynomial_zz_pex.pyx'],
libraries = ['ntl', 'stdc++', 'gmp'],
language = 'c++',
include_dirs = ['sage/libs/ntl/']),
Extension('sage.rings.polynomial.polynomial_zmod_flint',
sources = ['sage/rings/polynomial/polynomial_zmod_flint.pyx'],
libraries = ["csage", "flint", "gmp", "gmpxx", "ntl", "zn_poly"],
extra_compile_args=["-std=c99", "-D_XPG6"],
include_dirs = [SAGE_INC + 'FLINT/'],
depends = flint_depends),
Extension('sage.rings.polynomial.polynomial_integer_dense_flint',
sources = ['sage/rings/polynomial/polynomial_integer_dense_flint.pyx'],
language = 'c++',
libraries = ["csage", "flint", "ntl", "gmpxx", "gmp"],
include_dirs = [SAGE_INC + 'FLINT/'],
depends = flint_depends),
Extension('sage.rings.polynomial.polynomial_integer_dense_ntl',
sources = ['sage/rings/polynomial/polynomial_integer_dense_ntl.pyx'],
libraries = ['ntl', 'stdc++', 'gmp'],
language = 'c++',
include_dirs = ['sage/libs/ntl/']),
Extension('sage.rings.polynomial.polynomial_rational_flint',
sources = ['sage/rings/polynomial/polynomial_rational_flint.pyx', 'sage/libs/flint/fmpq_poly.c'],
language = 'c++',
extra_compile_args=["-std=c99"] + uname_specific('SunOS', [], ['-D_XPG6']),
libraries = ["csage", "flint", "ntl", "gmpxx", "gmp"],
include_dirs = [SAGE_INC + 'FLINT/', 'sage/libs/flint/'],
depends = flint_depends),
Extension('sage.rings.polynomial.polynomial_modn_dense_ntl',
sources = ['sage/rings/polynomial/polynomial_modn_dense_ntl.pyx'],
libraries = ['ntl', 'stdc++', 'gmp'],
language = 'c++',
include_dirs = ['sage/libs/ntl/']),
Extension('sage.rings.polynomial.pbori',
sources = ['sage/rings/polynomial/pbori.pyx'],
libraries=['polybori', 'polybori_groebner', 'gd', 'png12', 'm4ri'],
include_dirs = [SAGE_INC, "sage/libs/polybori"],
depends = [SAGE_INC + "polybori/" + hd + ".h" for hd in ["polybori", "config"] ] + \
[SAGE_INC + 'm4ri/m4ri.h'],
extra_compile_args = polybori_extra_compile_args + m4ri_extra_compile_args,
language = 'c++'),
Extension('sage.rings.polynomial.polynomial_real_mpfr_dense',
sources = ['sage/rings/polynomial/polynomial_real_mpfr_dense.pyx'],
libraries = ['mpfr', 'gmp']),
Extension('sage.rings.polynomial.real_roots',
sources = ['sage/rings/polynomial/real_roots.pyx'],
libraries=['mpfr', 'gmp'],
include_dirs = numpy_include_dirs,
depends = numpy_depends),
Extension('sage.rings.polynomial.symmetric_reduction',
sources = ['sage/rings/polynomial/symmetric_reduction.pyx']),
Extension('sage.schemes.elliptic_curves.descent_two_isogeny',
sources = ['sage/schemes/elliptic_curves/descent_two_isogeny.pyx'],
extra_compile_args=["-std=c99"],
depends = [SAGE_INC + 'ratpoints.h',
SAGE_INC + 'gmp.h'] +
flint_depends,
include_dirs = [SAGE_INC + 'FLINT/'],
libraries = ['flint', 'gmp', 'ratpoints']),
Extension('sage.schemes.hyperelliptic_curves.hypellfrob',
sources = ['sage/schemes/hyperelliptic_curves/hypellfrob.pyx',
'sage/schemes/hyperelliptic_curves/hypellfrob/hypellfrob.cpp',
'sage/schemes/hyperelliptic_curves/hypellfrob/recurrences_ntl.cpp',
'sage/schemes/hyperelliptic_curves/hypellfrob/recurrences_zn_poly.cpp'],
libraries = ['ntl', 'stdc++', 'gmp', 'zn_poly'],
depends = ['sage/schemes/hyperelliptic_curves/hypellfrob/hypellfrob.h',
'sage/schemes/hyperelliptic_curves/hypellfrob/recurrences_ntl.h',
'sage/schemes/hyperelliptic_curves/hypellfrob/recurrences_zn_poly.h'],
language = 'c++',
include_dirs = ['sage/libs/ntl/',
'sage/schemes/hyperelliptic_curves/hypellfrob/']),
Extension('sage.schemes.toric.divisor_class',
sources = ['sage/schemes/toric/divisor_class.pyx'],
libraries = ['gmp']),
Extension('sage.sets.disjoint_set',
sources = ['sage/sets/disjoint_set.pyx'],
libraries = ['gmp', 'flint'],
include_dirs = [SAGE_INC + 'FLINT/'],
extra_compile_args = ['-std=c99'],
depends = flint_depends),
Extension('sage.stats.hmm.util',
sources = ['sage/stats/hmm/util.pyx']),
Extension('sage.stats.hmm.distributions',
sources = ['sage/stats/hmm/distributions.pyx']),
Extension('sage.stats.hmm.hmm',
sources = ['sage/stats/hmm/hmm.pyx']),
Extension('sage.stats.hmm.chmm',
sources = ['sage/stats/hmm/chmm.pyx'],
extra_compile_args=["-std=c99"]),
Extension('sage.stats.intlist',
sources = ['sage/stats/intlist.pyx']),
Extension('sage.structure.category_object',
sources = ['sage/structure/category_object.pyx']),
Extension('sage.structure.coerce',
sources = ['sage/structure/coerce.pyx']),
Extension('sage.structure.coerce_actions',
sources = ['sage/structure/coerce_actions.pyx']),
Extension('sage.structure.coerce_dict',
sources = ['sage/structure/coerce_dict.pyx']),
Extension('sage.structure.coerce_maps',
sources = ['sage/structure/coerce_maps.pyx']),
Extension('sage.structure.element',
sources = ['sage/structure/element.pyx']),
Extension('sage.structure.factory',
sources = ['sage/structure/factory.pyx']),
Extension('sage.structure.generators',
sources = ['sage/structure/generators.pyx']),
Extension('sage.structure.mutability',
sources = ['sage/structure/mutability.pyx']),
Extension('sage.structure.parent',
sources = ['sage/structure/parent.pyx']),
Extension('sage.structure.parent_base',
sources = ['sage/structure/parent_base.pyx']),
Extension('sage.structure.parent_gens',
sources = ['sage/structure/parent_gens.pyx']),
Extension('sage.structure.parent_old',
sources = ['sage/structure/parent_old.pyx']),
Extension('sage.structure.sage_object',
sources = ['sage/structure/sage_object.pyx']),
Extension('sage.structure.wrapper_parent',
sources = ['sage/structure/wrapper_parent.pyx']),
Extension('sage.symbolic.constants_c',
sources = ['sage/symbolic/constants_c.pyx'],
language = 'c++',
depends = ginac_depends,
libraries = ["pynac", "gmp"]),
Extension('sage.symbolic.expression',
sources = ['sage/symbolic/expression.pyx'],
language = 'c++',
depends = ginac_depends,
libraries = ["pynac", "gmp"]),
Extension('sage.symbolic.getitem',
sources = ['sage/symbolic/getitem.pyx'],
language = 'c++',
depends = [SAGE_LOCAL + "/include/pynac/ginac.h"],
libraries = ["pynac", "gmp"]),
Extension('sage.symbolic.function',
sources = ['sage/symbolic/function.pyx'],
language = 'c++',
depends = ginac_depends + numpy_depends,
libraries = ["pynac", "gmp"]),
Extension('sage.symbolic.pynac',
sources = ['sage/symbolic/pynac.pyx'],
language = 'c++',
depends = ginac_depends,
libraries = ["pynac", "gmp", "gsl"]),
Extension('sage.symbolic.ring',
sources = ['sage/symbolic/ring.pyx'],
language = 'c++',
depends = ginac_depends + numpy_depends,
libraries = ["pynac", "gmp"]),
Extension('sage.tests.interrupt',
sources = ['sage/tests/interrupt.pyx', 'sage/tests/c_lib.c']),
Extension('sage.tests.stl_vector',
sources = ['sage/tests/stl_vector.pyx'],
language = 'c++'),
Extension('sage.tests.cython',
sources = ['sage/tests/cython.pyx']),
]
from sage.misc.package import is_package_installed
if (os.path.isfile(SAGE_INC + "gurobi_c.h") and
os.path.isfile(SAGE_LOCAL + "/lib/libgurobi.so")):
ext_modules.append(
Extension("sage.numerical.backends.gurobi_backend",
["sage/numerical/backends/gurobi_backend.pyx"],
include_dirs = [SAGE_INC, "sage/c_lib/include/"],
language = 'c',
libraries = ["csage", "stdc++", "gurobi"])
)
if (os.path.isfile(SAGE_INC + "cplex.h") and
os.path.isfile(SAGE_LOCAL + "/lib/libcplex.a")):
ext_modules.append(
Extension("sage.numerical.backends.cplex_backend",
["sage/numerical/backends/cplex_backend.pyx"],
include_dirs = [SAGE_INC, "sage/c_lib/include/"],
language = 'c',
libraries = ["csage", "stdc++", "cplex"])
)
if is_package_installed('cbc'):
ext_modules.append(
Extension("sage.numerical.backends.coin_backend",
["sage/numerical/backends/coin_backend.pyx"],
include_dirs = [SAGE_INC, "sage/c_lib/include/"],
language = 'c++',
libraries = ["csage", "stdc++", "Cbc", "CbcSolver", "Cgl", "Clp", "CoinUtils", "OsiCbc", "OsiClp", "Osi"])
)
UNAME = os.uname()
if UNAME[0] == "Darwin" and not UNAME[2].startswith('8.'):
ext_modules.append(
Extension('sage.misc.darwin_utilities',
sources = ['sage/misc/darwin_memory_usage.c',
'sage/misc/darwin_utilities.pyx'],
depends = ['sage/misc/darwin_memory_usage.h'])
)
if is_package_installed('lrcalc'):
ext_modules.append(
Extension('sage.libs.lrcalc.lrcalc',
sources = ["sage/libs/lrcalc/lrcalc.pyx"],
include_dirs = [SAGE_LOCAL + '/include/lrcalc/'],
libraries = ["lrcalc"],
depends = [SAGE_LOCAL + "/include/lrcalc/symfcn.h"]),
)