Mercurial > gub
annotate README @ 6512:ccc20ae889ca default tip guix
mingw::guile-2.0.7 builds.
author | Jan Nieuwenhuizen <janneke@gnu.org> |
---|---|
date | Thu, 24 Mar 2016 08:03:39 +0100 |
parents | 75ec1d90de17 |
children |
rev | line source |
---|---|
5619 | 1 GUB the Grand Unified Builder |
2 | |
3 • Home | |
4 • Basics | |
5 • Applications | |
6 • History | |
7 • Links | |
8 | |
4616
19096b0c252b
web/index.html: add WIP webpage based on README. Regenerate README.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
3685
diff
changeset
|
9 GUB -- Grand Unified Builder |
1149 | 10 |
11 WHAT IS GUB | |
12 | |
4792
10757b5bd177
Hysterical doco update.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4789
diff
changeset
|
13 Grand Unified Builder (GUB, http://lilypond.org/gub) is a mini source-based |
5219 | 14 distribution and packaging system. It cross-compiles several packages with |
15 their dependencies and assembles them into a single installation package. | |
16 | |
17 GUB aims at correctness ie, be dependable and reproducible, while avoiding | |
18 gratituous rebuilds. It was originally developed for turnkey building of all | |
5619 | 19 LilyPond binary installers. Currently, GUB supports GNU/Linux, FreeBSD, MacOS-X |
20 and Microsoft Windows installation packages. All packages are fully relocatable | |
21 and can be installed with user privileges. | |
22 | |
23 GUB uses plain Python classes to describe package build specifics. For | |
24 reasonably well behaved packages, individual build specifications can stay very | |
25 simple by extending the generic build specification classes. | |
26 | |
27 USAGE | |
28 | |
29 Run these programs with --help argument for instructions | |
30 | |
31 bin/gpkg - Gub Package Manager | |
32 bin/gub - the Gub Universal Builder | |
33 bin/gib - Gub (platform dependent) Installer Builder | |
34 bin/gub-tester - build tester; integrates with | |
35 Bazaar,CVS,Darcs,Git,SVN and gub | |
5627
900c579142f4
Refactor optparse.epilog and add examples to gupdate.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5623
diff
changeset
|
36 bin/gupdate - check for and show or update new upstream releases |
5619 | 37 bin/cygwin-packager - roll cygwin package |
38 | |
39 BUGS | |
40 | |
41 Send bug reports and patches to lilypond-devel@gnu.org. | |
42 | |
43 Supported installer packages | |
44 | |
45 GNU Denemo | |
46 Inkscape | |
47 GNU LilyPond | |
48 OpenOffice.org | |
49 with all essential dependencies. Currently, 207 package build specifications | |
50 are included in GUB. | |
51 | |
52 Supported installer platforms | |
1149 | 53 |
1602 | 54 darwin-ppc |
55 tar.bz2 file for Darwin 7 (MacOS 10.3)/PowerPC | |
56 | |
57 darwin-x86 | |
58 tar.bz2 file for Darwin 8 (MacOS 10.4)/x86 | |
1149 | 59 |
60 mingw | |
1474 | 61 mingw executable for Windows32 |
1149 | 62 |
2732
1f5239b9ccea
update README for new features.
hanwen <hanwen@lilypond.org>
parents:
2040
diff
changeset
|
63 linux-x86 |
1149 | 64 shar archive for Linux/x86 |
65 | |
2732
1f5239b9ccea
update README for new features.
hanwen <hanwen@lilypond.org>
parents:
2040
diff
changeset
|
66 linux-64 |
1f5239b9ccea
update README for new features.
hanwen <hanwen@lilypond.org>
parents:
2040
diff
changeset
|
67 shar archive for Linux/x86_64 |
1f5239b9ccea
update README for new features.
hanwen <hanwen@lilypond.org>
parents:
2040
diff
changeset
|
68 |
3094
6f8b7fd6a227
separate lily specific stuff for README
hanwen <hanwen@lilypond.org>
parents:
2885
diff
changeset
|
69 linux-ppc |
6f8b7fd6a227
separate lily specific stuff for README
hanwen <hanwen@lilypond.org>
parents:
2885
diff
changeset
|
70 shar archive for Linux/PowerPC |
6f8b7fd6a227
separate lily specific stuff for README
hanwen <hanwen@lilypond.org>
parents:
2885
diff
changeset
|
71 |
2732
1f5239b9ccea
update README for new features.
hanwen <hanwen@lilypond.org>
parents:
2040
diff
changeset
|
72 freebsd-x86 |
6340
75ec1d90de17
Fix README
Masamichi Hosoda <trueroad@users.noreply.github.com>
parents:
6196
diff
changeset
|
73 shar archive for FreeBSD 6/x86 |
2732
1f5239b9ccea
update README for new features.
hanwen <hanwen@lilypond.org>
parents:
2040
diff
changeset
|
74 |
3685
fbdaf0f3abcf
Also mention freebsd-64.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
3451
diff
changeset
|
75 freebsd-64 |
fbdaf0f3abcf
Also mention freebsd-64.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
3451
diff
changeset
|
76 shar archive for FreeBSD 6/x86_64 |
fbdaf0f3abcf
Also mention freebsd-64.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
3451
diff
changeset
|
77 |
2732
1f5239b9ccea
update README for new features.
hanwen <hanwen@lilypond.org>
parents:
2040
diff
changeset
|
78 cygwin |
4616
19096b0c252b
web/index.html: add WIP webpage based on README. Regenerate README.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
3685
diff
changeset
|
79 .tar.bz2 packages for Cygwin/Windows32 |
1149 | 80 |
81 arm | |
82 shar archive for Linux/ARM (largely untested) | |
83 | |
3142 | 84 debian |
85 shar archive for Debian (largely untested) | |
3148 | 86 |
3141
b7d47ce1834f
add license info to README.
Han-Wen Nienhuys <hanwen@lilypond.org>
parents:
3112
diff
changeset
|
87 LICENSE |
b7d47ce1834f
add license info to README.
Han-Wen Nienhuys <hanwen@lilypond.org>
parents:
3112
diff
changeset
|
88 |
4792
10757b5bd177
Hysterical doco update.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4789
diff
changeset
|
89 GUB is distributed under the terms of the GNU General Public License, version 2 |
4616
19096b0c252b
web/index.html: add WIP webpage based on README. Regenerate README.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
3685
diff
changeset
|
90 or later. Gub comes with NO WARRANTY. |
1149 | 91 |
92 ACQUIRING | |
93 | |
4616
19096b0c252b
web/index.html: add WIP webpage based on README. Regenerate README.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
3685
diff
changeset
|
94 The Git repository is at |
2734 | 95 |
4616
19096b0c252b
web/index.html: add WIP webpage based on README. Regenerate README.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
3685
diff
changeset
|
96 http://github.com/janneke/gub |
2734 | 97 |
4616
19096b0c252b
web/index.html: add WIP webpage based on README. Regenerate README.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
3685
diff
changeset
|
98 You can get it by doing |
1149 | 99 |
4616
19096b0c252b
web/index.html: add WIP webpage based on README. Regenerate README.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
3685
diff
changeset
|
100 git clone git://github.com/janneke/gub.git |
1149 | 101 |
4664
c34d2bae97a8
Add tarball download to web page.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4662
diff
changeset
|
102 or download the latest tarball doing |
c34d2bae97a8
Add tarball download to web page.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4662
diff
changeset
|
103 |
c34d2bae97a8
Add tarball download to web page.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4662
diff
changeset
|
104 wget http://github.com/janneke/gub/tarball/master |
c34d2bae97a8
Add tarball download to web page.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4662
diff
changeset
|
105 |
c34d2bae97a8
Add tarball download to web page.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4662
diff
changeset
|
106 GUB home page |
4662 | 107 |
108 http://lilypond.org/gub | |
109 | |
1463 | 110 INSTALLING |
1149 | 111 |
4616
19096b0c252b
web/index.html: add WIP webpage based on README. Regenerate README.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
3685
diff
changeset
|
112 * You need |
4926 | 113 - about 9 GB of free space (for all platforms) |
4661 | 114 - standard unix shell utilities: cat, cp, install, mv, rm, sed, ... |
115 - a standard unix development environment with GCC and G++ | |
5619 | 116 - Python 2.4 or newer (2.5, 2.6, 3.0 are known to work) |
4654
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
117 |
4616
19096b0c252b
web/index.html: add WIP webpage based on README. Regenerate README.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
3685
diff
changeset
|
118 * Try |
19096b0c252b
web/index.html: add WIP webpage based on README. Regenerate README.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
3685
diff
changeset
|
119 bin/gub --help |
4654
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
120 make help |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
121 |
4770 | 122 Examples |
123 | |
5003
d5e2c9288326
Update makefiles for gub3.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4926
diff
changeset
|
124 * Prepare a cross build environment for darwin-x86 |
4770 | 125 |
126 bin/gub darwin-x86::cross/gcc | |
4654
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
127 |
5219 | 128 * Cross build bison for FreeBSD x86_64 |
129 | |
130 bin/gub freebsd-64::ftp://ftp.gnu.org/pub/gnu/bison/bison-2.3.tar.gz | |
131 | |
132 * Make a LilyPond installer for your platform | |
1151 | 133 |
5007 | 134 bin/gub lilypond-installer |
135 | |
136 this leaves the installer in uploads/ | |
4654
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
137 |
5003
d5e2c9288326
Update makefiles for gub3.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4926
diff
changeset
|
138 * Build Inkscape for your platform |
d5e2c9288326
Update makefiles for gub3.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4926
diff
changeset
|
139 |
5007 | 140 bin/gub inkscape-installer |
141 | |
5219 | 142 this leaves the installer in uploads/ |
4654
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
143 |
5226 | 144 * Cross build OpenOffice (go-oo.org) for Windows (mingw32) |
145 | |
146 make openoffice | |
147 | |
148 this leaves the Windows installer in uploads/ | |
149 | |
5279
e35113cb1d5c
Update doc with Denemo info.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5240
diff
changeset
|
150 * Cross build Denemo (http://denemo.org) for Windows (mingw32) |
e35113cb1d5c
Update doc with Denemo info.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5240
diff
changeset
|
151 |
e35113cb1d5c
Update doc with Denemo info.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5240
diff
changeset
|
152 make denemo |
e35113cb1d5c
Update doc with Denemo info.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5240
diff
changeset
|
153 |
e35113cb1d5c
Update doc with Denemo info.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5240
diff
changeset
|
154 this leaves the Windows installer in uploads/ |
e35113cb1d5c
Update doc with Denemo info.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5240
diff
changeset
|
155 |
6047
e790935a9c28
web/basics: salvage Graham's Sharing Directories warning.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5997
diff
changeset
|
156 |
e790935a9c28
web/basics: salvage Graham's Sharing Directories warning.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5997
diff
changeset
|
157 |
5619 | 158 GUB the Grand Unified Builder |
1151 | 159 |
5619 | 160 • Home |
161 • Basics | |
162 • Applications | |
163 • History | |
164 • Links | |
1149 | 165 |
5619 | 166 GUB BASICS |
167 | |
168 ROADMAP | |
1149 | 169 |
5631
8ceb906705ac
Re-instate per-package build logs. Move old logs out of the way.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5627
diff
changeset
|
170 directory contents and use |
8ceb906705ac
Re-instate per-package build logs. Move old logs out of the way.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5627
diff
changeset
|
171 . (GNUmakefile, *.make) make drivers (try: make help) |
8ceb906705ac
Re-instate per-package build logs. Move old logs out of the way.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5627
diff
changeset
|
172 bin/ programs (gub, gpkg, gib, ...; try: bin/gub --help) |
8ceb906705ac
Re-instate per-package build logs. Move old logs out of the way.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5627
diff
changeset
|
173 gub/ python library |
8ceb906705ac
Re-instate per-package build logs. Move old logs out of the way.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5627
diff
changeset
|
174 gub/specs/ build specifications (gub/specs/ |
8ceb906705ac
Re-instate per-package build logs. Move old logs out of the way.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5627
diff
changeset
|
175 hello.py,bison.py,denemo.py,lilypond.py...) |
8ceb906705ac
Re-instate per-package build logs. Move old logs out of the way.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5627
diff
changeset
|
176 patches/ patch files used in build specifications |
8ceb906705ac
Re-instate per-package build logs. Move old logs out of the way.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5627
diff
changeset
|
177 target/ build trees |
8ceb906705ac
Re-instate per-package build logs. Move old logs out of the way.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5627
diff
changeset
|
178 log/ (gub.log, ...) (build) log files |
8ceb906705ac
Re-instate per-package build logs. Move old logs out of the way.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5627
diff
changeset
|
179 uploads/ installers |
8ceb906705ac
Re-instate per-package build logs. Move old logs out of the way.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5627
diff
changeset
|
180 target/<platform>/ working tree for <platform> |
8ceb906705ac
Re-instate per-package build logs. Move old logs out of the way.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5627
diff
changeset
|
181 target/linux-x86/src/ linux-x86 unpacked sources |
8ceb906705ac
Re-instate per-package build logs. Move old logs out of the way.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5627
diff
changeset
|
182 target/linux-64/build/ linux-64 build output |
8ceb906705ac
Re-instate per-package build logs. Move old logs out of the way.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5627
diff
changeset
|
183 target/darwin-x86/log/ darwin-x86 most recent lilypond build log |
8ceb906705ac
Re-instate per-package build logs. Move old logs out of the way.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5627
diff
changeset
|
184 lilypond.log |
8ceb906705ac
Re-instate per-package build logs. Move old logs out of the way.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5627
diff
changeset
|
185 target/mingw/packages/ .gup packages for mingw |
8ceb906705ac
Re-instate per-package build logs. Move old logs out of the way.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5627
diff
changeset
|
186 target/darwin-ppc/log/ status of partial darwin-ppc builds |
5619 | 187 status/ |
5631
8ceb906705ac
Re-instate per-package build logs. Move old logs out of the way.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5627
diff
changeset
|
188 target/freebsd-x86/root/ freebsd-x86 build and install root |
8ceb906705ac
Re-instate per-package build logs. Move old logs out of the way.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5627
diff
changeset
|
189 target/tools/root/usr/ native tools used for build |
5619 | 190 bin/ |
5631
8ceb906705ac
Re-instate per-package build logs. Move old logs out of the way.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5627
diff
changeset
|
191 sourcefiles/ non-patch files used in build specifications |
5675 | 192 nsis/ nsis windows installer scripts |
5619 | 193 |
5842
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
194 BASIC WORKINGS |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
195 |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
196 Checksums and rebuilds |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
197 |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
198 GUB seeks to minimise unnecessary rebuilds while being strict about important |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
199 changes. Before starting the actual building of a package, the build recipe is |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
200 executed as a dry-run and a checksum is calculated from these build commands. |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
201 This checksum includes the environment variables DISPLAY, FTP_PROXY, |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
202 GUB_TOOLS_PREFIX, HOME, HTTP_PROXY, LIBRESTRICT, PATH [no other environment |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
203 variables are allowed through]. |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
204 |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
205 The packages' build checksum is matched with the previous build and if it |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
206 changes, the package is rebuilt. Otherwise, only the binary package is |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
207 reinstalled, if necessary. This means that the .py build specs can be changed |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
208 and refactored at will and as long as no actual build commands change, nothing |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
209 will be rebuilt. |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
210 |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
211 This makes that forcing rebuilds can can be tricky: gub refuses to do so if it |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
212 deems rebuilding unnecessary. |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
213 |
5997
5ae0f63b2207
Don't panic about a change in ABI environment var.
Graham Percival <graham@percival-music.ca>
parents:
5842
diff
changeset
|
214 SHARING DIRECTORIES |
5ae0f63b2207
Don't panic about a change in ABI environment var.
Graham Percival <graham@percival-music.ca>
parents:
5842
diff
changeset
|
215 |
5ae0f63b2207
Don't panic about a change in ABI environment var.
Graham Percival <graham@percival-music.ca>
parents:
5842
diff
changeset
|
216 GUB uses an ABI environment variable to work around some build bugs in some |
6047
e790935a9c28
web/basics: salvage Graham's Sharing Directories warning.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5997
diff
changeset
|
217 packages. This variable is not checked by the environment-changed function, so |
e790935a9c28
web/basics: salvage Graham's Sharing Directories warning.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5997
diff
changeset
|
218 problems will probably occur if you share your GUB build directory between a |
e790935a9c28
web/basics: salvage Graham's Sharing Directories warning.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5997
diff
changeset
|
219 32-bit and 64-bit OS. If you change your operating system, delete the target/ |
e790935a9c28
web/basics: salvage Graham's Sharing Directories warning.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5997
diff
changeset
|
220 directory of GUB before trying to build it again. |
5997
5ae0f63b2207
Don't panic about a change in ABI environment var.
Graham Percival <graham@percival-music.ca>
parents:
5842
diff
changeset
|
221 |
5842
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
222 LIBRESTRICT |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
223 |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
224 A common problem with [making reproducible cross] builds is using files or |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
225 features that are not controlled by the [GUB] build process, but just happen to |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
226 be on the build host and happen to differ between most build hosts. |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
227 |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
228 GUB uses the LD_PRELOAD feature with the gub/specs/librestrict.py package and |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
229 code from ./librestrict/restrict.c to disallow reading from build host files. |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
230 This makes for much better reprocucibility, especially between different build |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
231 hosts. |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
232 |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
233 The downside to this LIBRESTRICT feature is that quit a few packages are not |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
234 prepared for cross building. LIBRESTRICT will catch these errors and they have |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
235 to be fixed in the package's spec file. |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
236 |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
237 This is what such a LIBRESTRICT assertion could like |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
238 |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
239 librestrict:error:/home/janneke/vc/gub/target/mingw/root/usr/cross/libexec/gcc/i686-mingw32/4.1.1/cc1plus: tried to open () file /home/janneke/vc/lilypond/lily/main.cc |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
240 librestrict:allowed: |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
241 /home/janneke/vc/gub/target/mingw |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
242 /tmp |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
243 /dev/null |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
244 /dev/urandom |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
245 /proc/self |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
246 cc1plus: internal compiler error: Aborted |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
247 Please submit a full bug report, |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
248 with preprocessed source if appropriate. |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
249 See for instructions. |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
250 [1]10:42:08 janneke@peder:~/vc/gub |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
251 $ |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
252 |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
253 you often find these in config.log files when package-dependant code blondly |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
254 looks in /usr/include or /usr/lib. |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
255 |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
256 stat-restriction |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
257 |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
258 LIBRESTRICT has an experimental strict mode enabled by setting the environment |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
259 variable |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
260 |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
261 LIBRESTRICT=open:stat |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
262 |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
263 This will even disallow any STATting outside the target's build tree. It would |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
264 be nice to get this to work and some effort has been done. However, this is |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
265 potentially a lot of work as not only upstream packages but also build system |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
266 authors [autoconf, automake, libtool etc.] look at the build host root file |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
267 system while cross building. |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
268 |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
269 Simplifying package builds or avoiding code duplication |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
270 |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
271 Another idea of GUB is to identify, fix and generalise build quircks and move |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
272 them from a package's spec file into one of the generic build classes. This |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
273 increases maintainability by avoiding code duplication, makes spec files |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
274 smaller, simpler and also increases the chances of a new package's spec file to |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
275 only need a source url to specify the build. |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
276 |
5619 | 277 BASIC USAGE |
278 | |
5842
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
279 Build package hello for platform linux-x86 |
4616
19096b0c252b
web/index.html: add WIP webpage based on README. Regenerate README.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
3685
diff
changeset
|
280 |
5842
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
281 bin/gub linux-x86::hello |
5619 | 282 |
5842
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
283 Examine why package hello wants to rebuild |
5619 | 284 |
5842
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
285 less target/linux-x86/log/build.log |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
286 search from end back to `mismatch:' [type: FC-c?mismatch:RET] |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
287 |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
288 Force a rebuild of package hello for platform linux-x86 |
5619 | 289 |
5842
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
290 rm -rf target/linux-x86/*/hello-* |
5619 | 291 |
5842
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
292 Force a rebuild of package hello for all platforms |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
293 |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
294 rm -rf target/*/*/hello-* |
5619 | 295 |
5842
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
296 Prepare to rebuild entire linux-x86 platform |
4792
10757b5bd177
Hysterical doco update.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4789
diff
changeset
|
297 |
5842
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
298 rm -rf target/linux-x86 |
5619 | 299 |
5842
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
300 Prepare to rebuild everything, all platforms |
5619 | 301 |
302 rm -rf target | |
303 | |
304 SPEC FILES | |
305 | |
306 Plain url builds | |
307 | |
308 <--no spec--> | |
309 | |
310 Well behaved packages can be built without spec file, straight from an url. For | |
311 example, to build bison-2.2 as a build tool, do | |
312 | |
313 bin/gub tools::http://ftp.gnu.org/pub/gnu/bison/bison-2.2.tar.gz | |
4792
10757b5bd177
Hysterical doco update.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4789
diff
changeset
|
314 |
5619 | 315 |
316 This produces | |
317 | |
318 target/tools/packages/bison-2.2.tools.gup | |
319 target/tools/packages/bison.tools.hdr | |
320 target/tools/packages/bison.checksum | |
321 | |
322 | |
323 Check files installed under target/tools/root/ by doing | |
324 | |
325 bin/gpkg -p tools files bison | |
326 | |
327 | |
328 To build the very latest findutils for your architecture, do | |
329 | |
330 bin/gub git://git.savannah.gnu.org/findutils.git | |
331 | |
332 | |
333 Simple spec | |
334 | |
335 gub/specs/hello.py | |
336 | |
337 from gub import target | |
338 | |
339 class Hello (target.AutoBuild): | |
340 source = 'http://lilypond.org/download/gub-sources/hello-1.0.tar.gz' | |
341 | |
342 | |
343 build it for mingw by doing | |
344 | |
345 bin/gub mingw::hello | |
346 | |
347 | |
348 __TOOLS package with dependencies | |
4792
10757b5bd177
Hysterical doco update.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4789
diff
changeset
|
349 |
5619 | 350 gub/specs/autoconf.py |
351 | |
352 from gub import tools | |
353 | |
354 class Autoconf__tools (tools.AutoBuild): | |
355 source = 'http://ftp.gnu.org/pub/gnu/autoconf/autoconf-2.63.tar.gz' | |
356 parallel_build_broken = True | |
357 dependencies = [ | |
358 'm4', | |
359 'perl', | |
360 ] | |
361 | |
362 | |
363 build it by doing | |
364 | |
365 bin/gub tools::autoconf | |
366 | |
4792
10757b5bd177
Hysterical doco update.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4789
diff
changeset
|
367 |
5643
8eeafefb636b
Grand makeflags () -> class.makeflags replace.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5631
diff
changeset
|
368 configure flags |
8eeafefb636b
Grand makeflags () -> class.makeflags replace.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5631
diff
changeset
|
369 |
8eeafefb636b
Grand makeflags () -> class.makeflags replace.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5631
diff
changeset
|
370 gub/specs/icoutils.py |
8eeafefb636b
Grand makeflags () -> class.makeflags replace.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5631
diff
changeset
|
371 |
8eeafefb636b
Grand makeflags () -> class.makeflags replace.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5631
diff
changeset
|
372 from gub import tools |
5619 | 373 |
5643
8eeafefb636b
Grand makeflags () -> class.makeflags replace.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5631
diff
changeset
|
374 class Icoutils__tools (tools.AutoBuild): |
8eeafefb636b
Grand makeflags () -> class.makeflags replace.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5631
diff
changeset
|
375 dependencies = ['libpng-devel'] |
8eeafefb636b
Grand makeflags () -> class.makeflags replace.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5631
diff
changeset
|
376 configure_flags = (tools.AutoBuild.configure_flags |
8eeafefb636b
Grand makeflags () -> class.makeflags replace.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5631
diff
changeset
|
377 + ' --with-libintl-prefix=%(system_prefix)s' |
8eeafefb636b
Grand makeflags () -> class.makeflags replace.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5631
diff
changeset
|
378 + ' --disable-nls') |
8eeafefb636b
Grand makeflags () -> class.makeflags replace.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5631
diff
changeset
|
379 |
8eeafefb636b
Grand makeflags () -> class.makeflags replace.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5631
diff
changeset
|
380 |
5648 | 381 __<platform>__<arch>-specific instructions |
5643
8eeafefb636b
Grand makeflags () -> class.makeflags replace.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5631
diff
changeset
|
382 |
8eeafefb636b
Grand makeflags () -> class.makeflags replace.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5631
diff
changeset
|
383 For platform specific instructions, append "__<platform>" to the class name. |
8eeafefb636b
Grand makeflags () -> class.makeflags replace.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5631
diff
changeset
|
384 For platform+architecture-specific instructions, "__<platform>__<arch>" to the |
5842
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
385 class name. |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
386 |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
387 gub/specs/pixman.py |
5619 | 388 |
389 from gub import target | |
4792
10757b5bd177
Hysterical doco update.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4789
diff
changeset
|
390 |
5643
8eeafefb636b
Grand makeflags () -> class.makeflags replace.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5631
diff
changeset
|
391 class Glib (target.AutoBuild): |
8eeafefb636b
Grand makeflags () -> class.makeflags replace.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5631
diff
changeset
|
392 ... |
8eeafefb636b
Grand makeflags () -> class.makeflags replace.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5631
diff
changeset
|
393 |
8eeafefb636b
Grand makeflags () -> class.makeflags replace.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5631
diff
changeset
|
394 class Glib__freebsd (Glib): |
8eeafefb636b
Grand makeflags () -> class.makeflags replace.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5631
diff
changeset
|
395 dependencies = Glib.dependencies + ['libiconv-devel'] |
8eeafefb636b
Grand makeflags () -> class.makeflags replace.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5631
diff
changeset
|
396 configure_variables = Glib.configure_variables + ' CFLAGS=-pthread' |
4792
10757b5bd177
Hysterical doco update.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4789
diff
changeset
|
397 |
5643
8eeafefb636b
Grand makeflags () -> class.makeflags replace.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5631
diff
changeset
|
398 class Glib__freebsd__x86 (Glib__freebsd): |
8eeafefb636b
Grand makeflags () -> class.makeflags replace.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5631
diff
changeset
|
399 # Must include -pthread in lib flags, because our most beloved |
8eeafefb636b
Grand makeflags () -> class.makeflags replace.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5631
diff
changeset
|
400 # libtool (2.2.6a) thinks it knows best and blondly strips -pthread |
8eeafefb636b
Grand makeflags () -> class.makeflags replace.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5631
diff
changeset
|
401 # if it thinks it's a compile flag. |
8eeafefb636b
Grand makeflags () -> class.makeflags replace.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5631
diff
changeset
|
402 # FIXME: should add fixup to update_libtool () |
8eeafefb636b
Grand makeflags () -> class.makeflags replace.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5631
diff
changeset
|
403 compile_flags = ' G_THREAD_LIBS=-pthread G_THREAD_LIBS_FOR_GTHREAD=-pthread ' |
5619 | 404 |
405 | |
5842
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
406 String expansion |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
407 |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
408 In all build commands, standard Python string expansion |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
409 |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
410 %(string-name)s |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
411 |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
412 |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
413 can be used. These strings are taken from class Settings in gub/settings.py and |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
414 from the package's build class and its parent classes. |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
415 |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
416 Adding string expansion variables to a spec build class can be done in several |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
417 ways |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
418 |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
419 • class variable |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
420 |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
421 class Foo (target.Autobuild): |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
422 common_configure_flags = ' --without-java' |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
423 |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
424 |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
425 • instance variable |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
426 |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
427 class Foo__mingw (Foo): |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
428 def __init__ (self, settings, source): |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
429 Foo.__init__ (self, settings, source) |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
430 self.target_gcc_flags = '-mms-bitfields' |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
431 |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
432 |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
433 • decorated funtion returning a string |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
434 |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
435 class Bar__mingw (target.Autobuild): |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
436 @context.subst_method |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
437 def target_os (self): |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
438 return 'windows' |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
439 |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
440 |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
441 • Manipulating the substitution_dict using gub/build.py's class Change_dict |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
442 or overriding the get_substitution_dict method. |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
443 |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
444 Pre-defined strings |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
445 |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
446 Typical variables defined by settings are |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
447 |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
448 build_architecture=x86_64-linux |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
449 build_os=linux |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
450 build_platform=linux-64 |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
451 platform=target |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
452 target_architecture=x86_64-linux |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
453 target_bits=64 |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
454 target_cpu=x86_64 |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
455 target_os=linux |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
456 target_platform=target |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
457 |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
458 |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
459 Typical variables defined by the build class |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
460 |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
461 compile_flags= |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
462 builddir=.../target/build/... |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
463 config_cache_overrides= |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
464 configure_binary= .../configure |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
465 configure_command= sh .../configure ... |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
466 configure_flags= --prefix=... --enable-shared --enable-static |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
467 configure_variables= CFLAGS=-I.../target/root/usr/include |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
468 install_command= |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
469 install_flags= |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
470 install_prefix= |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
471 install_root= |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
472 make_flags= |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
473 srcdir=.../target/src/... |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
474 |
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
475 |
5619 | 476 More examples |
477 | |
5648 | 478 See gub/specs/*.py for some more examples. |
6047
e790935a9c28
web/basics: salvage Graham's Sharing Directories warning.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5997
diff
changeset
|
479 |
e790935a9c28
web/basics: salvage Graham's Sharing Directories warning.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5997
diff
changeset
|
480 |
e790935a9c28
web/basics: salvage Graham's Sharing Directories warning.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5997
diff
changeset
|
481 |
4654
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
482 GUB -- LilyPond |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
483 |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
484 INSTALLING |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
485 |
5230 | 486 Get GUB |
487 | |
488 git clone git://github.com/janneke/gub.git | |
489 or | |
490 wget http://github.com/janneke/gub/tarball/master | |
491 | |
4654
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
492 In addition to the requirements for GUB, you need |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
493 |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
494 • A TeX installation |
6196
a20b5d52d48d
Document need for zip and regenerate README [ make README ].
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
6195
diff
changeset
|
495 • texinfo |
a20b5d52d48d
Document need for zip and regenerate README [ make README ].
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
6195
diff
changeset
|
496 • zip |
4654
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
497 |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
498 Build everything |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
499 |
5003
d5e2c9288326
Update makefiles for gub3.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4926
diff
changeset
|
500 make lilypond |
4654
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
501 |
5003
d5e2c9288326
Update makefiles for gub3.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4926
diff
changeset
|
502 this leaves installers and documentation in |
4654
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
503 |
5219 | 504 uploads/lilypond-VERSION-RELEASE.darwin-ppc.tar.bz2 |
505 uploads/lilypond-VERSION-RELEASE.darwin-x86.tar.bz2 | |
506 uploads/lilypond-VERSION-RELEASE.freebsd-64.shar.sh | |
507 uploads/lilypond-VERSION-RELEASE.freebsd-x86.shar.sh | |
508 uploads/lilypond-VERSION-RELEASE.linux-64.shar.sh | |
509 uploads/lilypond-VERSION-RELEASE.linux-ppc.shar.sh | |
510 uploads/lilypond-VERSION-RELEASE.linux-x86.shar.sh | |
511 uploads/lilypond-VERSION-RELEASE.mingw.exe | |
512 | |
513 uploads/lilypond-VERSION-RELEASE.documentation.tar.bz2 | |
514 uploads/lilypond-VERSION-RELEASE.webdoc.tar.bz2 | |
4654
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
515 uploads/webdoc/VERSION |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
516 |
5219 | 517 uploads/lilypond-VERSION-RELEASE.test-output.tar.bz2 |
5842
cfc6f90aa8da
Add some more basic documentation.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5822
diff
changeset
|
518 uploads/wbtest/VERSION |
5219 | 519 |
520 More examples | |
521 | |
522 * Make a LilyPond installer for your platform | |
523 | |
524 bin/gub lilypond-installer | |
525 | |
526 OR (old style) | |
527 | |
528 bin/gub lilypond # package with dependencies | |
529 bin/gib --branch=lilypond=git.sv.gnu.org--lilypond.git-master lilypond #installer | |
530 | |
531 * Build all LilyPond installers | |
532 | |
533 make lilypond | |
534 | |
535 this leaves installers for GNU/Linux (x86, x86_64, powerpc), | |
536 Windows, MacOSX (x86 and powerpc), FreeBSD (x86, x86_64) and | |
537 documentation in uploads/ | |
538 | |
5619 | 539 * Optional: Prepare build environment |
540 | |
541 make -f lilypond.make bootstrap | |
542 | |
4654
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
543 TESTING |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
544 |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
545 The test-lily directory contains scripts for running various tests. Run without |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
546 arguments for instructions |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
547 |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
548 cron-builder.py - entry point from continuous crontab testing |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
549 test-binary.py - test binary builds |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
550 with-lock.py - run a command with a lockfile |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
551 rsync-lily-doc.py |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
552 - prepare documentation for upload |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
553 dist-check.py - check tarball for anomalies |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
554 cygwin-packager.py |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
555 - repackage GUB packages into Cygwin tarballs. |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
556 |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
557 CRON USAGE |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
558 |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
559 I have the following in my crontab |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
560 |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
561 • Hourly build of LilyPond subpackage for all platforms except native (native |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
562 is darwin-pcc?) |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
563 |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
564 test-lily/cron-builder.py --package\ |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
565 --test-options "--to lilypond-cvs@gnu.org --quiet --from hanwen@lilypond.org |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
566 --smtp smtp.xs4all.nl --repository downloads/lilypond.git"\ |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
567 darwin-x86 freebsd-x86 freebsd-64 mingw linux-x86 linux-64 |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
568 |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
569 • Hourly build of native installer, to run documentation and dist check. |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
570 |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
571 test-lily/cron-builder.py\ |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
572 --package --installer --tarball --docs\ |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
573 --test-options "--to lilypond-cvs@gnu.org --dependent --quiet\ |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
574 --from hanwen@lilypond.org --smtp smtp.xs4all.nl --repository downloads/lilypond.git"\ |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
575 --unversioned\ |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
576 darwin-ppc |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
577 |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
578 • Nightly build of all installers, to be ready for shipping binaries in the |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
579 morning. |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
580 |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
581 test-lily/cron-builder.py\ |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
582 --installer\ |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
583 --test-options "--to lilypond-cvs@gnu.org --quiet --from hanwen@lilypond.org\ |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
584 --smtp smtp.xs4all.nl --repository downloads/lilypond.git"\ |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
585 darwin-x86 freebsd-x86 freebsd-64 mingw linux-x86 linux-64 darwin-ppc |
32f3d654ccad
Update web and READMEs.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
4637
diff
changeset
|
586 |
6047
e790935a9c28
web/basics: salvage Graham's Sharing Directories warning.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5997
diff
changeset
|
587 |
e790935a9c28
web/basics: salvage Graham's Sharing Directories warning.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5997
diff
changeset
|
588 |
5619 | 589 GUB -- GNU Denemo |
590 | |
591 INSTALLING | |
592 | |
593 Get GUB | |
594 | |
595 git clone git://github.com/janneke/gub.git | |
596 or | |
597 wget http://github.com/janneke/gub/tarball/master | |
598 | |
599 Build everything | |
600 | |
601 make denemo | |
602 | |
603 this produces a windows installer in | |
604 | |
605 uploads/denemo-x.y.z-b.mingw.exe | |
606 | |
607 More examples | |
608 | |
609 * Build main Denemo installers | |
610 | |
611 make PLATFORMS='mingw linux-x86 linux-64' denemo | |
612 | |
613 * Build all Denemo installers | |
614 | |
615 make 'PLATFORMS=mingw linux-x86 linux-64 linux-ppc darwin-ppc darwin-x86 freebsd-x86 freebsd-64' denemo | |
616 | |
617 this leaves installers for GNU/Linux (x86, x86_64, powerpc), | |
618 FreeBSD (x86, x86_64) and Windows, and documentation in uploads/ | |
619 | |
620 OR (old style) | |
621 | |
622 bin/gub denemo | |
623 bin/gib denemo --branch=lilypond=git.sv.gnu.org--lilypond.git-master --branch=denemo=git.savannah.gnu.org--denemo.git-master | |
624 | |
625 * Optional: Prepare build environment | |
626 | |
627 make -f lilypond.make bootstrap | |
628 | |
6047
e790935a9c28
web/basics: salvage Graham's Sharing Directories warning.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5997
diff
changeset
|
629 |
e790935a9c28
web/basics: salvage Graham's Sharing Directories warning.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5997
diff
changeset
|
630 |
5219 | 631 GUB -- Inkscape |
632 | |
633 INSTALLING | |
634 | |
635 Optional: Prepare build environment | |
636 | |
637 make -f inkscape.make bootstrap | |
638 | |
639 Build everything | |
640 | |
641 make inkscape | |
642 | |
643 this leaves installers in uploads/ | |
644 | |
645 More examples | |
646 | |
647 * Build all Inkscape installers | |
648 | |
649 make inkscape | |
650 | |
651 this leaves installers for GNU/Linux (x86, x86_64, powerpc), | |
652 FreeBSD (x86, x86_64) and Windows, and documentation in uploads/ | |
653 | |
654 OR (old style) | |
655 | |
656 bin/gub inkscape | |
657 bin/gib inkscape --branch=inkscape=trunk inkscape | |
658 | |
6047
e790935a9c28
web/basics: salvage Graham's Sharing Directories warning.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5997
diff
changeset
|
659 |
e790935a9c28
web/basics: salvage Graham's Sharing Directories warning.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5997
diff
changeset
|
660 |
5283
617aec94aeea
Update OpenOffice.org doc with GSoC info.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5279
diff
changeset
|
661 GUB -- OpenOffice.org |
5219 | 662 |
663 INSTALLING | |
664 | |
5230 | 665 Get GUB |
666 | |
667 git clone git://github.com/janneke/gub.git | |
668 or | |
669 wget http://github.com/janneke/gub/tarball/master | |
670 | |
5219 | 671 In addition to the requirements for GUB, you need |
672 | |
673 • wine: to run regcomp.exe and lngconvex.exe and possibly other cross-build | |
674 ignorant build tools that are compile-time tied to the build platform | |
675 | |
5283
617aec94aeea
Update OpenOffice.org doc with GSoC info.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5279
diff
changeset
|
676 Ongoing work |
617aec94aeea
Update OpenOffice.org doc with GSoC info.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5279
diff
changeset
|
677 |
617aec94aeea
Update OpenOffice.org doc with GSoC info.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5279
diff
changeset
|
678 The cross building of OpenOffice.org for mingw32 is still a work in progress |
617aec94aeea
Update OpenOffice.org doc with GSoC info.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5279
diff
changeset
|
679 (WIP). The build in GUB will succeeed and an installer can be created, but |
617aec94aeea
Update OpenOffice.org doc with GSoC info.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5279
diff
changeset
|
680 services.rdb may not build correctly. |
617aec94aeea
Update OpenOffice.org doc with GSoC info.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5279
diff
changeset
|
681 |
617aec94aeea
Update OpenOffice.org doc with GSoC info.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5279
diff
changeset
|
682 GSoC 2009 |
617aec94aeea
Update OpenOffice.org doc with GSoC info.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5279
diff
changeset
|
683 |
617aec94aeea
Update OpenOffice.org doc with GSoC info.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5279
diff
changeset
|
684 Luckily, Jesús Corrius has accepted the challenge to make this mingw32 Go-Oo |
617aec94aeea
Update OpenOffice.org doc with GSoC info.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5279
diff
changeset
|
685 OpenOffice.org almost-prove-concept hack into a real port, provide clean |
617aec94aeea
Update OpenOffice.org doc with GSoC info.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5279
diff
changeset
|
686 solutions for all the hackweek mess leftovers, make it work as expected, in |
617aec94aeea
Update OpenOffice.org doc with GSoC info.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5279
diff
changeset
|
687 other words: actually usable and run on Windows. |
617aec94aeea
Update OpenOffice.org doc with GSoC info.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5279
diff
changeset
|
688 |
617aec94aeea
Update OpenOffice.org doc with GSoC info.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5279
diff
changeset
|
689 Jesús is working together with Fridrich Strba to clean up and update some of |
617aec94aeea
Update OpenOffice.org doc with GSoC info.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5279
diff
changeset
|
690 the cross build and mingw32 patches, while implementing and porting the missing |
617aec94aeea
Update OpenOffice.org doc with GSoC info.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5279
diff
changeset
|
691 bits of the mingw32 cross build to openSUSE's osc build system. |
617aec94aeea
Update OpenOffice.org doc with GSoC info.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5279
diff
changeset
|
692 |
617aec94aeea
Update OpenOffice.org doc with GSoC info.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5279
diff
changeset
|
693 When jcorrius announces it works, his fixes will be incorporated in GUB to |
617aec94aeea
Update OpenOffice.org doc with GSoC info.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5279
diff
changeset
|
694 provide turnkey OpenOffice.org Windows binaries and installers. |
5219 | 695 |
696 Build everything | |
697 | |
698 make openoffice | |
699 | |
700 this produces a windows installer in | |
701 | |
702 uploads/openoffice-COMMITTISH.mingw.exe | |
703 | |
704 More examples | |
705 | |
706 * Cross build OpenOffice for Windows: | |
707 | |
708 bin/gub mingw::openoffice | |
709 | |
710 * Make the nsis installer | |
711 | |
712 bin/gib mingw::openoffice | |
713 | |
5619 | 714 * Optional: Prepare build environment |
715 | |
716 make -f lilypond.make bootstrap | |
717 | |
5219 | 718 The package |
719 | |
720 bin/gub tools::openoffice | |
721 | |
722 is a work in progress and attempts to build a tiny fraction of openoffice for | |
5230 | 723 the build tools. |
5219 | 724 |
725 See also | |
726 | |
5619 | 727 http://github.com/janneke/gub/tree/master/patches |
728 http://lilypond.org/blog/janneke/gub3-ooo-mingw-cross-build | |
6047
e790935a9c28
web/basics: salvage Graham's Sharing Directories warning.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5997
diff
changeset
|
729 |
e790935a9c28
web/basics: salvage Graham's Sharing Directories warning.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5997
diff
changeset
|
730 |
e790935a9c28
web/basics: salvage Graham's Sharing Directories warning.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5997
diff
changeset
|
731 |
5619 | 732 GUB the Grand Unified Builder |
733 | |
734 • Home | |
735 • Basics | |
736 • Applications | |
737 • History | |
738 • Links | |
739 | |
740 GUB -- Grand Unified Builder -- HISTORY | |
741 | |
742 HISTORY | |
743 | |
744 The story starts June 1999 with a crazy guy with an itch to run LilyPond on | |
745 Windows. To get a feel for the times, this was LilyPond-1.1.47, requiring Egcs | |
746 1.1, Python 1.5, Guile 1.3, discussing on help-gnu-music@gnu.org. Two years | |
747 later Cygwin cross, our first cross build environment is released. | |
748 | |
749 This is evolved into a patch set for mknetrel. Spring 2005: In a bold move a | |
750 set of patches for MinGW are created to build LilyPond and all its [17] | |
751 dependencies. Simultaniously, a cross build environment and installer for | |
752 MacOSX is created. | |
753 | |
754 Creating a cross build environment is not too difficult, esp. not if you know | |
755 how to use Google. The problem is that they always break and never work on | |
756 other machines. GUB starts as an effort to unify the Windows and MacOS builders | |
757 and to make the process somewhat dependable and reproducible, i.e.: even more | |
758 free time for the developers (if there is such a thing) as the builds always | |
759 succeed. It uses Python instead of make and bash and adds checksums for the | |
760 package build specs. The unification of cross builds greatly facilitates adding | |
761 of new architectures and before long GUB supports cross building lilypond | |
762 binaries for 9 different platforms. | |
763 | |
764 GUB2 adds serialization of the Python build code before execution. This makes | |
765 the build checksumming less coarse, ie, less gratuitous rebuilds and more | |
766 reliable. Also, all Python code is executed before the build process starts, | |
767 which means that there is less chance of silly run time errors. Lots of | |
768 packages are added in an effort to replace the OpenEmbedded-based build system | |
769 for the Samco 3G video phone at SES, Philips Research Eindhoven. | |
770 | |
771 In Novell's Hackweek-iii GUB enters into its Third Life with GUB3, adding | |
772 cross-platform build dependencies and patches for an OpenOffice.org MinGW cross | |
773 build, including all essential libraries. Later, Inkscape is added, exploring | |
5620
f016a712bf91
History update and fixlet.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5619
diff
changeset
|
774 and implementing x.org dependencies. After that, building a windows installer |
f016a712bf91
History update and fixlet.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5619
diff
changeset
|
775 for GNU Denemo took only one day, including all dependencies. |
5619 | 776 |
6047
e790935a9c28
web/basics: salvage Graham's Sharing Directories warning.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5997
diff
changeset
|
777 |
e790935a9c28
web/basics: salvage Graham's Sharing Directories warning.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5997
diff
changeset
|
778 |
5619 | 779 GUB the Grand Unified Builder |
780 | |
781 • Home | |
782 • Basics | |
783 • Applications | |
784 • History | |
785 • Links | |
786 | |
787 Links | |
788 | |
789 autopackage.org | |
790 openSUSE build service | |
791 codesourcery.com | |
792 pre-GUB LilyPond installers | |
793 emdebian.org | |
794 GUB build specifications | |
795 GUB patches | |
5219 | 796 lilypond.org/blog/janneke/gub3-ooo-mingw-cross-build |
5619 | 797 openembedded.org |
798 scratchbox.org | |
799 Scratbox2; sb2 Dan Kegel's crosstool | |
6047
e790935a9c28
web/basics: salvage Graham's Sharing Directories warning.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5997
diff
changeset
|
800 |
e790935a9c28
web/basics: salvage Graham's Sharing Directories warning.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5997
diff
changeset
|
801 |
e790935a9c28
web/basics: salvage Graham's Sharing Directories warning.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
5997
diff
changeset
|
802 |