-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild-regina.txt
183 lines (149 loc) · 7.88 KB
/
build-regina.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
Shell prerequisite for MacOS & Linux:
Works only with bash.
If your shell is not bash, then launch bash from your shell session and follow the instructions.
At the end, you can launch yor shell from the bash session, it will inherit the environment
variables but NOT the aliases.
Shell prerequisite for Windows:
Works only with cmd.
--------------------------------------------------------------------------------
Regina directory hierarchy
--------------------------------------------------------------------------------
One MacOs host.
One Linux virtual machine.
One Windows virtual machine.
Only one occurence of the git & svn sources, stored on the MacOs host.
Any change made to the sources under MacOs is immediatly available from the VMs.
Under MacOs, which is the main machine (host of the virtual machines):
/local1 SMB share (exported, will be mounted as Y: under Windows VM)
local@ symbolic link to /local (the goal is to have Y:\local)
/local NFS share (exported, will be mounted as /host/local under Linux VM)
rexx/
builder/ Scripts to support builds for several branches, configurations, bitness
regina/ $builder_shared_dir
----------------------------
official_delivery/ packaged source of specific versions
3.9.6/ last delivered version (older : 3.9.5, 3.9.4, 3.9.3, 3.9.1, 3.9.0, 3.8.2, 3.8, 3.7, 3.6, 3.5, 3.4, 3.3, 3.2, 3.0)
official/ svn sources of Regina
interpreter/
trunk/ next version to deliver
----------------------------
build/ where all the builds and deliveries for MacOs are done.
official_delivery/
3.9.6/ macos-[x86_64|arm64]/clang/[debug|reldbg|release]
official/
interpreter/
trunk/ macos-[x86_64|arm64]/clang/[debug|reldbg|release]
Linux virtual machine:
The build directory is put inside the VM because of bad performances when accessing $builder_shared_dir.
/host/local NFS mount MacOs /local
/local
rexx@ symbolic link to /host/local/rexx
builder/
regina/ $builder_shared_dir
build/ not used for Linux
----------------------------
official_delivery/ packaged source of specific versions
official/ svn sources of Regina
rexxlocal/ Local directory
regina/ $builder_local_dir
----------------------------
build/ where all the builds and deliveries for Linux are done.
official_delivery/
3.9.6/ ubuntu-[x86_64|aarch64]/gcc/[debug|profiling|reldbg|release]
official/
interpreter/
trunk/ ubuntu-[x86_64|aarch64]/gcc/[debug|profiling|reldbg|release]
Windows virtual machine:
The build directory is put inside the VM because of bad performances when accessing $builder_shared_dir.
C:\jlf\local\rexxlocal root directory of the local files for rexx
E: subst E: C:\jlf
Y: SMB mount MacOs /local1 which contains local@ -> /local
Y:\local
rexx\
builder\
regina\ $builder_shared_dir
build\ not used
----------------------------
official_delivery/ packaged source of specific versions
official\ svn sources of Regina
E:\local\
rexxlocal/ Local directory
regina/ $builder_local_dir
----------------------------
build/ where all the builds and deliveries for Windows are done.
official_delivery/
3.9.6/ windows-[x86_64|arm64]/cl/[debug|reldbg|release]
official/
interpreter/
trunk/ windows-[x86_64|arm64]/cl/[debug|reldbg|release]
--------------------------------------------------------------------------------
Getting the git sources of Builder
--------------------------------------------------------------------------------
cd /local/rexx
git clone https://github.com/jlfaucher/builder.git
--------------------------------------------------------------------------------
Getting the svn sources of Regina
--------------------------------------------------------------------------------
# To get everything (77 MB: trunk, all releases):
cd /local/rexx/regina
svn checkout svn://svn.code.sf.net/p/regina-rexx/code/ official
# You can checkout only subsets.
# In this case each subset will have its own .svn repository to manage separately.
# To get only the main trunk of the interpreter sources (15Mb):
svn checkout svn://svn.code.sf.net/p/regina-rexx/code/interpreter/trunk official/interpreter/trunk
--------------------------------------------------------------------------------
Getting the packaged sources of Regina for a specific version
--------------------------------------------------------------------------------
Download from
https://sourceforge.net/projects/regina-rexx/files/
Example :
cd /local/rexx/regina/official_delivery/3.9.6
unzip regina396.zip
--------------------------------------------------------------------------------
MacOs & Linux build for x86-64 or arm64
--------------------------------------------------------------------------------
# Remember: the instructions in this section work only with bash.
# If you use another shell (like zsh), then type bash -l
# See the folder setenv/bash for examples of configuration files for bash.
# Build the 64-bit release configuration of Regina official/interpreter/trunk:
# MacOs
# system-arch is macos-arm64 or macos-x86_64.
cd /local/rexx/regina
. ../builder/scripts/setenv build/official/interpreter/trunk/macos-x86_64/clang/release
# Linux
# system-arch is ubuntu-aarch64 or ubuntu-x86_64.
cd /local/rexx/regina
. ../builder/scripts/setenv /local/rexxlocal/regina/build/official/interpreter/trunk/ubuntu-x86_64/gcc/release
# Now build...
cdbuild
$builder_src_dir/configure $regina_bitness --prefix=$builder_delivery_dir
make install
# Maybe fixed, did not check...
# Bug in the Makefile, when installing the 32-bit version :
# rexx not found
# should replace "$(DESTDIR)$(bindir)/rexx "
# by "$(DESTDIR)$(bindir)/rexx$(binarybitprefix)$(EXE) "
# Bypass the bug, when the error happens (you are in the build directory):
# You can copy-paste all the following lines in your shell.
ln -s rexx32 ../delivery/bin/rexx
# Create also aliases for the other binaries:
ln -s regina32 ../delivery/bin/regina
ln -s rxqueue32 ../delivery/bin/rxqueue
ln -s rxstack32 ../delivery/bin/rxstack
# Relaunch the install to finalize the installation
make install
--------------------------------------------------------------------------------
Windows build for x86-64 or arm64
--------------------------------------------------------------------------------
:: Build the 64-bit release configuration of Regina official/interpreter/trunk:
:: Local directory in the virtual machine for Windows
e:
cd \local\rexxlocal\regina
:: Shared directory
y:
cd \local\rexx\regina
:: system-arch is windows-arm64 or windows-x86_64 or windows-x86_32.
call ..\builder\scripts\setenv e:build\official\interpreter\trunk\windows-x86_64\cl\release
cdbuild
nmake /f %builder_src_dir%\makefile.win%builder_bitness%.vc
There is no procedure for delivery... run from build.