Proposal for Sage 9.2: require "./configure" before "make"

87 views
Skip to first unread message

John H Palmieri

unread,
Apr 18, 2020, 4:51:29 PM4/18/20
to sage-devel
Several of us are in favor of requiring that, in order to build Sage, people should have to run "./configure" before running "make". I would further propose that "make" should not itself then run "configure".

Some advantages:

- This is the same procedure used with many other software packages.
- Configuration should be done separately from building, and this makes that separation explicit.
- It would help to avoid the issue that ./configure gets run too often; for example, "make distclean" may cause ./configure to run.

Some disadvantages:

- It adds one step or a least requires the typing of some extra characters
- It's not what we're used to doing to build Sage.

Ticket #29316 proposes doing at least some of this, and Sage 9.2 seems like a good time to do this. Comments?


--
John

VulK

unread,
Apr 18, 2020, 5:01:09 PM4/18/20
to sage-...@googlegroups.com
+1 for standard behaviour


* John H Palmieri <jhpalm...@gmail.com> [2020-04-18 13:51:29]:
>--
>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+...@googlegroups.com.
>To view this discussion on the web visit https://groups.google.com/d/msgid/sage-devel/5d1a5823-b4e2-498f-b73b-a2a655868039%40googlegroups.com.

Nils Bruin

unread,
Apr 18, 2020, 5:11:09 PM4/18/20
to sage-devel
On Saturday, April 18, 2020 at 1:51:29 PM UTC-7, John H Palmieri wrote:

Some disadvantages:

- It adds one step or a least requires the typing of some extra characters
- It's not what we're used to doing to build Sage.


Isn't it possible to have a make target "make configure"?

Wouldn't it be possible to make this part of a "make cleanall", or whatever an appropriate metatarget is?

Is there some way to detect when  ./confiugre absolutely needs to be run, and make that part of some metatarget?

What I envision is that we can have both:

 * running ./configure; make works (and doesn't do way too much work)
 * running "make", or perhaps some target "make confbuild" works and runs configure.

There is of course the issue that make already runs loads of submakes of packages, that in turn must run ./configure, so in the sage build process, "./configure" is already commonly triggered by make. I don't think we'd want to change that, so it seems to me it makes sense to have "./configure" run under control of make for sage as well (under certain conditions).

Matthias Koeppe

unread,
Apr 18, 2020, 5:26:15 PM4/18/20
to sage-devel
On Saturday, April 18, 2020 at 1:51:29 PM UTC-7, John H Palmieri wrote:
Several of us are in favor of requiring that, in order to build Sage, people should have to run "./configure" before running "make". I would further propose that "make" should not itself then run "configure".

Well, "make" still needs to run configure (actually "./config.status --recheck && ./config.status), for example when configure.ac changes. Standard autotools packages also do that.

But what we should remove is the code leading to the call "./configure $$PREREQ_OPTIONS" in SAGE_ROOT/Makefile.

Matthias

Matthias Koeppe

unread,
Apr 18, 2020, 5:28:36 PM4/18/20
to sage-devel
On Saturday, April 18, 2020 at 2:11:09 PM UTC-7, Nils Bruin wrote:
There is of course the issue that make already runs loads of submakes of packages, that in turn must run ./configure, so in the sage build process, "./configure" is already commonly triggered by make. I don't think we'd want to change that
 
That's right, this would not be changed.

The proposed change is specifically about SAGE_ROOT/configure.

Dima Pasechnik

unread,
Apr 18, 2020, 7:48:23 PM4/18/20
to sage-devel
make should not trigger the "normal" run of main ./configure, as this
leads to various chicken vs egg problems, which can only be cured by
repeatedly triggering ./configure runs
all the time, As out ./configure is slow, this is a waste of time to have this.
We can of course create a special target that will trigger
./configure, but why defviate from the usual commonmy known
./configure && make ?

>
> --
> 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+...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/sage-devel/74a8fed6-eb02-492e-9e9e-5d7e28857b0a%40googlegroups.com.

Jonathan Kliem

unread,
Apr 19, 2020, 9:32:35 AM4/19/20
to sage-devel
Will this speed up the `make build` or `sage -br` process? It used to be really quick, but now it takes much longer and rechecks all the packages.
I really don't want this if I'm just changing a line of code to see, if this fixes my problem.
> To unsubscribe from this group and stop receiving emails from it, send an email to sage-...@googlegroups.com.

Matthias Koeppe

unread,
Apr 19, 2020, 9:45:51 AM4/19/20
to sage-devel

On Sunday, April 19, 2020 at 6:32:35 AM UTC-7, Jonathan Kliem wrote:
Will this speed up the `make build` or `sage -br` process? It used to be really quick, but now it takes much longer and rechecks all the packages.
I really don't want this if I'm just changing a line of code to see, if this fixes my problem.

This may already be fixed by https://trac.sagemath.org/ticket/29460
 

Dima Pasechnik

unread,
Apr 19, 2020, 9:49:33 AM4/19/20
to sage-devel
On Sun, Apr 19, 2020 at 9:32 PM 'Jonathan Kliem' via sage-devel
<sage-...@googlegroups.com> wrote:
>
> Will this speed up the `make build` or `sage -br` process? It used to be really quick, but now it takes much longer and rechecks all the packages.

exactly. That's the point, it will stop these extra ./configure runs.
> To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/sage-devel/3da8c90b-7a0f-4d29-8f3c-4f1c5456c1bf%40googlegroups.com.

David Roe

unread,
Apr 19, 2020, 11:13:52 AM4/19/20
to sage-devel
On Sun, Apr 19, 2020 at 9:49 AM Dima Pasechnik <dim...@gmail.com> wrote:
On Sun, Apr 19, 2020 at 9:32 PM 'Jonathan Kliem' via sage-devel
<sage-...@googlegroups.com> wrote:
>
> Will this speed up the `make build` or `sage -br` process? It used to be really quick, but now it takes much longer and rechecks all the packages.

exactly. That's the point, it will stop these extra ./configure runs.

Then +1 from me.
David
 

Jonathan Kliem

unread,
Apr 19, 2020, 11:23:07 AM4/19/20
to sage-devel
+1

Michael Orlitzky

unread,
Apr 19, 2020, 1:40:35 PM4/19/20
to sage-...@googlegroups.com
On 4/18/20 4:51 PM, John H Palmieri wrote:
> Several of us are in favor of requiring that, in order to build Sage,
> people should have to run "./configure" before running "make". I would
> further propose that "make" should not itself then run "configure".

+1 step closer to sanity


Reply all
Reply to author
Forward
0 new messages