Skip to content
This repository was archived by the owner on Jan 30, 2023. It is now read-only.

Commit fb1cfbc

Browse files
author
Jean-Pierre Flori
committed
Merge remote-tracking branch 'trac/develop' into ticket/15331
2 parents 8798dd9 + ccab985 commit fb1cfbc

File tree

1,551 files changed

+124765
-75734
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,551 files changed

+124765
-75734
lines changed

.gitignore

+61
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,64 @@
44
/local
55
/logs
66
/upstream
7+
8+
#############################
9+
# Autotools generated files #
10+
#############################
11+
/aclocal.m4
12+
/autom4te.cache/
13+
/config/
14+
/config.log
15+
/config.status
16+
/configure
17+
/build/Makefile-auto
18+
/build/Makefile-auto.in
19+
20+
###################
21+
# Temporary Files #
22+
###################
23+
24+
# Various editors
25+
*~
26+
27+
# Emacs
28+
\#*\#
29+
.\#*
30+
31+
# Vim
32+
*.s[a-w][a-z]
33+
*.un~
34+
.netrwhist
35+
36+
# PyCharm
37+
.idea
38+
.iml
39+
40+
# Eclipse
41+
*.pydevproject
42+
.project
43+
.metadata
44+
*.tmp
45+
*.bak
46+
*.swp
47+
*~.nib
48+
.classpath
49+
.settings/
50+
.loadpath
51+
.externalToolBuilders/
52+
.cproject
53+
.buildpath
54+
55+
# OSX specific temporary files
56+
.DS_Store
57+
._*
58+
.AppleDouble
59+
.LSOverride
60+
.Spotlight-V100
61+
.Trashes
62+
63+
# Windows
64+
$RECYCLE.BIN/
65+
66+
# SublimeText
67+
*.sublime-workspace

COPYING.txt

+2
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,8 @@ pari GPLv2+
8888
patch GPLv2+
8989
pexpect Python License
9090
pil Similar to MIT and modified BSD (see below)
91+
pkgconf ISC License (equivalent to Simplified BSD)
92+
pkgconfig MIT License
9193
polybori GPLv2+
9294
polytopes_db None (database)
9395
ppl GPLv3+

Makefile

+26-5
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,25 @@
99

1010
PIPE = build/pipestatus
1111

12+
1213
all: start doc # indirectly depends on build
1314

1415
logs:
1516
mkdir -p $@
1617

17-
build: logs
18-
cd build && \
18+
build: logs configure
19+
+cd build && \
1920
"../$(PIPE)" \
2021
"env SAGE_PARALLEL_SPKG_BUILD='$(SAGE_PARALLEL_SPKG_BUILD)' ./install all 2>&1" \
2122
"tee -a ../logs/install.log"
2223
./sage -b
2324

25+
# Preemptively download all standard upstream source tarballs.
26+
download:
27+
export SAGE_ROOT=$$(pwd) && \
28+
export PATH=$$SAGE_ROOT/src/bin:$$PATH && \
29+
./src/bin/sage-download-upstream
30+
2431
# ssl: build Sage, and also install pyOpenSSL. This is necessary for
2532
# running the secure notebook. This make target requires internet
2633
# access. Note that this requires that your system have OpenSSL
@@ -76,13 +83,24 @@ bdist-clean: clean
7683
rm -rf logs
7784
rm -rf dist
7885
rm -rf tmp
79-
rm -f build/Makefile
86+
rm -f aclocal.m4 config.log config.status confcache
87+
rm -rf autom4te.cache
88+
rm -f build/Makefile build/Makefile-auto
8089
rm -f .BUILDSTART
8190

8291
distclean: clean doc-clean lib-clean bdist-clean
8392
@echo "Deleting all remaining output from build system ..."
8493
rm -rf local
8594

