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.