On Sun, Apr 21, 2013 at 6:05 AM, Felix Salfelder <fe...@salfelder.org>wrote:

> a configure script would locate headers depending on the flags
> (--with-ntl=/here/or/there ...), does a check (optional) and then sets
> CFLAGS/wheteverFLAGS accordingly. Cython is used to write .c out of
> .pyx, i don't see why/how it could care about configure options.
>
> (just to be sure: what does it have to do with a dependency tree?)
>

More the point is that you do not want to directly call the terminal
command for cython -- rather you want
to call cythonize on a python list of modules, as it regenerates c files if
the corresponding pyx file is touched or if any file that the pyx depends
on is touched. Moreover, it provides extra functionality (such as cycache:
ccache for cython) that we will likely want to take advantage of.

So at some point a python module like module_list.py will have to be used,
potentially generated.

> No, I did not me a top-level build system -- as I see it there are three
> > embedded levels of sage:
> >
> >   1) sage as a python library
> >   2) sage as a program (i.e. the terminal command prompt/notebook)
> >   3) sage as a distribution.
>
> sage as a program is in <git-transition-repo>/src/bin. there used to be
> a sage-scripts.spkg. notebook is another package...
> yes, these need also be considered modules/packages.
>

By "sage as a program" is almost everything under src (some scripts in
src/bin are only needed for distribution purposes).

> Currently you can only get to 1 and 2 as components of 3, and the goal of
> > this project is to make it more modular so as to be able to get at 1 and
> 2
> > outside of 3.
>
> agreed.
>
> > To me it makes the most sense to have a single configure
> > script for 2 (as a set), with a configure flag to just build 1, the
> python
> > library (if so desired).
>
> in the end, sage ("the distribution"), i.e. the top-level-stuff, must
> take care of building/installing the modules in the right order. having
> one module that builds another undermines this logic.
>

As a person who frequently compiles software from source I have a big
objection to breaking up the configuration of "sage as a program" into
multiple components, it complicates the process for someone who has all the
dependencies and just wants to build a copy of sage. By default I think
that `./configure && make && make install` should setup a makefile that
will build and install all of "sage as a program". If you want more
modularity you could have an extra configure flag

--with-csage=PATH     uses csage at path instead of building its own copy
of csage

and separate make targets for installing the various components

  make install_bin
  make install_lib
  make install_extcode
  make install_csage
  make install_doc

(and then corresponding build targets for those that need them)

-- 
Andrew

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to