95+
# Delete all auto-generated files which are distributed as part of the
96+
# source tarball
97+
bootstrap-clean:
98+
rm -rf config configure build/Makefile-auto.in
99+
100+
# Remove absolutely everything which isn't part of the git repo
101+
maintainer-clean: distclean bootstrap-clean
102+
rm -rf upstream
103+
86104
micro_release: bdist-clean lib-clean
87105
@echo "Stripping binaries ..."
88106
LC_ALL=C find local/lib local/bin -type f -exec strip '{}' ';' 2>&1 | grep -v "File format not recognized" | grep -v "File truncated" || true
@@ -134,6 +152,9 @@ ptestoptional: ptestall # just an alias
134152

135153
ptestoptionallong: ptestalllong # just an alias
136154

155+
configure: configure.ac src/bin/sage-version.sh \
156+
m4/ax_c_check_flag.m4 m4/ax_gcc_option.m4 m4/ax_gcc_version.m4 m4/ax_gxx_option.m4 m4/ax_gxx_version.m4 m4/ax_prog_perl_version.m4
157+
./bootstrap -d
137158

138159
install:
139160
echo "Experimental use only!"
@@ -154,8 +175,8 @@ install:
154175
"$(DESTDIR)"/bin/sage -c # Run sage-location
155176

156177

157-
.PHONY: all build build-serial start install \
178+
.PHONY: all build build-serial start install micro_release \
158179
doc doc-html doc-html-jsmath doc-html-mathjax doc-pdf \
159-
doc-clean clean lib-clean bdist-clean distclean micro_release \
180+
doc-clean clean lib-clean bdist-clean distclean bootstrap-clean maintainer-clean \
160181
test check testoptional testall testlong testoptionallong testallong \
161182
ptest ptestoptional ptestall ptestlong ptestoptionallong ptestallong

README.txt

+17-6
Original file line numberDiff line numberDiff line change
@@ -75,12 +75,23 @@ Installation Guide:
7575
"Precise"), you need the dpkg-dev package.
7676

7777
OS X: Xcode. Make sure you have installed the most recent version
78-
of Xcode. For pre-Lion versions of OS X, you can download Xcode
79-
from http://developer.apple.com/downloads/. For OS X Lion, you can
80-
install it using the App Store. With Xcode 4.3 or later, you need
81-
to install the "Command Line Tools": from the File menu, choose
82-
"Preferences", then the "Downloads" tab, and then "Install" the
83-
Command Line Tools.
78+
of Xcode. With recent versions of OS X (OS X Lion or later), you
79+
can install Xcode for free from the App Store. For pre-Lion
80+
versions of OS X, you can download Xcode from
81+
http://developer.apple.com/downloads/.
82+
83+
With OS X, you also need to install the "command line tools". When
84+
using OS X Mavericks, after installing Xcode, run this command from
85+
a terminal window:
86+
87+
xcode-select --install
88+
89+
Then click "Install" in the pop-up window.
90+
91+
When using OS X Mountain Lion or earlier, you need to install the
92+
command line tools from Xcode: run Xcode; then from the File
93+
menu, choose "Preferences", then the "Downloads" tab, and then
94+
"Install" the Command Line Tools.
8495

8596
Other platforms: See detailed instructions below.
8697

VERSION.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Sage version 5.13.beta0, released 2013-10-08
1+
Sage version 6.2.beta3, released 2014-03-03

bootstrap

