Opened 8 years ago

Closed 6 years ago

#14726 closed enhancement (fixed)

build system for src/c_lib

Reported by: felixs Owned by: felixs
Priority: minor Milestone: sage-duplicate/invalid/wontfix
Component: build Keywords: build system, c_lib, gsoc
Cc: jondo Merged in:
Authors: Felix Salfelder Reviewers: François Bissey
Report Upstream: N/A Work issues:
Branch: u/felixs/14726 (Commits, GitHub, GitLab) Commit: 510f8b702c0b871a321dc19be17d53701adfd004
Dependencies: Stopgaps:

Status badges

Description

this patch implements a gnu build system for c_lib. no existing files are touched. IT is indended to be merged into the git transition repo.

the glue code at toplevel is under construction. but if desired, it may be possible to hook it into the current static toplevel makefile.

(this build system might finally be merged with the python module build system. this is currently not necessary and would just complicate things due to the directory structure.)

Attachments (1)

0001-csage-build-system.patch (6.8 KB) - added by felixs 8 years ago.
build system piece

Download all attachments as: .zip

Change History (19)

Changed 8 years ago by felixs

build system piece

comment:1 Changed 8 years ago by leif

  • Authors changed from felixs to Felix Salfelder
  • Dependencies none deleted

Felix, if you buy a new harddrive, would you mind also buying a new shift key?

(I'd also appreciate that for the news groups posts, at least the longer ones.)

comment:2 follow-up: Changed 8 years ago by fbissey

May be we could test drive this in sage-on-gentoo. We already build the thing separately after all.

comment:3 in reply to: ↑ 2 Changed 8 years ago by felixs

Replying to fbissey:

May be we could test drive this in sage-on-gentoo. We already build the thing separately after all.

Good idea.

this is included within the "WIP" branch at git://github.com/felix-salfelder/sage.git.

I think for distributions != sage, it should already be possible to build all parts of sagelib at once. there's a "build system" at the root of sagelib (i.e. src), which is meant to put together the pieces (currently just AC_CONFIG_SUBDIRS). if you feel adventurous, please have a look.

comment:4 follow-ups: Changed 8 years ago by fbissey

Interesting. I will have to look at it closely since the way sage is distributed will change radically with git. Is there an easy of creating a tarball stripped of the git repo?

comment:5 in reply to: ↑ 4 Changed 8 years ago by felixs

Replying to fbissey:

Interesting. I will have to look at it closely since the way sage is distributed will change radically with git. Is there an easy of creating a tarball stripped of the git repo?

make dist. if it doesnt work, it should in the end.

not that currently, the build system for the python part is missing (#14834), i'll push it as soon as I have a functional alpha.

comment:6 Changed 8 years ago by jondo

  • Cc jondo added

comment:7 in reply to: ↑ 4 Changed 8 years ago by felixs

  • Branch set to u/felixs/csage_build_system
  • Commit set to de0e13624cdf6ccb91a2488152cf125622215802
  • Status changed from new to needs_review

Replying to fbissey:

Is there an easy of creating a tarball stripped of the git repo?

i will provide current tarballs at http://tool.em.cs.uni-frankfurt.de/~felix/sagelib.

The part that corresponds to this ticket is ready. please comment/rewiew.

comment:8 Changed 8 years ago by felixs

  • Branch changed from u/felixs/csage_build_system to u/felixs/14726
  • Commit changed from de0e13624cdf6ccb91a2488152cf125622215802 to 510f8b702c0b871a321dc19be17d53701adfd004

comment:9 Changed 8 years ago by jdemeyer

  • Component changed from c_lib to build

comment:10 Changed 8 years ago by jdemeyer

  • Status changed from needs_review to needs_work

Needs to be rebased.

comment:11 follow-up: Changed 8 years ago by jdemeyer

I also disagree with the fact that autotools should become a standard package. Autotools are meant to be used by package maintainers, not by end users.

comment:12 in reply to: ↑ 11 Changed 8 years ago by felixs

Replying to jdemeyer:

I also disagree with the fact that autotools should become a standard package.

what exactly do you disagree with? are packages that are required for development standard packages?

what would be the problem with development requiring autotools (alternatives?).

Autotools are meant to be used by package maintainers, not by end users.

no. autotools is meant to be used by developers only, and that's the whole point. (and yes, not by end users).

comment:13 Changed 8 years ago by jdemeyer

I would say there are 3 levels:

  1. package maintainers
  2. normal developers
  3. end users

only package maintainers should need autotools.

comment:14 follow-up: Changed 8 years ago by felixs

what is a normal developer? do you imply that a package maintainer is a different sort of developer?

usually (in my world?) no package maintainer will ever want to tinker with a build system (or other source code) if she doesn't have to. unlike make, autotools is written/designed exclusively for developers.

so clearly, 1. and 2. need to be exchanged, if a normal developer is a developer (?).

are we lost in terminology? it doesn't really look that complicated... Look out for the term software development person and developer in http://en.wikipedia.org/wiki/GNU_build_system#Usage.

comment:15 in reply to: ↑ 14 ; follow-up: Changed 8 years ago by jdemeyer

OK, forget what I said. What I really meant was that you should not require autotools except in cases where it is obviously needed. Essentially, as long as you don't edit configure.ac or Makefile.am, you shouldn't need autotools.

comment:16 in reply to: ↑ 15 Changed 8 years ago by felixs

Replying to jdemeyer:

OK, forget what I said. What I really meant was that you should not require autotools except in cases where it is obviously needed. Essentially, as long as you don't edit configure.ac or Makefile.am, you shouldn't need autotools.

yes. you shouldn't. and that should be achievable.

you will of course need autotools to expand the build system, if you don't start with a dist tarball or anything similar. is building-from-git (as opposed to building-from-tarball) not considered a development task?

is this finally what comment 11 is about?

comment:17 Changed 6 years ago by fbissey

  • Milestone changed from sage-wishlist to sage-duplicate/invalid/wontfix
  • Reviewers set to François Bissey
  • Status changed from needs_work to positive_review

Obsolete src/c_lib is gone.

comment:18 Changed 6 years ago by vbraun

  • Resolution set to fixed
  • Status changed from positive_review to closed
Note: See TracTickets for help on using tickets.