From ff95f641c4b2e81067beaffcdb7d7fef2ace26e3 Mon Sep 17 00:00:00 2001 From: Robert Izzard <r.izzard@surrey.ac.uk> Date: Sat, 31 Jul 2021 14:19:20 +0100 Subject: [PATCH] update ubuntu installer --- doc/binary_c-installation.lyx | 3431 --------------------------------- doc/binary_c-installation.pdf | Bin 124231 -> 0 bytes doc/binary_c2.lyx | 10 +- doc/getting_binary_c.lyx | 209 +- ubuntu_install.sh | 110 -- ubuntu_install_binary_c.sh | 401 ++++ 6 files changed, 606 insertions(+), 3555 deletions(-) delete mode 100644 doc/binary_c-installation.lyx delete mode 100644 doc/binary_c-installation.pdf delete mode 100644 ubuntu_install.sh create mode 100755 ubuntu_install_binary_c.sh diff --git a/doc/binary_c-installation.lyx b/doc/binary_c-installation.lyx deleted file mode 100644 index b42593647..000000000 --- a/doc/binary_c-installation.lyx +++ /dev/null @@ -1,3431 +0,0 @@ -#LyX 2.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 544 -\begin_document -\begin_header -\save_transient_properties true -\origin unavailable -\textclass article -\begin_preamble - - \usepackage[usenames,dvipsnames]{xcolor} -\usepackage{eurosym} -%\usepackage{eulervm} -\usepackage{enumitem} -\usepackage{latexsym} -\usepackage{multicol} -\usepackage{setspace} -%\usepackage{lmodern} -\date{} -\usepackage{tikz} -\usetikzlibrary{calc,shadings} -\usepackage[scaled=0.85]{beramono} - -%\usepackage[usenames, dvipsnames]{color} -\definecolor{Sectioncolour2}{RGB}{210,180,180} -\definecolor{Sectioncolour1}{RGB}{179,100,100} -\definecolor{Sectioncolour}{RGB}{159,29,35} - -% background - -%\usepackage{gradientframe} - -%\usepackage[pages=all,color=Sectioncolour,angle=90,hshift=-5cm,scale=1.5,contents={Nucleosynthesis in AGB Stars}]{background} - -%\usepackage{framed} -%\colorlet{shadecolor}{gray!25} % you may try 'blue' here -%\renewenvironment{leftbar}{% - % \def\FrameCommand{% -%{% -%\textcolor{Sectioncolour2}{\vrule width 2pt}% -%\textcolor{Sectioncolour1}{\vrule width 2pt}% -%\textcolor{Sectioncolour}{\vrule width 2pt}% -%\textcolor{Sectioncolour1}{\vrule width 2pt}% -%\textcolor{Sectioncolour2}{\vrule width 2pt}% -%}\hspace{10pt}}% -% \MakeFramed {\advance\hsize-\width \FrameRestore}}% -%{\endMakeFramed} - - -%\rule{0.4pt}{\textheight} - -% try this -%http://www.ctan.org/tex-archive/macros/latex/contrib/eso-pic/ -%http://stackoverflow.com/questions/2986240/latex-how-to-make-a-fullpage-vertical-rule-on-every-page - -\usepackage{eso-pic} -\usepackage{graphicx} -%\newcommand\BackgroundPic{} - -\newcommand\BackgroundPic{% -\put(0,0){% -\parbox[b][\paperheight]{\paperwidth}{% -\vfill -\centering -\includegraphics[width=\paperwidth,height=\paperheight,% -keepaspectratio]{images/falk2-low-lolores.eps}% -\vfill -}}} - -% remove background image (for speed) -%\renewcommand\BackgroundPic{} - -% redefine sections to use red colour -\usepackage{titlesec} -\titleformat{name=\section}% command to alter -{\color{Sectioncolour}\normalfont\itshape\bfseries\large\setstretch{0.5}}%format -{\thesection}%label -{1em}%sep -{}%before code -{}%after code - -% redefine subsections to use red colour -\titleformat{name=\subsection}% command to alter -{\color{Sectioncolour}\normalfont\itshape\bfseries\large\setstretch{0.5}}%format -{\thesubsection}%label -{1em}%sep -{}%before code -{}%after code - - -\def\aj{AJ} % Astronomical Journal -\def\araa{ARA\&A} % Annual Review of Astron and Astrophys -\def\apj{ApJ} % Astrophysical Journal -\def\apjl{ApJ} % Astrophysical Journal, Letters -\def\apjs{ApJS} % Astrophysical Journal, Supplement -\def\apss{Ap\&SS} % Astrophysics and Space Science -\def\aap{A\&A} % Astronomy and Astrophysics -\def\aapr{A\&A~Rev.} % Astronomy and Astrophysics Reviews -\def\aaps{A\&AS} % Astronomy and Astrophysics, Supplement -\def\mnras{MNRAS} % Monthly Notices of the RAS -\def\pra{Phys.~Rev.~A} % Physical Review A: General Physics -\def\prl{Phys.~Rev.~Lett.} % Physical Review Letters -\def\pasa{PASA} % Publications of the ASP -\def\pasp{PASP} % Publications of the ASP -\def\pasj{PASJ} % Publications of the ASJ -\def\nat{Nature} % Nature -\def\aplett{Astrophys.~Lett.} % Astrophysics Letters -\def\physrep{Phys.~Rep.} % Physics Reports% -\def\na{NewA} % new astronomy% - -\usepackage{natbibspacing} -\setlength{\bibspacing}{0mm} - -% header -\usepackage{fancyhdr} -\pagestyle{fancy} -\renewcommand{\headrulewidth}{0pt} -\fancyhead[LE,RO]{\color{Sectioncolour}\normalfont\itshape\bfseries{}} % page number in "outer" position of footer line -\fancyhead[RE,LO]{\color{Sectioncolour}\rightmark} % other info in "inner" position of footer line - -\raggedbottom -\end_preamble -\use_default_options true -\maintain_unincluded_children false -\language british -\language_package default -\inputencoding auto -\fontencoding global -\font_roman "utopia" "default" -\font_sans "default" "default" -\font_typewriter "default" "default" -\font_math "auto" "auto" -\font_default_family rmdefault -\use_non_tex_fonts false -\font_sc false -\font_osf false -\font_sf_scale 100 100 -\font_tt_scale 100 100 -\use_microtype false -\use_dash_ligatures false -\graphics default -\default_output_format default -\output_sync 0 -\bibtex_command default -\index_command default -\paperfontsize 12 -\spacing single -\use_hyperref false -\papersize a4paper -\use_geometry true -\use_package amsmath 1 -\use_package amssymb 1 -\use_package cancel 1 -\use_package esint 1 -\use_package mathdots 1 -\use_package mathtools 1 -\use_package mhchem 1 -\use_package stackrel 1 -\use_package stmaryrd 1 -\use_package undertilde 1 -\cite_engine natbib -\cite_engine_type authoryear -\biblio_style plainnat -\use_bibtopic false -\use_indices false -\paperorientation portrait -\suppress_date false -\justification true -\use_refstyle 1 -\use_minted 0 -\index Index -\shortcut idx -\color #008000 -\end_index -\leftmargin 2cm -\topmargin 3cm -\rightmargin 2cm -\bottommargin 3cm -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation indent -\paragraph_indentation default -\is_math_indent 0 -\math_numbering_side default -\quotes_style english -\dynamic_quotes 0 -\papercolumns 1 -\papersides 2 -\paperpagestyle fancy -\tracking_changes false -\output_changes false -\html_math_output 0 -\html_css_as_file 0 -\html_be_strict false -\end_header - -\begin_body - -\begin_layout Title -This document is deprecated. - Please see binary_c2.lyx/pdf instead. -\end_layout - -\begin_layout Standard -\begin_inset CommandInset line -LatexCommand rule -offset "0.5ex" -width "100col%" -height "1pt" - -\end_inset - - -\end_layout - -\begin_layout Title - -\series bold -Installation guide for -\family typewriter -binary_c -\family default - and -\family typewriter -binary_grid2 -\end_layout - -\begin_layout Standard -\align center - -\series bold -A guide to the installation of -\emph on -binary_c -\emph default - and -\emph on -binary_grid2 -\end_layout - -\begin_layout Standard -\align center - -\series bold -Version 2.1.4+ -\begin_inset Newline newline -\end_inset - - -\end_layout - -\begin_layout Standard -\align center - -\series bold -Warning: Version 2 of the combined -\emph on -binary_c -\emph default - and -\emph on -binary_grid2 -\emph default - is currently under development. - Details are likely to change. - -\end_layout - -\begin_layout Standard -\align center -Please see also other documentation, e.g. - -\end_layout - -\begin_layout Description -binary_cV2 for information about changes in -\emph on -binary_c -\emph default - V2.0+. -\end_layout - -\begin_layout Description -binary_grid2 for population grid instructions. -\end_layout - -\begin_layout Description -getting_binary_c for instructions about how to obtain -\emph on -binary_c -\emph default -. -\end_layout - -\begin_layout Standard -\begin_inset Newpage pagebreak -\end_inset - - -\end_layout - -\begin_layout Subsection -System Requirements -\end_layout - -\begin_layout Standard -\begin_inset CommandInset label -LatexCommand label -name "subsec:Requirements" - -\end_inset - -The following software is required on your system: -\end_layout - -\begin_layout Itemize -A -\emph on -C -\emph default - compiler. - Binary_c has been tested on -\emph on -gcc -\emph default - and -\emph on -clang -\emph default -. - Other options are available, but probably will not work. -\begin_inset Separator latexpar -\end_inset - - -\end_layout - -\begin_deeper -\begin_layout Itemize - -\emph on -gcc -\emph default - (GNU compiler -\begin_inset Flex URL -status collapsed - -\begin_layout Plain Layout - -http://gcc.gnu.org/ -\end_layout - -\end_inset - -) this comes as standard on most Linux systems and is easily installed on - others. - -\emph on -gcc -\emph default -is free. -\end_layout - -\begin_layout Itemize - -\emph on -clang -\emph default - ( -\emph on -C -\emph default - compiler for LLVM -\begin_inset CommandInset href -LatexCommand href -target "http://clang.llvm.org/" -literal "false" - -\end_inset - -) is also free, and may be faster than -\emph on -gcc -\emph default -. -\end_layout - -\begin_layout Itemize - -\emph on -icc -\emph default - (Intel compiler -\begin_inset Flex URL -status collapsed - -\begin_layout Plain Layout - -http://software.intel.com/en-us/articles/intel-compilers/ -\end_layout - -\end_inset - -) this costs money and -\emph on -binary_c -\emph default - has not been tested with it recently. -\end_layout - -\begin_layout Standard -Your system should include such a compiler unless you're using Windows. - -\emph on -Binary_c -\emph default - has been tested on Linux and various Solaris machines. - Note that (for an unknown reason!) it does not run (but does compile) on - old versions of MacOS X. - If you can fix this problem please let me know! Also, there has been trouble - with -\emph on -gcc -\emph default -on Xeon machines. - This is not my fault, please use -\emph on -icc -\emph default -. -\begin_inset Foot -status collapsed - -\begin_layout Plain Layout -This information may be out of date! Please test the build and let me know. -\end_layout - -\end_inset - - -\end_layout - -\end_deeper -\begin_layout Itemize - -\emph on -Python3 -\emph default -, -\emph on -Meson -\emph default - and -\emph on -Ninja -\emph default - are required for installation. - You can install all of these on your system, e.g. - with the following on -\emph on -Ubuntu 18.04 -\emph default -, -\begin_inset listings -inline false -status open - -\begin_layout Plain Layout - -sudo apt-get install python3 meson ninja-build -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Itemize - -\emph on -Perl -\emph default - - this is required for -\emph on -binary_grid2 -\emph default -. - Perl is usually installed on your system, and for configuration of -\emph on -binary_c -\emph default - this should be sufficient. - You can download Perl at -\begin_inset Flex URL -status collapsed - -\begin_layout Plain Layout - -www.perl.com -\end_layout - -\end_inset - -, or use your system Perl, but I recommend -\emph on -Perlbrew -\emph default - instead. - Please try to use a version of Perl that is 5.16 or later: 5.25 is currently - the standard. -\end_layout - -\begin_layout Itemize - -\emph on -Perlbrew -\emph default - and -\emph on -cpanm -\emph default - are -\emph on -essential -\emph default -if you want to use -\series bold -\emph on -binary_grid2 -\series default -\emph default -. - These are standard tools. - I recommend downloading them on a per-user basis, but they could also be - installed as part of your system. -\end_layout - -\begin_layout Itemize -You will want to use -\emph on -git -\emph default - to get -\emph on -binary_c -\emph default -, see the document -\series bold -\emph on -getting_binary_c.pdf -\end_layout - -\begin_layout Itemize -Probably you want a debugger, e.g. - -\emph on -gdb -\emph default -, to be installed, if you plan to modify (and hence break) -\emph on -binary_c -\emph default -. - You may also want -\emph on -valgrind -\emph default - which is superior in many ways to -\emph on -gdb -\emph default -. -\end_layout - -\begin_layout Itemize -The -\emph on -GNU Scientific Library -\emph default - version 2.4 is required. - You may be able to install this as a system package, or you can get it - from -\begin_inset Flex URL -status collapsed - -\begin_layout Plain Layout - -https://www.gnu.org/software/gsl/ -\end_layout - -\end_inset - -. - I have a modified version at -\begin_inset Flex URL -status collapsed - -\begin_layout Plain Layout - -https://gitlab.eps.surrey.ac.uk/ri0005/GSL-2.4-RGI -\end_layout - -\end_inset - - which has minor fixes: please use this if you can. -\end_layout - -\begin_layout Itemize - -\emph on -libbsd -\emph default - is recommended. - Please install the libbsd-devel package also. - You can also install from the source available at -\begin_inset Flex URL -status collapsed - -\begin_layout Plain Layout - -https://libbsd.freedesktop.org/wiki/ -\end_layout - -\end_inset - -. -\end_layout - -\begin_layout Itemize - -\emph on -libbacktrace -\emph default - is recommended. - See -\begin_inset Flex URL -status open - -\begin_layout Plain Layout - -https://github.com/ianlancetaylor/libbacktrace -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Itemize - -\emph on -libbfd -\emph default - is recommended. - This is part of the Linux -\emph on -binutils -\emph default - package. -\end_layout - -\begin_layout Itemize - -\emph on -libmemoize -\emph default - can be downloaded from -\begin_inset Flex URL -status open - -\begin_layout Plain Layout - -https://gitlab.eps.surrey.ac.uk/ri0005/libmemoize -\end_layout - -\end_inset - - but a version is included in -\emph on -binary_c -\emph default -if you do not have it. -\end_layout - -\begin_layout Itemize - -\emph on -librinterpolate -\emph default - can be downloaded from -\begin_inset Flex URL -status open - -\begin_layout Plain Layout - -https://gitlab.eps.surrey.ac.uk/ri0005/librinterpolate -\end_layout - -\end_inset - - but a version is included in -\emph on -binary_c -\emph default -if you do not have it. -\end_layout - -\begin_layout Standard -By using -\emph on -binary_c -\emph default - and -\emph on -binary_grid2 -\emph default - you are part of a community. - You are therefore jointly responsible for helping with the never-ending - process of improvement and bug fixing. - -\emph on - Binary_c -\emph default - (and its -\emph on -Perl -\emph default -modules, such as -\emph on -binary_grid -\emph default -2) is stored on an -\emph on -git -\emph default - server. - Please read the -\series bold -\emph on -LICENCE -\series default -\emph default - file before use. -\end_layout - -\begin_layout Standard -\begin_inset Newpage pagebreak -\end_inset - - -\end_layout - -\begin_layout Subsection -binary_c -\end_layout - -\begin_layout Standard -\begin_inset CommandInset label -LatexCommand label -name "sec:binary-c" - -\end_inset - - -\end_layout - -\begin_layout Subsubsection -Getting binary_c -\end_layout - -\begin_layout Itemize -You should obtain -\emph on -binary_c -\emph default - from the -\emph on -git -\emph default - server, currently at -\begin_inset Flex URL -status open - -\begin_layout Plain Layout - -https://gitlab.eps.surrey.ac.uk/ri0005/binary_c -\end_layout - -\end_inset - -. - Please see the document -\emph on -getting_binary_c -\emph default - (available in -\emph on -pdf -\emph default - and -\emph on -lyx -\emph default - formats). - -\end_layout - -\begin_layout Itemize -You should consider joining the mailing lists. -\end_layout - -\begin_layout Subsubsection -Building -\end_layout - -\begin_layout Standard -\begin_inset CommandInset label -LatexCommand label -name "subsec:Building" - -\end_inset - - -\end_layout - -\begin_layout Subsubsection -From git -\end_layout - -\begin_layout Standard -Assuming you have checked out your branch, or the trunk, from the -\emph on -git -\emph default - repository (see section -\begin_inset space ~ -\end_inset - - -\begin_inset CommandInset ref -LatexCommand ref -reference "sec:SVN-access" - -\end_inset - -), go to that directory (which will be called the -\family typewriter -binary_c -\family default - directory below). -\end_layout - -\begin_layout Subsubsection -From a zip file or tarball -\end_layout - -\begin_layout Standard -If have been given a file zip file -\family typewriter -binary_c.zip, -\family default - or a tarball e.g. - -\family typewriter - binary_c.tar.gz -\family default - or -\family typewriter -binary_c.tar.bz2, -\family default - you should copy it to a directory (hereafter -\family typewriter -binary_c -\family default -, usually I put everything in -\family typewriter - -\begin_inset Formula $\sim$ -\end_inset - -/progs/stars/binary_c -\family default - where -\begin_inset Formula $\sim$ -\end_inset - - is your home directory – if you put it there then all the scripts will - work) and -\emph on -unzip -\emph default - it with one of the following commands (depending on the file you were given): -\end_layout - -\begin_layout Standard - -\family typewriter -\series bold -unzip binary_c.zip -\family default - -\end_layout - -\begin_layout Standard - -\family typewriter -\series bold -tar -xvzf binary_c.tar.gz -\end_layout - -\begin_layout Standard - -\family typewriter -\series bold -tar -xvjf binary_c.tar.bz2 -\end_layout - -\begin_layout Standard -which will unzip the files in the appropriate places. -\end_layout - -\begin_layout Subsubsection -Build with meson -\end_layout - -\begin_layout Standard -From inside -\end_layout - -\begin_layout Standard -Now, from the -\family typewriter -binary_c -\family default - directory, you need to run the configuration script with -\end_layout - -\begin_layout Standard - -\family typewriter -\series bold -./configure -\end_layout - -\begin_layout Standard -which creates the -\family typewriter -Makefile -\family default -. - Now type -\end_layout - -\begin_layout Standard - -\family typewriter -\series bold -./make -\end_layout - -\begin_layout Standard -to build the code. - The make script is a wrapper around GNU make that executes the build on - as many CPUs as you have, and pretties up the output so that it is more - readable.. -\begin_inset Newline newline -\end_inset - -Note that you may need to use -\end_layout - -\begin_layout Standard - -\family typewriter -\series bold -gmake -\end_layout - -\begin_layout Standard -from the -\family typewriter -src -\family default - directory if -\emph on -GNU -\emph default - make is not your default (e.g. - you are on something like Solaris). - -\begin_inset Newline newline -\end_inset - -The code will now build, assuming -\family typewriter -configure -\family default - worked ok. - If configure does -\emph on -not -\emph default - work then please try to fix it before running to me with complaints. - It works on Linux and will revert to -\family typewriter -gcc -\family default - as the default compiler if something goes wrong - it -\emph on -might -\emph default - detect -\family typewriter -icc -\family default - if it's on your system. - It is up to you to make your compiler work properly! -\end_layout - -\begin_layout Standard -The executable is called -\family typewriter -binary_c. -\end_layout - -\begin_layout Standard -Note: -\family typewriter -binary_c -\family default - is built as a single, possibly -\emph on -large -\emph default - (many MB) executable. - The reason for this is purely ease of use when transferring the executable - from one machine to another. - It is possible to build a shared library instead. -\end_layout - -\begin_layout Subsubsection -Building the shared library -\end_layout - -\begin_layout Standard -To build the shared library, run -\end_layout - -\begin_layout Standard - -\family typewriter -\series bold -./configure -\end_layout - -\begin_layout Standard - -\family typewriter -\series bold -make libbinary_c.so -\end_layout - -\begin_layout Standard -This makes the -\family typewriter -libbinary_c.so -\family default - shared library which can be used, for example, by the -\emph on -C -\emph default - backend to -\emph on -binary_grid -\emph default -2, or to access -\emph on -binary_c -\emph default - through its -\emph on -API -\emph default -. -\end_layout - -\begin_layout Subsubsection -Alternative compiler -\end_layout - -\begin_layout Standard -You can build with another compiler, e.g. - -\emph on -clang -\emph default -, by doing -\end_layout - -\begin_layout Standard - -\family typewriter -\series bold -export CC=clang -\end_layout - -\begin_layout Standard - -\family typewriter -\series bold -./configure -\end_layout - -\begin_layout Standard - -\family typewriter -\series bold -./make -\end_layout - -\begin_layout Subsubsection -Debugging build -\end_layout - -\begin_layout Standard -To enable full debugging, run -\end_layout - -\begin_layout Standard - -\family typewriter -\series bold -./configure debug -\end_layout - -\begin_layout Standard - -\family typewriter -\series bold -./make -\end_layout - -\begin_layout Subsubsection -Testing binary_c -\end_layout - -\begin_layout Standard -Run the -\emph on -bash -\emph default - script to -\begin_inset Quotes eld -\end_inset - -test binary star evolution -\begin_inset Quotes erd -\end_inset - - called -\end_layout - -\begin_layout Standard - -\family typewriter -\series bold -tbse -\family default -\series default - -\begin_inset Newline newline -\end_inset - -You should see output. - -\begin_inset Newline newline -\end_inset - -You may have to symbolically link src/binary_c to binary_c in the directory - to make this work, e.g. -\end_layout - -\begin_layout Standard - -\family typewriter -\series bold -cd -\emph on -<binary_c_directory> -\end_layout - -\begin_layout Standard - -\family typewriter -\series bold -ln -s src/binary_c -\end_layout - -\begin_layout Subsubsection -tbse commands -\end_layout - -\begin_layout Standard - -\emph on -tbse -\emph default -can take extra arguments, which are usually passed to -\emph on -binary_c -\emph default - directly. -\end_layout - -\begin_layout Standard -There are also many commands which can be given to -\emph on -tbse -\emph default -, e.g. -\end_layout - -\begin_layout Description -tbse -\begin_inset space ~ -\end_inset - -echo This outputs (to -\emph on -stdout -\emph default -) the arguments that would have been sent to -\emph on -binary_c -\emph default -. -\end_layout - -\begin_layout Description -tbse -\begin_inset space ~ -\end_inset - -args Ignores settings in the -\emph on -tbse -\emph default -file and runs only with the extra arguments given on the command line. -\end_layout - -\begin_layout Description -tbse -\begin_inset space ~ -\end_inset - -debug This runs -\emph on -binary_c -\emph default -with the gdb debugger -\end_layout - -\begin_layout Description -tbse -\begin_inset space ~ -\end_inset - -valgrind This runs -\emph on -binary_c -\emph default - through -\emph on -Valgrind -\emph default -'s -\emph on -memcheck -\emph default - tool to detect memory leaks. -\end_layout - -\begin_layout Description -tbse -\begin_inset space ~ -\end_inset - -massif This runs -\emph on -binary_c -\emph default - through -\emph on -Valgrind -\emph default -'s -\emph on -massif -\emph default - heap checker. -\end_layout - -\begin_layout Description -tbse -\begin_inset space ~ -\end_inset - -callgrind This runs -\emph on -binary_c -\emph default - through -\emph on -Valgrind -\emph default -'s -\emph on -callgrind -\emph default -tool. -\end_layout - -\begin_layout Description -tbse -\begin_inset space ~ -\end_inset - -cachegrind This runs -\emph on -binary_c -\emph default - through -\emph on -Valgrind -\emph default -'s -\emph on -cachegrind -\emph default - tool. -\end_layout - -\begin_layout Description -tbse -\begin_inset space ~ -\end_inset - -ptrcheck This runs -\emph on - binary_c -\emph default - through -\emph on -Valgrind -\emph default -'s -\emph on -ptrcheck -\emph default - tool. -\end_layout - -\begin_layout Description -tbse -\begin_inset space ~ -\end_inset - -sgcheck This runs -\emph on - binary_c -\emph default - through -\emph on -Valgrind -\emph default -'s -\emph on -sgcheck -\emph default - tool. -\end_layout - -\begin_layout Description -tbse -\begin_inset space ~ -\end_inset - -drd This runs -\emph on - binary_c -\emph default - through -\emph on -Valgrind -\emph default -'s -\emph on -drd -\emph default - tool. -\end_layout - -\begin_layout Description -tbse -\begin_inset space ~ -\end_inset - -gprof This runs -\emph on -binary_c -\emph default - through -\emph on -gprof -\emph default -, the -\emph on -GNU -\emph default - profiler. -\end_layout - -\begin_layout Description -tbse -\begin_inset space ~ -\end_inset - -gprof_lines This runs -\emph on -binary_c -\emph default - through -\emph on -gprof -\emph default -, the -\emph on -GNU -\emph default - profiler, doing line-by-line accounting. -\end_layout - -\begin_layout Description -tbse -\begin_inset space ~ -\end_inset - -gprof_with_stdout This runs -\emph on -binary_c -\emph default - through -\emph on -gprof -\emph default -, the -\emph on -GNU -\emph default - profiler, showing -\emph on -stdout -\emph default -. -\end_layout - -\begin_layout Description -tbse -\begin_inset space ~ -\end_inset - -pgo Profile guided optimization. - This builds -\emph on -binary_c -\emph default - once, runs a number of systems, then rebuilds with extra optimization based - on the profile generated by the runs. - This works for -\emph on -GCC -\emph default - and probably also -\emph on -clang -\emph default -. -\end_layout - -\begin_layout Description -tbse -\begin_inset space ~ -\end_inset - -bug This runs -\emph on -binary_c -\emph default - and outputs information which is suitable for reporting a bug to Rob. -\end_layout - -\begin_layout Description -tbse -\begin_inset space ~ -\end_inset - -multicore This runs -\emph on -binary_c -\emph default - on many CPU cores at once. - Exits immediately on failure, so this is useful for testing e.g. - Monte carlo kicks. - -\end_layout - -\begin_layout Description -tbse -\begin_inset space ~ -\end_inset - - -\emph on -<filename> -\emph default - This runs the set of arguments specified in the file given by -\emph on -filename -\emph default -. -\end_layout - -\begin_layout Standard -\begin_inset Newpage pagebreak -\end_inset - - -\end_layout - -\begin_layout Subsubsection -binary_grid2 -\end_layout - -\begin_layout Standard -This section describes in some detail the installation of -\emph on -binary_grid2 -\emph default -. - Note that sometimes you will require the latest version of pieces of software, - in particular -\emph on -Perl -\emph default - which should be at least version 5.16. - I show you how to do this -\emph on -without -\emph default - requiring root permissions on your machine. - Should you require packages to be installed that require root permission, - you can always set up -\emph on -binary_c -\emph default - and -\emph on -binary_grid2 -\emph default - on a -\emph on -virtual machine -\emph default - which runs as a guest on your operating system, I do this with -\emph on -Virtualbox -\emph default - ( -\begin_inset CommandInset href -LatexCommand href -target "https://www.virtualbox.org/" -literal "false" - -\end_inset - -). - This would be my advice if you are running on a non-standard operating - system, e.g. - -\emph on -Micro$oft Windows -\emph default -. - You will have the root password for your virtual machine, so there are - never permissions problems. -\end_layout - -\begin_layout Standard -You will need some basic tools installed to make everything work: -\emph on -bash -\emph default -, -\emph on -subversion -\emph default -, -\emph on -perl -\emph default -, -\emph on -gmake -\emph default -, -\emph on -wget -\emph default -, -\emph on -gcc -\emph default -. - These are available on all good operating systems, and come by default - – or after a simple install – with most flavours of Linux/Unix and MacOSX. -\end_layout - -\begin_layout Standard -Some -\emph on -Perl -\emph default -modules also require some other system libraries and development files. - It is difficult to know exactly what these would be for every operating - system. - You may have to use a web search to find out, but that's fine because you - are smart! -\end_layout - -\begin_layout Paragraph -Latest -\emph on -Perl -\emph default -: use -\emph on -perlbrew -\end_layout - -\begin_layout Standard -I highly recommend that you install the latest version of -\emph on -Perl -\emph default -using -\series bold -\emph on -perlbrew -\series default -\emph default - and install modules using -\series bold -\emph on -cpanm -\series default -. - -\emph default - I describe how to do this below, but also please see -\begin_inset CommandInset href -LatexCommand href -target "http://perlbrew.pl/" -literal "false" - -\end_inset - - and -\begin_inset CommandInset href -LatexCommand href -target "http://perlbrew.pl/Perlbrew-and-Friends.html " -literal "false" - -\end_inset - -for further instructions and documentation. -\end_layout - -\begin_layout Paragraph -Installing -\emph on -binary_c -\end_layout - -\begin_layout Standard -Please see Sec. -\begin_inset space ~ -\end_inset - - -\begin_inset CommandInset ref -LatexCommand ref -reference "sec:binary-c" - -\end_inset - - above for details about how to install -\emph on -binary_c -\emph default -. - -\end_layout - -\begin_layout Paragraph -Installing -\emph on -binary_grid2 -\end_layout - -\begin_layout Standard -\begin_inset CommandInset label -LatexCommand label -name "subsec:installing binary_grid" - -\end_inset - - -\end_layout - -\begin_layout Standard - -\emph on -binary_grid2 -\emph default - is written in -\emph on -Perl -\emph default - ( -\begin_inset CommandInset href -LatexCommand href -target "http://www.perl.org/" -literal "false" - -\end_inset - -) which is available on almost every modern operating system, although to - my knowledge -\emph on -binary_grid2 -\emph default - has never been tested on anything other than -\emph on -Linux -\emph default - ( -\begin_inset CommandInset href -LatexCommand href -target "http://www.linux.org/" -literal "false" - -\end_inset - -), -\emph on -Solaris -\emph default - and -\emph on -MacOSX -\emph default - (which is [currently] really -\emph on - BSD Unix -\emph default -). -\end_layout - -\begin_layout Standard -The newest -\emph on -binary_grid2 -\emph default - uses features from the latest -\emph on -Perl -\emph default - (5.16 or above, currently testing on 5.25) so you'll need a recent -\emph on -Perl -\emph default - to be installed. - Unfortunately most versions of -\emph on -Linux -\emph default - run an older -\emph on -Perl -\emph default - without support for many of the required features. - You will also need to have the latest versions of a number of -\emph on -Perl -\emph default - modules which come from either from the online resource -\emph on -CPAN -\emph default - -\begin_inset Foot -status open - -\begin_layout Plain Layout - -\emph on -Comprehensive Perl Archive Network -\end_layout - -\end_inset - - ( -\begin_inset CommandInset href -LatexCommand href -target "http://www.cpan.org/" -literal "false" - -\end_inset - -) or as part of the -\emph on -binary_c -\emph default - package. -\end_layout - -\begin_layout Standard -My recommendation is to use -\series bold -\emph on -perlbrew -\series default - -\emph default -to make your own -\emph on -Perl -\emph default - and -\emph on -cpanminus -\emph default - (the command is -\family typewriter -cpanm -\family default -) to install the modules. - -\end_layout - -\begin_layout Standard -You can find -\emph on -perlbrew -\emph default - at -\begin_inset CommandInset href -LatexCommand href -target "http://perlbrew.pl/" -literal "false" - -\end_inset - - : please follow the instructions on that page to install the latest -\emph on -Perl -\emph default - on your system if you do not trust my instructions below. - Typically do the following, but remember you -\emph on -must -\emph default - install -\emph on -perlbrew -\emph default - with -\begin_inset Quotes eld -\end_inset - - -\family typewriter --Dusethreads -\family default - -\begin_inset Quotes erd -\end_inset - - otherwise -\emph on -Perl -\emph default - will not use threads and you will lose the multi-CPU features of -\emph on -binary_grid -\emph default -2. - Please note that I assume you are using the -\emph on -bash -\emph default - shell. -\end_layout - -\begin_layout Enumerate - -\family typewriter -\series bold -wget --no-check-certificate -O - http://install.perlbrew.pl | bash -\begin_inset Newline newline -\end_inset - - -\family default -\series default -\emph on -or -\emph default - -\begin_inset Newline newline -\end_inset - - -\family typewriter -\series bold -curl -kL http://install.perlbrew.pl | bash -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - - -\family default -\series default -If you have problems with -\series bold -\emph on -wget -\series default -\emph default -, try removing the -\series bold -\emph on -–no-check-certificate -\series default -\emph default -. -\end_layout - -\begin_layout Enumerate -Run -\family typewriter -perlbrew available -\family default - to find a list of available versions, you should choose the newest, e.g. - -\family typewriter -perl-5.25 -\family default -, and then run the following command to install -\emph on -Perl -\emph default -: -\begin_inset Newline newline -\end_inset - - -\family typewriter - -\begin_inset Newline newline -\end_inset - - -\begin_inset Box Frameless -position "t" -hor_pos "c" -has_inner_box 1 -inner_pos "t" -use_parbox 0 -use_makebox 0 -width "95col%" -special "none" -height "1in" -height_special "totalheight" -thickness "0.4pt" -separation "3pt" -shadowsize "4pt" -framecolor "black" -backgroundcolor "none" -status open - -\begin_layout Plain Layout - -\family typewriter -\series bold -perlbrew -v install perl-5.25 --thread --multi --64bitall --notest -Dusethreads - -Duselargefiles -Dcccdlflags=-fPIC -Dpager=/usr/bin/sensible-pager -Doptimize=" --O3 -march=native -mtune=native" -Duseshrplib -j 8 -\end_layout - -\end_inset - - -\family default - -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -You can use -\family typewriter -\series bold --march=native -mtune=native -\family default -\series default - if you are quite sure you will not use this version of -\emph on -Perl -\emph default -, or its modules, on a machine with a different architecture. - If you are building for use with an -\emph on -HTCondor -\emph default - grid, I highly recommend using the -\family typewriter -generic -\family default - option and this is now the default. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -Note that the final -\emph on -8 -\emph default - should be replaced by the number of CPUs you wish to use for the build - (it is an option passed to -\emph on -make -\emph default -). -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -Note also that -\family typewriter --Duseshrplib -\family default - may no longer be required. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -I have recently added -\family typewriter ---thread –-multi –-64bitall -\family default - so if you have trouble, please remove these and try again. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -In -\emph on -Perl -\emph default - 5.25.5 there is a (known) bug in the test routines which may (or may not) - stop your installation. - For this reason the -\family typewriter ---notest -\family default - flag if set. - Remove this if you want testing back (beware it is slow). -\series bold - -\begin_inset Newline newline -\end_inset - - -\series default - -\begin_inset Newline newline -\end_inset - -The installation process can take a long time, go and have lunch\SpecialChar ldots - then: -\end_layout - -\begin_layout Enumerate -Do what -\emph on -perlbrew -\emph default - suggests with your -\family typewriter -.bashrc -\family default - (or whatever shell initialization script you use) to fix the -\family typewriter -PERLBREW_PATH -\family default -. -\end_layout - -\begin_layout Enumerate -Restart your shell (e.g. - close your terminal and open a new one, or just run -\family typewriter -bash -\family default - again) to update your environment and -\family typewriter -$PATH -\family default -. -\end_layout - -\begin_layout Enumerate -Check you're using the correct -\emph on -Perl -\emph default - with -\begin_inset Newline newline -\end_inset - - -\family typewriter -\series bold -perl -v -\family default -\series default - -\begin_inset Newline newline -\end_inset - -This should say something like -\begin_inset Newline newline -\end_inset - - -\family typewriter -\size small -This is perl 5, version 25, subversion 0 (v5.25.0) built for x86_64-linux-thread-m -ulti -\size default - -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - - -\family default -Check that the -\family typewriter --thread- -\family default - is there – without threads, -\emph on -binary_grid2 -\emph default - multi-CPU options will not function. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -If you have a previous version of -\emph on -Perl -\emph default - installed by -\emph on -perlbrew -\emph default -, you will have to do something like -\begin_inset Newline newline -\end_inset - - -\family typewriter -\series bold -perlbrew switch perl-5.25 -\end_layout - -\begin_layout Enumerate -If the installation was successful, but you see an older -\emph on -Perl -\emph default -, check that your -\family typewriter -$PATH -\family default - variable points to the new -\emph on -Perl -\emph default -, and check that -\family typewriter -$PERLBREW_PATH -\family default - exists. -\end_layout - -\begin_layout Enumerate -Install -\emph on -cpanminus -\emph default - by running -\begin_inset Newline newline -\end_inset - - -\family typewriter -\series bold -perlbrew install-cpanm -\end_layout - -\begin_layout Standard -Now you have the latest -\emph on -Perl -\emph default - and -\emph on -cpanm -\emph default - installed, you can start to install the modules needed for -\emph on -binary_grid -\emph default -2. - (Un?)fortunately, there are many of them, so I have made a script to do - it for you -\end_layout - -\begin_layout Enumerate -From the -\emph on -binary_c -\emph default - directory, go to -\family typewriter -src/perl -\family default - with -\begin_inset Newline newline -\end_inset - - -\family typewriter -\series bold -cd src/perl -\end_layout - -\begin_layout Enumerate -Run the install script which uses -\emph on -cpanminus -\emph default - to install the modules -\begin_inset Newline newline -\end_inset - - -\family typewriter -\series bold -./install_modules.pl -\end_layout - -\begin_layout Enumerate -Wait. - Watch the output flow past your eyes. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -Note that you can -\emph on -also -\emph default - install the modules yourself from their tarballs in -\family typewriter -src/perl/modules_targz -\family default -., e.g. - -\begin_inset Newline newline -\end_inset - - -\family typewriter -\series bold -cd src/perl/modules_targz -\begin_inset Newline newline -\end_inset - -cpanm ./<modname>.tar.gz -\begin_inset Newline newline -\end_inset - - -\family default -\series default -but please note the -\family typewriter -\series bold -./ -\family default -\series default - in the filename is -\emph on -required -\emph default -. -\end_layout - -\begin_layout Enumerate -In case of errors, try installing the module with verbose logging switched - on -\family typewriter -\series bold - -\begin_inset Newline newline -\end_inset - -cpanm -v ./<modname>.tar.gz -\end_layout - -\begin_layout Enumerate -Check the output. - If there is a failure, it should say. - You will have to fix it by looking at the output to see where it went wrong. - The most common cause of failure is that you need some kind of development - ( -\emph on --dev -\emph default - or -\emph on --devel -\emph default -) packages to be installed on your system, e.g. - through -\emph on -apt -\emph default -, -\emph on -yum -\emph default - or -\emph on -synaptic -\emph default - or the system package manager. - This may require root permission. -\begin_inset Newline newline -\end_inset - -If all else fails, you can ask Rob for help. -\end_layout - -\begin_layout Enumerate -Your installed modules are usually in (for -\emph on -Perl -\emph default - 5.25) -\begin_inset Newline newline -\end_inset - - -\family typewriter - $HOME/perl5/perlbrew/perls/5.25.0/lib/site_perl/5.25. -\family default -0 -\begin_inset Newline newline -\end_inset - -You should not have to set the -\emph on -PERL5LIB -\emph default - environment variable when installing with a modern cpanminus. -\begin_inset Newline newline -\end_inset - -If you -\emph on -do -\emph default - have trouble, try -\begin_inset Newline newline -\end_inset - - -\family typewriter -\series bold -export PERL5LIB=$HOME/perl5/perlbrew/perls/5.25.0/lib/site_perl/5.25.0 -\family default -\series default - -\begin_inset Newline newline -\end_inset - -(or similar). - -\end_layout - -\begin_layout Standard -Now you should have everything installed and be able to run a -\emph on -binary_grid -\emph default - script. -\end_layout - -\begin_layout Paragraph -Troubleshooting -\emph on -Perl -\end_layout - -\begin_layout Description -Module -\begin_inset space ~ -\end_inset - -not -\begin_inset space ~ -\end_inset - -found Check the -\family typewriter -PERL5LIB -\family default - environment variable. - When it is empty, -\emph on -cpanm/perlbrew -\emph default - should find your modules automatically, -\emph on -if -\emph default - they are installed correctly by -\emph on -cpanm -\emph default - (in the -\emph on -site_perl -\emph default - directory, see above). - You can try installing modules again with -\family typewriter -\series bold -cpanm --force --reinstall -\family default -\series default - to force a reinstallation, and with -\family typewriter -\series bold --v -\family default -\series default - for extra logging. -\end_layout - -\begin_layout Description -Module -\begin_inset space ~ -\end_inset - -fails -\begin_inset space ~ -\end_inset - -to -\begin_inset space ~ -\end_inset - -build Try -\family typewriter -\series bold -cpanm --notests -\family default -\series default - to not run all tests. - Sometimes these fail for spurious reasons, e.g. - in the case of -\emph on -binary_grid -\emph default - because there are -\emph on - no tests, -\emph default - but -\emph on - -\emph default -the module still functions. -\end_layout - -\begin_layout Description -Perlbrew -\begin_inset space ~ -\end_inset - -build -\begin_inset space ~ -\end_inset - -flags I would recommend at least -\begin_inset Newline newline -\end_inset - - -\family typewriter --Dusethreads -Duselargefiles -Doptimize="-O3 -march=native -mtune=native" -\begin_inset Newline newline -\end_inset - - -\family default -although you may wish to use -\family typewriter --O2 -\family default - if you feel mathematical precision is key to your application (I have never - noticed a problem with the above). -\begin_inset Newline newline -\end_inset - -I also recommend -\family typewriter --Dcccdlflags=-fPIC -\family default -so that module code is position independent and -\family typewriter --Duseshrplib -\family default - so that the appropriate threading library is used. - (These flags are passed to the -\emph on -C -\emph default - compiler that builds -\emph on -Perl -\emph default -.) -\end_layout - -\begin_layout Description -Rebuild -\begin_inset space ~ -\end_inset - -modules -\begin_inset space ~ -\end_inset - -for -\begin_inset space ~ -\end_inset - -new -\begin_inset space ~ -\end_inset - - -\emph on -Perl -\emph default - Let's say you had an old -\emph on -perl -\emph default -built with perlbrew, have installed a shiny new -\emph on -perl -\emph default - version with perlbrew, and now you want to rebuild all your existing modules. - Try this after the install, but before switching to the new -\emph on -perl -\emph default -, replacing -\family typewriter -5.xx.yy -\family default - with the new -\emph on -perl -\emph default - version: -\begin_inset Newline newline -\end_inset - - -\begin_inset Box Frameless -position "t" -hor_pos "c" -has_inner_box 1 -inner_pos "t" -use_parbox 0 -use_makebox 0 -width "100col%" -special "none" -height "1in" -height_special "totalheight" -thickness "0.4pt" -separation "3pt" -shadowsize "4pt" -framecolor "black" -backgroundcolor "none" -status open - -\begin_layout Plain Layout - -\family typewriter -\series bold -perlbrew list-modules | perlbrew exec --with 5.xx.yy cpanm -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Paragraph - -\emph on -binary_grid2 -\emph default - backends -\end_layout - -\begin_layout Standard -The -\begin_inset Quotes eld -\end_inset - -backend -\begin_inset Quotes erd -\end_inset - - is a set of interface code between -\emph on -binary_c -\emph default - and -\emph on -binary_grid2 -\emph default -. - -\end_layout - -\begin_layout Paragraph -Perl backend -\end_layout - -\begin_layout Standard -In -\emph on -binary_grid -\emph default -version 1, the only backend available was the Perl backend which communicates - with -\emph on -binary_c -\emph default - via a series of Unix pipes. - This is portable and flexible, and hence for many years was the default. - It does not, however, scale very well in multi-CPU architectures. - In binary_grid2 a pure -\emph on -Perl -\emph default -module is also provided, both for backwards compatibility and because the - code is well tested and stable. - The -\emph on -Perl -\emph default -backend is installed by default with -\emph on -binary_grid2 -\emph default -. - -\end_layout - -\begin_layout Standard -It is a simple matter of changing the -\family typewriter -prog -\family default - grid variable if you want to use a different version of -\emph on -binary_c -\emph default - with each grid script. -\end_layout - -\begin_layout Paragraph -C backend -\end_layout - -\begin_layout Standard -New to -\emph on -binary_grid2 -\emph default - is the -\emph on -C -\emph default - backend. - This features simpler code and uses -\emph on -binary_c -\emph default -'s -\emph on -API -\emph default - to access data directly, hence it is a lot faster than the -\emph on -Perl -\emph default - backend, and scales -\series bold -much -\series default -better on multi-core architectures. - The down side is that installation is more difficult, especially if you - have multiple projects. - -\end_layout - -\begin_layout Standard -If you see errors like: -\end_layout - -\begin_layout Standard - -\family typewriter -\series bold -perl: symbol lookup error: /.../perl5/perlbrew/perls/perl-5.25.0/lib/site_perl/5.25.0/x -86_64-linux-thread-multi/auto/binary_grid/C/C.so: undefined symbol: new_system -\end_layout - -\begin_layout Standard -then you have failed to build the shared library as required and you are - trying to use the -\emph on -C -\emph default - backend. -\begin_inset Newline newline -\end_inset - -To make the -\emph on -C -\emph default - backend work, you have to -\series bold -\emph on -first -\series default -\emph default - install -\emph on -libbinary_c.so -\emph default - and -\series bold -\emph on -then -\series default -\emph default - install -\emph on -binary_grid2 -\emph default -. - Essentially: -\end_layout - -\begin_layout Enumerate -Build -\emph on -binary_c -\emph default - as normal -\end_layout - -\begin_layout Enumerate -Make the shared library, -\emph on -libbinary_c.so -\emph default - (with -\family typewriter -\series bold -make libbinary_c.so -\family default -\series default -) -\end_layout - -\begin_layout Enumerate -Install -\emph on -binary_grid2 -\end_layout - -\begin_layout Standard -Because this module is written partly in -\emph on -C -\emph default - and partly in -\emph on -Perl -\emph default -, there are more things that can go wrong and it is harder to share installation -s (you cannot just copy the shared library to another filename). - The shared library -\emph on -libbinary_c.so -\emph default -must match with -\emph on -binary_grid2 -\emph default - -\series bold -at compile time -\series default -, and if you change anything in -\emph on -binary_c -\emph default - you probably have to follow the above instructions to reinstall the -\emph on -C -\emph default - backend. - -\end_layout - -\begin_layout Standard -There are ways around this problem. - You can change the name of the shared library by setting the environment - variable -\family typewriter -BINARY_C_LIB -\family default - to the name of the library, and pointing -\family typewriter -BINARY_C_SRC -\family default - to the -\family typewriter -src -\family default - directory in your -\emph on -binary_c -\emph default - tree. - Then rebuild, e.g., -\end_layout - -\begin_layout Standard - -\family typewriter -\series bold -export BINARY_C_LIB=binary_c_custom -\end_layout - -\begin_layout Standard - -\family typewriter -\series bold -export BINARY_C_SRC=$HOME/binary_c/src -\end_layout - -\begin_layout Standard - -\family typewriter -\series bold -./configure -\end_layout - -\begin_layout Standard - -\family typewriter -\series bold -make libbinary_c_custom.so -\end_layout - -\begin_layout Standard - -\family typewriter -\series bold -cpanm binary_grid2.tar.gz -\end_layout - -\begin_layout Standard -The -\emph on -binary_grid2 -\emph default - module respects the -\family typewriter -BINARY_C_LIB -\family default - environment variable. - -\end_layout - -\begin_layout Standard -I do not yet know how to have custom -\emph on -C -\emph default - backend modules with different shared libraries. - It is quite possible that you could use the -\family typewriter -PERL_INLINE_DIRECTORY -\family default - environment variable to have multiple builds, and point to the appropriate - one. - Please read -\begin_inset CommandInset href -LatexCommand href -target "http://search.cpan.org/~ingy/Inline-0.44/Inline.pod" -literal "false" - -\end_inset - - especially the section -\emph on -The Inline DIRECTORY -\emph default - for instructions on how it is best to set up production code for multiple - projects. - Let Rob know if it works, so better instructions can be put in here. -\end_layout - -\begin_layout Standard -There are a number of environment variables which can be set when installing - -\emph on -binary_grid2 -\emph default -'s -\emph on -C -\emph default - backend: -\end_layout - -\begin_layout Description -BINARY_GRID2_LIB The name of the shared library. - Usually this is 'binary_c'. -\end_layout - -\begin_layout Description -BINARY_GRID2_CC The name of the compiler used to build the C backend. - Usually 'gcc'. -\end_layout - -\begin_layout Description -BINARY_GRID2_LD The name of the linker used to build the C backend. - Usually 'ld'. -\end_layout - -\begin_layout Description -BINARY_GRID2_INC Include flags for the build. - Defaults to -\family typewriter --I -\emph on -srcdir -\family default - -\emph default -where -\emph on -srcdir -\emph default - is the -\emph on -binary_c -\emph default - -\family typewriter -src -\family default - directory (e.g. - set by -\family typewriter -BINARY_C_SRC -\family default -) -\end_layout - -\begin_layout Description -BINARY_GRID2_EXTRAINC Include flags to be postfixed to the -\emph on -inc -\emph default - flags set above. -\end_layout - -\begin_layout Description -BINARY_GRID2_LIBS Library flags. - Defaults to -\family typewriter --Lsrcdir -lbinary_c -lbfd -\family default -. -\end_layout - -\begin_layout Description -BINARY_GRID2_EXTRALIBS Library flags postfixed to the -\emph on -libs -\emph default - flags set above. -\end_layout - -\begin_layout Description -BINARY_GRID2_CCFLAGS Compiler flags. - Defaults to -\family typewriter --march=native -mtune=native -lm -lc -fPIC -ffunction-sections -lbfd -\end_layout - -\begin_layout Description -BINARY_GRID2_EXTRACCFLAGS C compiler flags postfixed to the -\emph on -ccflags -\emph default -set above. -\end_layout - -\begin_layout Standard -\begin_inset Newpage pagebreak -\end_inset - - -\end_layout - -\begin_layout Subsubsection -when proxies/authentication get in the way -\end_layout - -\begin_layout Standard -Many thanks to George Angelou for this guide to installing at the Max-Planck - Institiut f -\begin_inset ERT -status open - -\begin_layout Plain Layout - - -\backslash - -\begin_inset Quotes erd -\end_inset - - -\end_layout - -\end_inset - -ur Astronomie in Garching. -\begin_inset Newline newline -\end_inset - -We want the -\family typewriter --k -\family default - flag when getting -\emph on -perlbrew -\emph default - and to write to a file -\end_layout - -\begin_layout Standard -\begin_inset listings -inline false -status open - -\begin_layout Plain Layout - - -\backslash -curl -kL -o perlbrew.sh https://install.perlbrew.pl | bash -\end_layout - -\end_inset - -Make it executable -\end_layout - -\begin_layout Standard -\begin_inset listings -inline false -status open - -\begin_layout Plain Layout - -chmod +x perlbrew.sh -\end_layout - -\end_inset - -Edit -\family typewriter -perlbrew.sh -\family default -. - Find: -\end_layout - -\begin_layout Standard -\begin_inset listings -inline false -status open - -\begin_layout Plain Layout - -echo -\end_layout - -\begin_layout Plain Layout - -if type curl >/dev/null 2>&1; then -\end_layout - -\begin_layout Plain Layout - -PERLBREWDOWNLOAD="curl -f -sS -Lo $LOCALINSTALLER $PERLBREWURL" -\end_layout - -\end_inset - -And add the ignore certificate flag -\end_layout - -\begin_layout Standard -\begin_inset listings -inline false -status open - -\begin_layout Plain Layout - -if type curl >/dev/null 2>&1; then -\end_layout - -\begin_layout Plain Layout - -PERLBREWDOWNLOAD="curl -kf -sS -Lo $LOCALINSTALLER $PERLBREWURL" -\end_layout - -\end_inset - -Execute -\family typewriter -perlbrew.sh -\family default - and we should get an error about -\emph on -patchperl -\emph default -Add the following to your -\family typewriter -tcshrc -\family default - (it will print out the -\emph on -bash -\emph default - equivalent on screen) -\end_layout - -\begin_layout Standard -\begin_inset listings -inline false -status open - -\begin_layout Plain Layout - -source ~/perl5/perlbrew/etc/cshrc -\end_layout - -\end_inset - -Close the terminal and open a new window. - -\begin_inset Newline newline -\end_inset - -Get -\emph on -patchperl -\emph default - manually: -\end_layout - -\begin_layout Standard -\begin_inset listings -inline false -status open - -\begin_layout Plain Layout - - -\backslash -curl -kL https://raw.github.com/gugod/patchperl-packing/master/patchperl -\backslash - -\end_layout - -\begin_layout Plain Layout - - > $PERLBREW_ROOT/bin/patchperl -\end_layout - -\begin_layout Plain Layout - -chmod 755 $PERLBREW_ROOT/bin/patchperl -\end_layout - -\end_inset - - -\family typewriter -$PERLBREW_ROOT -\family default - is the path where -\emph on -perlbrew -\emph default - has been installed. - Follow Rob’s command for installing -\emph on -perl -\emph default - in -\emph on -multithread -\emph default - mode. - Hopefully this will install with no problems. - -\end_layout - -\begin_layout Standard -Make -\emph on -perl -\emph default - point to your new -\emph on -perlbrew -\end_layout - -\begin_layout Standard -\begin_inset listings -inline false -status open - -\begin_layout Plain Layout - -perlbrew switch perl.x.x.x -\end_layout - -\end_inset - -Install -\emph on -cpanminus -\emph default - manually -\end_layout - -\begin_layout Standard -\begin_inset listings -inline false -status open - -\begin_layout Plain Layout - -curl -kL https://cpanmin.us | perl - App::cpanminus -\end_layout - -\end_inset - -Make sure all is fine -\end_layout - -\begin_layout Standard -\begin_inset listings -inline false -status open - -\begin_layout Plain Layout - -perlbrew list-modules -\end_layout - -\end_inset - -And hopefully you see -\family typewriter -App::cpanminus -\family default - and -\family typewriter - Perl -\end_layout - -\begin_layout Standard -Good luck! -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - - -\series bold -Installing robs perl modules -\end_layout - -\begin_layout Standard -Running his script it failed on -\family typewriter -Inline::C. - -\family default - Its on the list twice anyway so I reran and got as far as Sys::Info -\emph on -. - MPA -\emph default - has its own OS that the module does not like and thinks is fake. - I edited the install_modules.pl file and commented out this module. - Rob says he doesn’t use it anymore so hopefully that will be fine. - -\end_layout - -\begin_layout Standard -It also failed at binning so I went into -\family typewriter -modules_targz -\family default - and used the install script there. - At first there are errors at it searches for the packages online then it - installs them locally. - -\family typewriter -perlbrew list-modules -\family default - suggests they are installed. - Going to scripts and testing the -\family typewriter -CNgrids.pl -\family default - I seem to get output. - So I assume all worked. -\end_layout - -\end_body -\end_document diff --git a/doc/binary_c-installation.pdf b/doc/binary_c-installation.pdf deleted file mode 100644 index 1a02d23883300fe36d40b02b4cf26afa1e6c1eae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 124231 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	vWHmz$ zuCkYPhL!KC-lHE<tK`eV;@YmhE1xt?7teUU4HSvb>BhQ7SGQn>cg5|xpwSM`@(e?8 zfU9aNX$vhDtVOFYB!J1xBi|*+aZX^)pBZG<Ninb0&;fmaCB^B|-Km9i!!2gZXWcg{ zigeV~i+E&}-sTLd1jRDfEC#;aADAbRVT3;|O`M3eGp#-D<C3PUFk72m0;TLMfshSy zU39d}T#;rByAp@;gYRh5xYcrcdHdY80=3$}w|uAgZ=@mYWW`0-CuVSct>t}dzSJ4W z8@h^J2|NxOdZ{0B!zv(t^lBfq`a<kAJw!#fQTwCH*xsOuJQ9UgZ6`-j?azlh_&#nR ztv!b!_1PYhndV0ILO)8{1G|R@Pe-+7f5^99gZ1n?tyfpA>0<u;+|_85J&18RxeSjG z(*U`9K|>1n5b|^CW`!?xazPB=bjnq)Zi+{U3a}E5M#kuSJFjR#(IU8|<T+t!UCBDl zL?0XvMKi)mZ;u%|w~yN+<xkU(U-_(lXPX1hGyEK7z-4`@UGfGufk;=-{(z5bf6l9~ zDA$;<7=I7XFZa6abzCiWPzjFq_I~Gg`3LE@8$*0N=)MLw$Bs|wsD)guUIEA6YP=zW zKNxyb_2L)(Pqn0lv*7Y|*3k(}OFTT{61UVyKhM%OxFATXgyr5f6Wstyu$AM3ydjU6 zbo_c6XLz|!H`ossDI;N5WW(H&=x3dEZkXUgMX$(Q$SuPs1-KTpOr`p@ByM<5Kc*XA z(==5mOJanw>fVG(%sdNwag<`k)(7q34Pp)W4vn~OwcF5gtoYNBmP%9p^XJ8{O}qLd zG}_gi$$~j*PSCN+fXnU5wzy*@D~r#Wi>4NI<Xwf4?ZH}OiMax*s^VFWu`ka%6AmYb zg(_iQZW>GTqa>hZIS7AZh|FfJEux=3?r}Qz`C-FR^x>)t6@jb{^$f+rEZL8c7xejg zDFjG@U^5)NuY1_np3OQpJv;cGA>1K4E+!z_)f2ze(IvZyl{a_kg5rdbu=X8xhm1h3 zL(EC*pqZm7Q-(1?L{xG1-NSL#V_o>2H5MB3Nvw;^Y_9s=&0iEPpL{Om$S;{NODj9i z?LD+-bz|ePSty;kyXw%bT!c!xz>)1i(|s3_528_pde@m{w(zdAmCc7=djlONx=ZK@ z-_V<8?`g{YbRffCzYt~;AIW#jyLNbR&*A{*DC@CDGhs#JcLMCKS9d;bV=3Stw>PYg z^}l+?P9R^x+~Z-BK%29CY+@&P_<6Ih09RJW5To&4pfR6WT270FiNSP$RX=%+f~0|< zhRKc!1+7)ZWz(slnp>-PD9syf;S6r&^E#F$m991~Wu8+Jatrf#Uwm7pKvA?Si@dR0 z{(yvAHz=@-7FtSI%VtnXA-Cn%bIr|cR>d-$azFbvmJhFh&<E$%tybQ6%Xq$>XPYiJ zLT18WTKJo-7Lg3jv$!%GcHx8i9t~}IHM*qcW#JWfnOybjQcs&;WerAVy)(YmkE!zb z!7S0dQPS(rOy5&HiH-&GI%}&RViJZwlZ94XixlajQA{h}Nbe(cX=~b;mfvFS7mE?5 z?mU3@OsmCDl6OuI-<NkLrBbYE^38!iOq#&iaW9yuD^`75$a-Ju@wz`_vx4v8TwORt zJ~e}Q{Q1_F7x#CfG^f-tzvQv9x3jZ!5XZdxl7tA1{V_7r^}Ld!G~rh5So(OFgEC&f z_PSBae0?nzM?CdoS&Wsh>pUZI+&0a6uI2lO-(|Odc2@B#h>Rzt2VV0EWhADlN!)6B z;)D5NM?pu#b!{ef0i%z;x)=O~-1l9BSwH{sP39?vobNx@2k4muK?*+)zuca~zd)<U z6uT5Ue=){dn!KZ$Khd}BtA`!oAk7QIAG^I(qMNvl@#~Iov*5ClFW2ehTRPT;+R0yM zj^u^0+>s{U>fznob9aowFIap%mw%gcJt}VyZ~Ov>Bi?d}mET=bB~pKK@Ef;#=2A$F zq&OCL&Av8?3>R@D5Ao~64=tmtq9{x0D_j+yz3noSnz-xqf@`mY-1_qBQ>g|m>471< zu+ckISd3W`7Ubz#ZY?BTi*uizQ@@kkSlCQCe~=otVSl?R(|tyY|CYXq&k>;;aMdV= z&-F^M)`8qkzxookL0w6x$BU|6#iqg@l_SAsy?krs*|@^+72U6U1cf_#CZCU9G%Ynp z&aFTFIq3PIi*#gYEiI{0rcWD2=|gdi`r4vH50Pi><JX)Iu;vG4cW%Zo-g`nAEb;z2 zxtZE`)99$gN81pFh#$pedZWanv!WF@J8USr2j<*ceoo5EX;j@3sn+(#V2~nb#E<4K zaO@CTbhrB0o<^7f=UJg%)5l4^73^0Fr~TO6-MnS#8*2R0wNO?JWDyId`*v`MoqhGo zo}K2)xaVaLTdHl|%UDsV>3*Dvit*3eigbUAvq$>%;ibzTdaeXKDdBHV5Go_>J@hsk z8rkE=STDxT_cjyLsD9$>!Cui_6zRsi)WTTL!a*u4O{;RZu)=ixg<pEc7>5pLxLaaS zoJ0ADlJygN3MTjcCf&*>-eXLKRBvAU+WLr5b#>Lg+k8cH8&0aF{eTzOb8Xv@UGX8~ zd<by8p0Rp8UME?OQ4#;O;p=Z)>JF<!`-L}Q6by#T2Qy|`;ic+kizZv*Uv}D`e?7mJ z8^pV+o%C+WUnZ4EU(N&XNHMFbz))ZGD*v=ClqZae&FS5><pI~_uMbP(i4TTJ7dr(# zcP(pKn~9~FIs^r@9e3v7A8H$Z-Zm}hcD<3wMD4&=Eb&UAIDhtS+%kUweBZM>j>v$M zNu(quN3^A}^oN&XX~~i%a7~88r33-x1CCFeDR=I$v?le6%59CiWSo~GebCQn+`fru zq9Whg>s}jax6=ArIc~g+FXhGbz&(4iGsS36An<A)Ax{o-Q&(^jMY-d7N3pj422qQ6 z<uzhL5(=7Y3tuX6D#r!Oic1te?`VDzz`Q`@tUkUa#K1RKWOF`}TR?I+(tB>zpw_Cj zQ_c2?*+{q$q;#xYRmj@BE_1LC`V9K>=tg_!nCR7DOzTI944SvG=w!YLPMcS^YacHg zZB^^Oz^+;svQVS_;kTh~#I87wnR}jhqQtPqA95dOR;|(*yRy!EU0gmYR$w@y7MeaF zuENnO{YjMqh-+>ZX?t9xyptx^sw(vI(3MI+hue^+E}<u#oH=3#tRWd_TpqnUF3ma~ zYxe2Al&XgPx*TO9)78P1CvO9BwQFgzhs+$7d0VA=IaMXUn_r^(nynL!e1~_0CBPmm zU7BuW{vl}J(Yi5GG^VC%=vo5K__gw2+|ckR&zHj_$BCz}%~KG!6y!~;IE-TFL2fJZ zE~-Xnf@L~pvTz5G8!mIZ-A~vb@%jbvDScn6gnS$mXIixh<9!eYGF$i&+{l<aanVt| z$A5uSk?W0*yxh}cGikFgsd%AR-_yUh+?-*hIQSuE#sNzl+VZG<8}f4QLQmY+oVF5= z-o8WfPn3tDz3Q@@<L1_{CCg&HoWkX(1)FR89m2ixXnEY<E*qEK_%K9lT|FOs(|NfV zL(fTHp;~ahR*W-Fal^YIB>s3eD!xO0q|9}tXp(d=0c`PY3RAu+$Z2Lup=Zef@oh<; zyx_-m`NJy=;vYNNkndX=Z)VjhiGs^M*E?{$^w+WSb29_+wcpC!zNnt;L#(2%S!Ts~ zVT<v&z;85M@hSAHNfuVefm~Qwv(rdx_z?BWDk)Rfr?&7Tqx1O=UAIJ$(XH`MG3?I? z1STK-+@6JVt3q6*RvVBwob*Y4h)dK;EvZgDEqpjst*faFbE}8v?+1*p)%G%W3oKWV z?O#-@v$UniZO<7mb$IRagh?~%F=e#ZQ1Au5Et($LEtSL`D?2Ni4lAnAf|4dXdOTAM zsWn^HPWBE`3jMqsn>%t&ab?9(1N2>Vt%g@r8P<$nY59dkHPK_WSMa{`!In<`aPLde zIg`gadSud6!`n;`>S<w<O_8ph(jm_-29Ej>1{e_Sx{FY{wlF@O9T>YFXfLonz`7>@ zDn3{(ycRog!AWrnBCxwWwK091w7#L*iuJU^p5FK2>-_AVd6h3mN4Yrusq|HPb)I)8 zCtf4jG{f??ylSk^Pkc-K5-@5>LYP4D;My^M;N|be0xgEQtAi7rb%U0k&g2$%uUwtd zOL^3yOvgOfZb<?WX21rnz968lJtp14uDJQa$XBVvcb?Lgv{58v{8{!_O2bVXy-%F8 zuG0+IGAoT&U}1r~g%B@30r%AaX`hv3(;I_2+58UfcG*@H2rHkTO-f1xZWIGF8iSAg zdnv^CFr}ueS7jq_k{sJ9N9bG^SY0B0oE7w9qx0TX3`2REI*#+Nq^3D=3P%YIU@`Cf zP0Be5ubQtVe3XJpqzc22uk{=tdq*A;6iTh&bIsP*QzR}>eqYQ)_RYWK?!b;_D-9aC zCTQ%`OxVTBU)Auwg)G=K#iZx_(Ze+a1;qcJ{ASuQ@yl@r$Oi$$bmB`GZ)os?!hm9T zYs^DBc4mT#s1ct_DHQT=A4u3^EmRC8S4iDfWG(~?dsm*bluy`ozG+AKqv=?ayG6OY zIWjD3XJcN+YfnZ{cV|3U=-j+TGm|4>_g4|>73~L_lHw5O&+(AzM;q!GEH@YT(y6XA zZ4C-yT%m#8#<)n*S(YDAtH|J~%#XySc|2CQZ^4hl^zm^o2xqj`2lrAP2?Kes_9dsX z$pZRV4d=_aDYwf$6a@9Vc^pKRKh5z`c;;dDWY5=$K>H#3F$tdk={07++R!}_F*Xqs zN2D^+)=A#Z){b4o&e~YfkW<3W*7?_22?*+Ler^~Y49rFM_f=-7d&qtrh&XeV*~#la zhb6dyBN5WhNNWotVOuk66FT7RgtD`VjT#-#|I$rn|J>96=a7O0=gEy@w!p{dj-1Ya z9{}(;eWVEjoM1Y&=Z^yXUmt1WI(>1Ns*;VIwh8I|5l6e_ORP?-rb|sfKlok6b?R*0 zX@Lpvj^d@^FtRw&Wq6abfZDQBi;U^)W~Cm#4UVpTe0g`_fsC-m!&I>JHsecnF8WWq zq9O98kmbfQhOMH*)qz&8M5n}Uo-Q8xN#=|6k#iM;j~1#zs-8GyZIbPY7Vd%bWNuFT z?S3#6y!-5_&>*P|2Vu89#^GTl#^Fo1lohi`{&V;E9%?Y)T_W4#dH8^Y67le%vPGLr z?j@|_z;ow{@O)h46Ekn<Yu|OG=cPDDCUxN|9ZAC@L<GS%VGJounSv_?lTgCRUhJ(0 z+y<8pICyU@5PLL8HpqXYWh8p$*ec!{WE`-KaKPv&JCyYtX=%(G*~kozv5QLwkJpFO zi@9CWTksp}TNu$7XPsbCn~zoWWwHlVO#Gm`3)*GZDmvih;=V#w`g6FhX)B;#LM?az zONtIh^ooW1nt+Rmf{AU8Fg~lxe2kl2ysjFyRRYy~!h^nV2KV`YWUO#d6~De0<mGPH z^5J9oXur!2+<!1z_0x5E7S-H1ITI7iOR1RsUfzUb;ahX;Sef40K>^Z@yR0vu6^dlc z*}Qi;Q!ld(^9co>Q~C6<a7Oshb%HH^{#|}HH7yfJvfq&FAp(5OO{cr0|D&mRdNFD1 z)oH~oI<AL}#%fU($@PPqg>f#a?U+get*;-~cH7N?m*{^K>YK_y(jjE}gEdLC68CSn zC1nW}x(yo8ZZ`jbuiTF=s^EQ*Q(J^x`hH9>=7r<}URQniu=Y^DQ^O5nGt6cKjt$dX zv&PMe-rDLUndIc9E19&tL%jRf%RFj%zpq=)Ex1T^Tr!W&ddZ#JS)^*#Zux|+v7|S% z{2CD0dw(TRvzfD$Pau4f${#~zTVJlDJHtHIt~;dQHg%DScO`LOyhNJNZViriM8mBr z2PzxF9gj6yJ3F6yx=2xZ<)^9hqV@iGQW;SfZ_{^Q{(M=Icb{FYeX_x2yEI%psYlSO z_et?f$K-FZ{nZPlpF$N1(zbHgIOZNlg^~>4f2W=3BX6S+kg}qhAQSgOhX(h`-B>Tu zFg^Q@IL}uhbTfQ{p^4W&GqC!TAlaOp14N_}dcxn^#Zl~M4IRzbzJ^KNFi6){E21t0 zU2OUgO``eS9LFz`bi9JJ*r6Btj=#0aOKye0-<rzb0V|Y1t@6r}!k4BmjiTaWKMUTk z8^-iBtSJ@sy0l)zPJZ8?b9ErZOi%g|5>zSW17^!Oz~Pts8nH>j;{E-_?l3qi?1j0G zq86=Oc*Tv)k~}dVn$mYA1&=oTs{HPIinQ)9V=&v&l1}VR%MiChk4RU+3z@R34z+to z=U0Tz>}z(PrI<EfI&eJ9P|^#k(+;CNpR`e1MP01NV~TTo{cB60tj}gO%Z8UdXlb*m z!At7udPoE5R89RH=Y>fj&kLlj|Hg#>%MQ_Ts#pN0yI6F%;V|GoTn7XK8KQnHP(QY) zA0+C>5%uGN`q4-I7_pulSaW7^axru=F+$z8!2#j`15i;r7t|p(-~cM;UDQ!6XF52_ z3gU6zbu@9ML;QM{uyAy8rsD#k-sm{xkiZLI{!!Wfxnu(hy#KP5c${(;HWtoKblP|< zVs=LC%FakfXI8wEx=&Tl!NZEDi^r*ev@to8nGTFPO{#>)A`OfU99*n)TwEyp{{nyj z2rvl!1wrNE{zdxlLSPi+R|9@SxKWUkh$?>&LjVZm6douFataR&1^F8f3h^oWP<X+p z^I?DJL!kwqj3&P;LSY5}-2xO+@ZS}~0RV6g@gE!r6yR?hJSf0#9M(?G))v5}DYj-D z>_E#QzZ-Q5jN%dEcNKpppvZ^)8$761z<#&<@BFC7!2V4Is5ZfWQ~Y;+RMX)9re0JF z;lKI#cYahu5x=|pZ#b&Gh~EqV;I=L{h9-_cb5Y^|9M(MH)ZcK>iJTz*X~CZo;FAQ{ zKP3H0;Qp2H4^4j(ASVfM^hzLr&H%0WCHpLY)ehl6u@C-FGyb50{z8S`4(Kmb|8&Hk z60lz-(Axq3mGDnj{3!uHL4`mk7k)w&0-apM2`a=tz4r$d&##2vRM{iVOi+N|to!wf zk}JsXlD{A*-2*~3o%F~r$cc>ouJ#uM#hw#S6wr|q2$1EEE}pyt8DM{x0L1Q()SaXQ z;`T=xPTm1A<N2E|lz9C*l>WN{lw5KBX4XlG69xLsq*Hbfr9r>RKLrO!{L`Z-_-We( z6#66m|0WS&63<^K&lE*54D_4F|EBN>_kK$ZdNPWt-wj7k1h@zsVm|2!^hAKAe-scs z5#TTUH@DCe0cQUZFZ4u!^MAAsJrU>y#BT*dPXu}daZ;!5UjqsFWSsf?T(`W5GtwC8 zj0C0%E{4t?_9mPf@^YMVCbnkI=78iu|A}qIFXV22asZmn(8SEbR)Bf=eGN06g|Ps$ zI#eDcZ!c<MZXxCAXrk<?pkm}{WyE95EF_4>FN8F<Gc;j$N7}QST37?oyqxHO)7=8} zqDpcS^r#H(yzVykHUJrP?l#u8PQ2~{%qK;7foBw$lbP-$i?fvgvxfX#I%hjOYby(2 zl;i*uik*x5Hl3*>Fv_{vIa<+ialn`Xl#a%xyh>sczYzj&0?g*l&i1^VoNjJz9B$kk zc8+G8Ts%BHoFFhK7|agjV0ZGcbw;|g+dAC@>N_FCLgQb>Y@IkxXyO3Qc5_;2aB^{g zIR8|HntwT3*rUdMI#k6-Lpv8|0cIB$3u9hm9yrX{$Oyp>=YpBCb8(qM*#VCM#14XU z86v?Tgb~<;`%iWDf022rJ|F?8kQ=CwA9&=w>u6`}Vr1edXzXfX??lH&CwW(nPSV`Y z$@v!@bUYkj7(eH!tav9SWlcN)E*U!s{!0DVD;_^5itxW0@|%Z$LH?hb26XVhXC)vN zzj?_I<l&XKGqy1G5CdYq2?8I%0Bi#K7p}sE;01wrp<pe3&NG<+;Q>mCo<xcJZ%X}@ z>910Djw*mO3CbZ=Of=}+EC7)=2UNh((ZrMvCF_8R{#EBm>ED_Ee`glbUS9scW|xf( zN-0qJcmXHS#RhOKrN#blM2_=+xr2?3{zb68i=*|4ei<8anpm5lXmbMkm<yoT*ofEE z&d~-5Xa~~X9$2P8o?J}_NGc%OK%z6s{T4jYUSVtJUk}z6C~f4mM%tPQFuSuGo0uY9 ztet`UCn9TY@%!N<Kj%L<fF~oASlBuKLZfWr@CV=7q9;kHqW>xYJRAR`)c=nJox=2Q z^y~x#7%QMhIR9k|1@Y+qm;V0u5dCBSfgp_n%x);_4m>$I1AMkYJ)wpb)VTb6c==<e zSpF+Jg_<Ry`Ux<eC<SH_<3%Yxhzsxo5g-tt^B@p2@DIoa*oOZm$8RNN`7g8?!1HU4 z2Rs1doh2|`V*wt8U7XGB98phyY$6M*py2N&xdYY!4+KogxbRT6`_~^G3<?D%45oCy zU@$Hy$`eHW(b@ij0savT<;wjH0|D0_!U5mp6b#A(0s%h9-!LvN7zB0E;@>c!EF3je zIs=2EW;$nJ2oNyv{|y81fl(8<zhMAA9v;ABI}HPK!O&<1bDzZrf`K8>v+aO^VJIi` z3_b+PWjYPxKAF&+fpMcQ{5%7LqP&$eFc``)Jp)6)(D(uYp{8@E^Fg>#PVp%i@PeBB zo`!MpzySyG6b$G|p0jnp;b7<)TDSnlp!F{t#*K2}PT}K0z)^G9Q!qG`2dyu802Z7r z3x{%}@r4HjMtOp#@j>8dWf5Qm3{cTi`Ct$T1dY!S2+BJ@l@H3ph1ND01d1k;AV99r zc#1%9p~(gW_U~Y*3E-)EfqPpaXYs*#Kxp*AAPC@_-_vDb5FV5hd<q{7dNOrC1LH<5 zx}1fb)oBo%n+Nq}<f(jc1Qhi}+bI|f3W1>GgYux~gQMooXUg)Nl`9Yobzkb)d@ydV zvwaSOaiga1r|>~}AY5p500Mos9Uue(tqv{_4|*TLpr|k)r|N*gVCZ~?0SM9Z@u2A& zln3^2@bRGLM5pQiXhEkBFgj=R!Qdcty9?(+?<2q`N23pp&OaESaA$c1z<AJMFeo|< z&UIGLVQ@IQeSsrT>rtoL3xgxjWCN%bHBmp44;X09zyN!XCcCKl4w_6NKxpy|Lx50A zTc_(loGj&?f&rgjp3TPvEbpP)7X<k1_y&R@z-Vm)U}!cL%EN<NLOfM348e^!YY$K^ z!&&_RgQ4hl4FN&3S1<$wP1ax_K-$pig`&{{)PY)9IYl2g2!gKXh<{`25HQpt$EmU? zl|j>K1iC#1Mp|^50rf!B1s(`$RpN9VJTP>520qV5qlJfu`)u3bAizqT!3PJ1(6jXd zFm&Aqaii%Q91y>=b#Q~AXf}cy3P&wBooWXh#En{}J_|#WA;27<*$6n`TAq~`0EVVp za1acw&jA=}G3QjhFaY0K7%=*xjaxuF(8dJ_;Ow5Y8*mT;ZHxzCXk#86u!(1NAAq5a zzkvBevrTZWlO?=U?EqkCb^{J9x1W^_0ESv8J5?42g8iF%xzTJB&|aRiyaJ>YO(p@$ ziOy3l2$~Ip1FKZ%^Z_3E8TtTokFNWGsXHrwaA4*AY})|(pl4}@0$cTH{RXHd8a_Y( z&-4+{8{BC250G#)e;f|XhR(JP#)Uq<!NDhcBB%NTpbu?KhQiTh7buIC4-ObMw03~G zxz5r82c{Khd<Mh?jW1vbTA!obXY@LNiOSi21H;hlJsb>2Z6uv)FC2_E?*W`d1Zt<@ zOg?l!0uBZSnzQ);Lv&US;K1!MX!ehr3(X$Dxxr|94(H}Z^FaU@YP;w(ecTYVF&WMc zLGL4OD0&}p1CAmZKEPW+g8|m$3=Fs^2W`xQa|42ZCLa_ISogCq1P{9H1cqre-gBe- zgm47lbe+Km=K(ISIRgW{Q?z#Q{2Tks1BIgbAb{s{R`&rNM6(CL{0(u|h5@^yAhdb` zD}Gj|flOd@*#(A_v+aNbW)e+y0iWv(4*)>}oREKb;OvOBur_hT<L9U2RJQOmK`lto zaVpu_0h`CDO$j<qX<Jh}I-oXStCUk(j82;$3=;;7D6pOa5rIj-Ma7^ZBETG-TU<hv kn+GN$EFt*c=Q!Csa6)Y|pDcp_rW*l;;4w0aD@x$~A91FtWdHyG diff --git a/doc/binary_c2.lyx b/doc/binary_c2.lyx index 425cb50da..5bb03af5f 100644 --- a/doc/binary_c2.lyx +++ b/doc/binary_c2.lyx @@ -1180,7 +1180,7 @@ Ubuntu status open \begin_layout Plain Layout -ubuntu_install.sh +ubuntu_install_binary_c.sh \end_layout \end_inset @@ -1210,17 +1210,17 @@ status open \begin_layout Plain Layout -wget http://personal.ph.surrey.ac.uk/~ri0005/ubuntu_install.sh +wget http://personal.ph.surrey.ac.uk/~ri0005/ubuntu_install_binary_c.sh \end_layout \begin_layout Plain Layout -chmod +x ubuntu_install.sh +chmod +x ubuntu_install_binary_c.sh \end_layout \begin_layout Plain Layout -./ubuntu_install.sh +./ubuntu_install_binary_c.sh \end_layout \end_inset @@ -3661,7 +3661,7 @@ noprefix "false" \begin_inset Formula $\binaryc$ \end_inset - is describe in section + is described in section \begin_inset space ~ \end_inset diff --git a/doc/getting_binary_c.lyx b/doc/getting_binary_c.lyx index 3eb0002b7..076b92264 100644 --- a/doc/getting_binary_c.lyx +++ b/doc/getting_binary_c.lyx @@ -391,7 +391,155 @@ End \begin_body \begin_layout Subsubsection -Getting the source code +Getting the +\begin_inset Formula $\binaryc$ +\end_inset + + source code +\end_layout + +\begin_layout Description +With +\begin_inset space ~ +\end_inset + +git download the source code from +\begin_inset CommandInset href +LatexCommand href +target "https://gitlab.eps.surrey.ac.uk/ri0005/binary_c" +literal "false" + +\end_inset + +, e.g. +\begin_inset space ~ +\end_inset + +from the command line, +\begin_inset listings +inline false +status open + +\begin_layout Plain Layout + +git clone https://gitlab.eps.surrey.ac.uk/ri0005/binary_c.git +\end_layout + +\end_inset + +or, if you have set up +\begin_inset Flex Software +status open + +\begin_layout Plain Layout +SSH +\end_layout + +\end_inset + + keys on the +\begin_inset Flex Software +status open + +\begin_layout Plain Layout +gitlab +\end_layout + +\end_inset + + server, +\begin_inset listings +inline false +status open + +\begin_layout Plain Layout + +git clone gitlab@gitlab.eps.surrey.ac.uk:ri0005/binary_c.git +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Description +As +\begin_inset space ~ +\end_inset + +a +\begin_inset space ~ +\end_inset + +zip +\begin_inset space ~ +\end_inset + +file you can either download a release, e.g., +\begin_inset Newline newline +\end_inset + + +\begin_inset Flex URL +status open + +\begin_layout Plain Layout + +https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/archive/2.1.6/binary_c-2.1.6.zip +\end_layout + +\end_inset + + +\begin_inset Newline newline +\end_inset + + +\begin_inset Flex URL +status open + +\begin_layout Plain Layout + +https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/archive/2.1.6/binary_c-2.1.6.tar.gz +\end_layout + +\end_inset + + +\begin_inset Newline newline +\end_inset + + +\begin_inset Flex URL +status open + +\begin_layout Plain Layout + +https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/archive/2.1.6/binary_c-2.1.6.tar.bz2 +\end_layout + +\end_inset + + +\begin_inset Newline newline +\end_inset + +or get the latest master branch from +\begin_inset Flex URL +status open + +\begin_layout Plain Layout + +https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/archive/master/binary_c-master.zip +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Subsubsection +Editing the source code \end_layout \begin_layout Standard @@ -417,8 +565,8 @@ literal "false" \end_inset . - Access requires permission which is done on a user-by-user basis and currently - only works easily if you have a Gmail account. + Write access requires permission which is done on a user-by-user basis + and currently only works easily if you have a Gmail account. If you don't, we can probably arrange something. \end_layout @@ -454,7 +602,16 @@ your account is locked! \end_layout \begin_layout Enumerate -Email me at r.izzard@surrey.ac.uk and tell me your account is +Email me at +\begin_inset CommandInset href +LatexCommand href +name "r.izzard@surrey.ac.uk" +type "mailto:" +literal "false" + +\end_inset + + and tell me your account is \begin_inset Quotes eld \end_inset @@ -596,9 +753,17 @@ You can access \emph default through +\begin_inset Flex Software +status open + +\begin_layout Plain Layout + \emph on docker -\emph default +\end_layout + +\end_inset + \begin_inset Foot status open @@ -620,14 +785,30 @@ target "https://www.docker.com/" \begin_layout Enumerate I assume you have installed and signed in to +\begin_inset Flex Software +status open + +\begin_layout Plain Layout + \emph on docker -\emph default +\end_layout + +\end_inset + . I cannot provide support for +\begin_inset Flex Software +status open + +\begin_layout Plain Layout + \emph on Docker -\emph default +\end_layout + +\end_inset + ! \end_layout @@ -702,8 +883,18 @@ docker pull robizzard/binary_c:master2.0pre32 \end_layout \begin_layout Enumerate -When you run Docker it inherits your stack settings, which may be too small - for binary_c to run. +When you run +\begin_inset Flex Software +status open + +\begin_layout Plain Layout +Docker +\end_layout + +\end_inset + + it inherits your stack settings, which may be too small for binary_c to + run. Use \begin_inset listings lstparams "language=bash" diff --git a/ubuntu_install.sh b/ubuntu_install.sh deleted file mode 100644 index d6c6cf8bc..000000000 --- a/ubuntu_install.sh +++ /dev/null @@ -1,110 +0,0 @@ -#!/bin/bash - -############################################################ -# -# script to install binary_c -# -# tested on Ubuntu 20.10 -# -# Note: this will ask you to choose python3.9 -# as your default python. You do NOT have to -# do this, but some software is only tested -# on python3.9. -# -# We default to using gcc-10 for the compilation. -# -############################################################ - - - -# update and install a KDE desktop :) -#sudo apt-get install synaptic kubuntu-desktop -#balooctl disable - -# update system -sudo apt-get update -sudo apt-get upgrade - -# install required packages -sudo apt-get install bash zip gcc-10 libgcc-10-dev gdb valgrind gawk python3.9 pipenv kcachegrind meson ninja-build emacs perl libgsl-dev global libbsd-dev binutils-dev libiberty-dev libjemalloc-dev zlib1g-dev unzip wget curl -sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.9 1 -sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 2 -sudo update-alternatives --config python # >>> choose python3.9 <<< -pip install --upgrade meson -pip install --upgrade ninja - -# set up environment -export CC=gcc-10 -export BINARY_C=$HOME/progs/stars/binary_c - -if [ ! grep -q 'binary_c paths do not alter' ~/.bashrc ] -then - # set up bash paths : do this only once! - echo '# binary_c paths do not alter' >> ~/.bashrc - echo 'export LD_LIBRARY_PATH=$HOME/lib:$BINARY_C:$BINARY_C/src' >> ~/.bashrc # do this only once! - echo 'export PATH=$HOME/bin:$PATH' >> ~/.bashrc # do this only once! -fi -export LD_LIBRARY_PATH=$HOME/lib:$BINARY_C:$BINARY_C/src -export PATH=$HOME/bin:$PATH - -# Install librinterpolate, libmemoize, librchash -cd $HOME -mkdir git -cd $HOME/git -wget https://gitlab.eps.surrey.ac.uk/ri0005/librinterpolate/-/archive/master/librinterpolate-master.zip -O librinterpolate-master.zip -unzip -o librinterpolate-master.zip -cd librinterpolate-master/ -meson --prefix=$HOME --buildtype=release builddir -ninja -C builddir install -cd .. - -wget https://gitlab.eps.surrey.ac.uk/ri0005/libmemoize/-/archive/master/libmemoize-master.zip -O libmemoize-master.zip -unzip -o libmemoize-master.zip -cd libmemoize-master/ -meson --prefix=$HOME --buildtype=release builddir -ninja -C builddir install -cd .. - -wget https://gitlab.eps.surrey.ac.uk/ri0005/librchash/-/archive/master/librchash-master.zip -O librchash-master.zip -unzip -o librchash-master.zip -cd librchash-master/ -meson --prefix=$HOME --buildtype=release builddir -ninja -C builddir install -cd .. - -# download and install binary_c -mkdir -p $BINARY_C -cd $BINARY_C/.. -wget http://personal.ph.surrey.ac.uk/~ri0005/binary_c-master.zip -O binary_c-master.zip -unzip -o binary_c-master.zip -rmdir binary_c -mv binary_c-master binary_c -cd binary_c -meson -Dbuildtype=release -Dvalgrind=true builddir -ninja -C builddir binary_c_install -./tbse - - -# install perlbrew and binary_grid -cd $HOME -\curl -L https://install.perlbrew.pl | bash - -if [ ! grep -q 'perlbrew paths do not alter' ~/.bashrc ] -then - echo "# perlbrew paths do not alter" >> ~/.bashrc - echo "source ~/perl5/perlbrew/etc/bashrc" >> ~/.bashrc # only do this once! -fi -source ~/perl5/perlbrew/etc/bashrc - - -export NTHREADS=`cat /proc/cpuinfo |grep cpu\ famil|wc -l` -export LATEST_PERL=`perlbrew available | grep "^[[:space:]]\+perl" | head -1` -perlbrew -v install $LATEST_PERL --thread --multi --64bitall --notest -Dusethreads -Duselargefiles -Dcccdlflags=-fPIC -Dpager=/usr/bin/sensible-pager -Doptimize="-O3 -mtune=generic" -Duseshrplib -j $NTHREADS -perlbrew switch $LATEST_PERL -perlbrew install-cpanm -cd $BINARY_C/src/perl/modules_targz -./install_all.pl - -# run a test population -cd $BINARY_C -LD_PRELOAD=./src/libbinary_c.so ./src/perl/scripts2/template.pl diff --git a/ubuntu_install_binary_c.sh b/ubuntu_install_binary_c.sh new file mode 100755 index 000000000..5160d4de2 --- /dev/null +++ b/ubuntu_install_binary_c.sh @@ -0,0 +1,401 @@ +#!/bin/bash + +############################################################ +# +# script to install binary_c +# +# tested on Ubuntu 20.10/21.04, binary_c 2.2 +# +# Note: this will ask you to choose python3.9 +# as your default python. You do NOT have to +# do this, but some software is only tested +# on python3.9. +# +# Environment variables: +# +# CC : the C compiler, we default to gcc-10, but +# gcc should be fine. +# +# BINARY_C : the location of the binary_c root directory. +# +# GITROOT : the location in which we download the source code +# of libraries we require. +# +############################################################ +set -e # fail -> exit + +# Defaults for the environment variables that control +# installation locations, compiler etc. + +# set up compiler +: "${CC:="gcc-10"}" +# set up location of binary_c +: "${BINARY_C:="$HOME/binary_c"}" +# git download location +: "${GITROOT:="$HOME/git"}" + +export CC +export BINARY_C +export GITROOT + +echo +echo "#########################################################" +echo "Binary_c installation script for Ubuntu/Kubuntu 20/21+" +echo "#########################################################" +echo +echo "Press CTRL-C to exit at any time" +echo +echo "C compiler is set in CC" +echo "CC = $CC" +echo +echo "BINARY_C is the directory where binary_c will be installed" +echo "BINARY_C = $BINARY_C" +echo +echo "GITROOT is where source code for support libraries is downloaded" +echo "GITROOT = $GITROOT" +echo +echo "#########################################################" +echo +echo "Does the above look correct? (y/n)" +select s in "Yes" "No"; do + case $s in + "Yes" ) break;; + "No" ) exit; break;; + esac +done + +# Install librinterpolate, libmemoize, librchash +mkdir -p $GITROOT +cd $GITROOT + +############################################################ +versionsorter() { + [ "$1" = "`echo -e "$1\n$2" | sort -V | head -n1`" ] +} + +function setup_bash +{ + # set up bash and .bashrc + BASHRC="$HOME/.bashrc" + if ! grep -q 'binary_c paths do not alter' $BASHRC + then + # set up bash paths : do this only once! + echo '# binary_c paths do not alter' >> $BASHRC + echo 'export LD_LIBRARY_PATH=$HOME/lib:$BINARY_C:$BINARY_C/src' >> $BASHRC # do this only once! + echo 'export PATH=.:$HOME/bin:$HOME/.local/bin:$PATH' >> $BASHRC # do this only once! + echo "export BINARY_C=\"$BINARY_C\"" >> $BASHRC + + # psb, psbb, git functions etc. and completion of binary_c arguments + printf '%s' ' + +# source perlbrew +source $HOME/perl5/perlbrew/etc/bashrc + +# function to switch to progs/stars/binary_c +function psb +{ + cd $BINARY_C +} +function psbb +{ + cd $BINARY_C/builddir +} + +# git function for review number +git_rev () +{ + d=`date +%Y%m%d` + c=`git rev-list --full-history --all --abbrev-commit | /usr/bin/wc -l | /bin/sed -e "s/^ *//"` + h=`git rev-list --full-history --all --abbrev-commit | head -1` + echo ${c}:${d}:${h} +} + +alias new="ls -lrt |head -10" + +# git function to find the repository url +git_url () +{ + git config --get remote.origin.url +} + +# source autocompletion library +if [ -n "$BASH_VERSION" ]; then + [ -f /etc/bash_completion ] && . /etc/bash_completion +fi + +# completion of binary_c arguments +_binary_c() +{ + COMPREPLY=() + cmd="${COMP_WORDS[0]}" + cur="${COMP_WORDS[COMP_CWORD]}" + prev="${COMP_WORDS[COMP_CWORD-1]}" + binaryc_opts=$($BINARY_C_ROOT/binary_c help |/bin/grep -A2 "where the arguments are a selection of :"|tail -1|tr " " "\n") + # check if we match a binary_c argument + subcmd=( $(compgen -W "$binaryc_opts" "$prev") ) + if [[ $subcmd ]] ; then + # we do match an argument : try to get sub options + subopts=$($BINARY_C_ROOT/binary_c argopts $subcmd) + COMPREPLY=( $(compgen -W "$subopts" -- ${cur}) ) + else + # we do not, so list the arguments + COMPREPLY=( $(compgen -W "$binaryc_opts" -- ${cur}) ) + fi + return 0 +} +complete -F _binary_c binary_c +complete -F _binary_c tbse +complete -F _binary_c tbse.mint +complete -F _binary_c tbse.IRAS +' >> $BASHRC + fi + + # some of the above we require now + export LD_LIBRARY_PATH=$HOME/lib:$BINARY_C:$BINARY_C/src + export PATH=$HOME/bin:$HOME/.local/bin:$PATH + if [ -f $HOME/perl5/perlbrew/etc/bashrc ]; + then + source $HOME/perl5/perlbrew/etc/bashrc + fi +} + + +function install_from_surrey_git +{ + PACKAGE=$1 + + # download and install $PACKAGE + mkdir -p $GITROOT + cd $GITROOT + wget https://gitlab.eps.surrey.ac.uk/ri0005/$PACKAGE/-/archive/master/$PACKAGE-master.zip -O $PACKAGE-master.zip + unzip -o $PACKAGE-master.zip + cd $PACKAGE-master/ + if [ -d builddir ]; + then + rm -r builddir + fi + meson --prefix=$HOME --buildtype=release builddir + ninja -C builddir install +} + +function install_binary_c_from_zip +{ + # download and install binary_c + if [ -d $BINARY_C ]; + then + echo "Directory $BINARY_C already exists: please remove any old binary_c installation before installing a new one" + exit + fi + cd /tmp # work from /tmp + wget https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/archive/master/binary_c-master.zip -O binary_c-master.zip + unzip -o binary_c-master.zip + rm binary_c-master.zip + mv binary_c-master $BINARY_C + cd $BINARY_C + meson -Dbuildtype=release -Dvalgrind=true builddir + ninja -C builddir binary_c_install + ./tbse + cd $HOME +} + +function install_binary_c_from_git_https +{ + # download and install binary_c + echo "Install to BINARY_C=$BINARY_C" + git clone --branch master --single-branch https://gitlab.eps.surrey.ac.uk/ri0005/binary_c.git $BINARY_C + rm -rf $BINARY_C/builddir 2>/dev/null + cd $BINARY_C + meson -Dbuildtype=release -Dvalgrind=true $BINARY_C/builddir + ninja -C $BINARY_C/builddir binary_c_install + $BINARY_C/binary_c-config version +} + + +function install_binary_c_from_git_ssh +{ + # download and install binary_c + cd $BINARY_C/.. + git clone gitlab@gitlab.eps.surrey.ac.uk:ri0005/binary_c.git + cd binary_c + meson -Dbuildtype=release -Dvalgrind=true builddir + ninja -C builddir binary_c_install + ./binary_c-config version +} + +function run_test_population +{ + # run a test population + cd $BINARY_C + LD_PRELOAD=./src/libbinary_c.so ./src/perl/scripts2/template.pl +} + +function install_binary_c_perl_modules +{ + # install the binary_c Perl modules + cd $BINARY_C/src/perl/modules_targz + ./install_all.pl +} + +function install_perl +{ + # install perlbrew and binary_grid + cd $HOME + \curl -L https://install.perlbrew.pl | bash + + if ! grep -q 'perlbrew paths do not alter' ~/.bashrc + then + echo "# perlbrew paths do not alter" >> ~/.bashrc + echo "source ~/perl5/perlbrew/etc/bashrc" >> ~/.bashrc # only do this once! + fi + source ~/perl5/perlbrew/etc/bashrc 2>&1 || true + export NTHREADS=`cat /proc/cpuinfo |grep cpu\ famil|wc -l` + export CURRENT_PERL=`perl -e '$v=$^V;$v=~s/v//;print "perl-$v\n";'` + export LATEST_PERL=`perlbrew available | grep "^[[:space:]i]\+perl" | sed s/^i// | sed s/^[[:space:]]*// | sed s/[[:space:]]*\\$// | head -1` + echo "CURRENT_PERL = \"$CURRENT_PERL\"" + echo "LATEST_PERL = \"$LATEST_PERL\"" + + if [ "$CURRENT_PERL" == "$LATEST_PERL" ]; + then + echo "You already have the latest Perl" + else + NEWER_PERL=`echo -e "$CURRENT_PERL\n$LATEST_PERL" | sort -Vr | head -1` + if [ "$NEWER_PERL" == "$LATEST_PERL" ]; + then + echo "Installing $LATEST_PERL" + perlbrew -v install $LATEST_PERL --thread --multi --64bitall --notest -Dusethreads -Duselargefiles -Dcccdlflags=-fPIC -Dpager=/usr/bin/sensible-pager -Doptimize="-O3 -mtune=generic" -Duseshrplib -j $NTHREADS + # clean the build + echo "Cleaning perlbrew/build" + rm -rf $HOME/perl5/perlbrew/build 2>/dev/null + else + echo "No newer Perl has been found : sticking with $CURRENT_PERL" + fi + echo "Source perlbrew" + source ~/perl5/perlbrew/etc/bashrc 2>&1 || true + echo "Switch to use $LATEST_PERL" + perlbrew switch $LATEST_PERL + fi + + source ~/perl5/perlbrew/etc/bashrc 2>&1 || true + echo "Install cpanm" + perlbrew -f install-cpanm +} + +function update_packages +{ + # update and install a KDE desktop :) + #sudo apt-get install synaptic kubuntu-desktop + #balooctl disable + + # update system + sudo apt-get update + sudo apt-get upgrade + + # install required packages + sudo apt-get install bash zip gcc-10 libgcc-10-dev gdb valgrind gawk python3.9 pipenv kcachegrind meson ninja-build emacs perl libgsl-dev global libbsd-dev binutils-dev libiberty-dev libjemalloc-dev zlib1g-dev unzip wget curl git + sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.9 1 +# sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 2 2>/dev/null + echo "You should normally choose Python 3.9" + sudo update-alternatives --config python # >>> choose python3.9 <<< + sudo apt-get clean + pip install --upgrade meson + pip install --upgrade ninja +} + +function download_MINT_data +{ + # download MINT data + mkdir -p $HOME/data/MINT + cd $HOME/data/MINT + rm -f sync + wget http://personal.ph.surrey.ac.uk/~ri0005/MINT/sync + chmod +x sync + ./sync +} + +############################################################ + +# set up bash (always do this) +setup_bash + +# install/check system packages +echo "Do you wish to check and, if necessary, install system packages? (requires sudo permissions)" +select yn in "Yes" "No"; do + case $yn in + Yes ) update_packages; break;; + No ) break;; + esac +done + +# install perl from perlbrew +echo "Install perlbrew and custom Perl?" +select yn in "Yes" "No"; do + case $yn in + Yes ) install_perl; break;; + No ) break;; + esac +done + +# install librinterpolate +echo "Install librinterpolate?" +select yn in "Yes" "No"; do + case $yn in + Yes ) install_from_surrey_git librinterpolate; break;; + No ) break;; + esac +done + +# install libmemoize +echo "Install libmemoize?" +select yn in "Yes" "No"; do + case $yn in + Yes ) install_from_surrey_git libmemoize; break;; + No ) break;; + esac +done + +# install librchash +echo "Install librchash?" +select yn in "Yes" "No"; do + case $yn in + Yes ) install_from_surrey_git librchash; break;; + No ) break;; + esac +done + +# install binary_c +echo "Install binary_c from ... ?" +select s in "git (https)" "git (ssh, keys must be set up)" "git (zip, no version control)" "No"; + do case $s in + "git (https)" ) install_binary_c_from_git_https; break;; + "git (ssh, keys must be set up)" ) install_binary_c_from_git_ssh; break;; + "git (zip, no version control)" ) install_binary_c_from_zip; break;; + "No" ) break;; + esac +done + +# install binary_c's perl modules +echo "Install binary_c Perl modules?" +select yn in "Yes" "No"; do + case $yn in + Yes ) install_binary_c_perl_modules; break;; + No ) break;; + esac +done + +# install MINT data? +echo "Download MINT data?" +select yn in "Yes" "No"; do + case $yn in + Yes ) download_MINT_data; break;; + No ) break;; + esac +done + +# run test population +echo "Run a test stellar population to make sure everything works?" +select yn in "Yes" "No"; do + case $yn in + Yes ) run_test_population; break;; + No ) break;; + esac +done -- GitLab