+133
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
#!/usr/bin/env bash
2+
3+
########################################################################
4+
# Regenerate auto-generated files (e.g. configure)
5+
#
6+
# If the -s option is given, save the autogenerated scripts in
7+
# $SAGE_ROOT/upstream/configure-$CONFVERSION.tar.gz where CONFVERSION
8+
# is the version number stored in
9+
# build/pkgs/configure/package-version.txt
10+
#
11+
# If optional argument -i is given, then automatically increment the
12+
# version number.
13+
#
14+
# If optional argument -d is given and bootstrapping failed, instead
15+
# extract the files from a local configure tarball, downloading it if
16+
# needed. If -D is given, don't try to bootstrap and always extract or
17+
# donwload.
18+
########################################################################
19+
20+
# Either run this script from SAGE_ROOT or make sure that SAGE_ROOT
21+
# is set
22+
test -z "$SAGE_ROOT" || cd "$SAGE_ROOT"
23+
24+
PKG=build/pkgs/configure
25+
MAKE="${MAKE:-make}"
26+
CONFVERSION=`cat $PKG/package-version.txt`
27+
28+
bootstrap () {
29+
aclocal -I m4 && \
30+
automake --add-missing --copy build/Makefile-auto && \
31+
autoconf
32+
33+
st=$?
34+
case $st in
35+
0) true;; # Success
36+
37+
63|127) # Autotools not installed or version too old
38+
if [ $DOWNLOAD = yes ]; then
39+
echo >&2 "Bootstrap failed, downloading required files instead."
40+
bootstrap-download || exit $?
41+
else
42+
if [ $st -eq 127 ]; then
43+
verb="install"
44+
else
45+
verb="upgrade"
46+
fi
47+
echo >&2 "Bootstrap failed. Either $verb autotools or run bootstrap with"
48+
echo >&2 "the -d option to download the auto-generated files instead."
49+
exit $st
50+
fi;;
51+
52+
*) exit $st;; # Failure
53+
esac
54+
}
55+
56+
# Bootstrap by downloading the auto-generated files
57+
bootstrap-download () {
58+
source src/bin/sage-env
59+
60+
mkdir upstream 2>/dev/null
61+
if [ ! -f $CONFBALL ]; then
62+
sage-download-file $SAGE_UPSTREAM/configure/configure-$CONFVERSION.tar.gz >$CONFBALL
63+
if [ $? -ne 0 ]; then
64+
rm -f "$CONFBALL"
65+
echo >&2 "Error: downloading configure-$CONFVERSION.tar.gz failed"
66+
exit 1
67+
fi
68+
fi
69+
70+
# The "m" option to tar ensures that timestamps are set to the
71+
# current time, not taken from the tarball.
72+
# We need these files to be more recent than the input files
73+
# like configure.ac, otherwise "make" gets confused.
74+
tar xzmf $CONFBALL || exit $?
75+
}
76+
77+
save () {
78+
set -e
79+
80+
# Create configure tarball
81+
echo "Creating $CONFBALL..."
82+
mkdir -p upstream
83+
tar zcf "$CONFBALL" configure config/* build/Makefile-auto.in
84+
85+
# Update version number
86+
echo "$CONFVERSION" >$PKG/package-version.txt
87+
88+
# Compute checksum
89+
SAGE_ROOT=. src/bin/sage-fix-pkg-checksums "$CONFBALL"
90+
}
91+
92+
93+
usage () {
94+
echo >&2 "Usage: $0 [-d|-D|-s] [-i] [-h]"
95+
}
96+
97+
98+
# Parse options
99+
SAVE=no
100+
DOWNLOAD=no
101+
ALWAYSDOWNLOAD=no
102+
while getopts "Ddsih" OPTION
103+
do
104+
case "$OPTION" in
105+
D) ALWAYSDOWNLOAD=yes; DOWNLOAD=yes;;
106+
d) DOWNLOAD=yes;;
107+
s) SAVE=yes;;
108+
i) CONFVERSION=$(( CONFVERSION + 1 ));;
109+
h) usage; exit 0;;
110+
?) usage; exit 2;;
111+
esac
112+
done
113+
CONFBALL="upstream/configure-$CONFVERSION.tar.gz"
114+
115+
if [ $DOWNLOAD$SAVE = yesyes ]; then
116+
echo >&2 "$0: refusing to download and save."
117+
usage
118+
exit 2
119+
fi
120+
121+
# Start cleanly (it's not a problem if this fails)
122+
$MAKE bootstrap-clean 2>/dev/null
123+
mkdir config 2>/dev/null
124+
125+
if [ $ALWAYSDOWNLOAD = yes ]; then
126+
bootstrap-download || exit $?
127+
else
128+
bootstrap
129+
fi
130+
131+
if [ $SAVE = yes ]; then
132+
save
133+
fi

build/Makefile-auto.am

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Currently, this file is unused. However, it needs to exist to coerce
2+
# automake into thinking that this is an Automake project.

0 commit comments

Comments
 (0)