Building on Ubuntu Virtual Machine: Difference between revisions

Jump to navigation Jump to search
m
Added descriptions.
m (Added descriptions.)
m (Added descriptions.)
Line 12: Line 12:
= Dependencies =
= Dependencies =
: 4. Install dependencies.
: 4. Install dependencies.
## In the Ubuntu system, open a terminal by pressing {{key press|Ctrl|Alt|t}}. Issue the following commands (tested only on Ubuntu 20.04):
In the Ubuntu system, open a terminal by pressing {{key press|Ctrl|Alt|t}}. Issue the following commands (tested only on Ubuntu 20.04):
     $sudo apt-get update
     $sudo apt-get update
     $sudo apt-get install build-essential mercurial gcc g++ gfortran make libblas-dev liblapack-dev epstool transfig libglpk-dev  libreadline-dev  llvm-dev  lpr texinfo pstoedit liboctave-dev libqhull-dev libqrupdate-dev libsuitesparse-dev texlive libxft-dev  autoconf automake bison flex gperf gzip icoutils libtool perl rsync tar libpcre3-dev libarpack2-dev libcurl4-openssl-dev libfftw3-dev libfltk1.3-dev libfontconfig1-dev libfreetype6-dev libgl2ps-dev gnuplot-x11 libgraphicsmagick++1-dev libhdf5-dev libsndfile1-dev libgl1-mesa-dev libosmesa6-dev portaudio19-dev zlib1g-dev libegl1-mesa-dev libgles2-mesa-dev libwayland-client0 libwayland-cursor0 libwayland-dev libwayland-egl1 libwayland-egl1-mesa libwayland-server0 libwayland-bin libwayland-client0 texlive-plain-generic librsvg2-bin openjdk-14-jdk openjdk-14-jre openjdk-14-jre-headless openjdk-14-jdk-headless qttools5-dev-tools qtbase5-dev qtbase5-dev-tools qttools5-dev libqscintilla2-qt5-dev libqt5sql5-sqlite libqt5webchannel5 libqt5webkit5 libqt5concurrent5 libqt5designer5 libqt5designercomponents5 libqt5help5 libqt5positioning5 libqt5quickwidgets5 libqt5sensors5 libqt5sql5 qt5-assistant qt5-qmake qt5-qmake-bin libqt5core5a libqt5network5 libqt5gui5 libqt5opengl5 libqt5opengl5-dev git rapidjson-dev libsundials-dev doxygen texlive-latex-extra graphviz
     $sudo apt-get install build-essential mercurial gcc g++ gfortran make libblas-dev liblapack-dev epstool transfig libglpk-dev  libreadline-dev  llvm-dev  lpr texinfo pstoedit liboctave-dev libqhull-dev libqrupdate-dev libsuitesparse-dev texlive libxft-dev  autoconf automake bison flex gperf gzip icoutils libtool perl rsync tar libpcre3-dev libarpack2-dev libcurl4-openssl-dev libfftw3-dev libfltk1.3-dev libfontconfig1-dev libfreetype6-dev libgl2ps-dev gnuplot-x11 libgraphicsmagick++1-dev libhdf5-dev libsndfile1-dev libgl1-mesa-dev libosmesa6-dev portaudio19-dev zlib1g-dev libegl1-mesa-dev libgles2-mesa-dev libwayland-client0 libwayland-cursor0 libwayland-dev libwayland-egl1 libwayland-egl1-mesa libwayland-server0 libwayland-bin libwayland-client0 texlive-plain-generic librsvg2-bin openjdk-14-jdk openjdk-14-jre openjdk-14-jre-headless openjdk-14-jdk-headless qttools5-dev-tools qtbase5-dev qtbase5-dev-tools qttools5-dev libqscintilla2-qt5-dev libqt5sql5-sqlite libqt5webchannel5 libqt5webkit5 libqt5concurrent5 libqt5designer5 libqt5designercomponents5 libqt5help5 libqt5positioning5 libqt5quickwidgets5 libqt5sensors5 libqt5sql5 qt5-assistant qt5-qmake qt5-qmake-bin libqt5core5a libqt5network5 libqt5gui5 libqt5opengl5 libqt5opengl5-dev git rapidjson-dev libsundials-dev doxygen texlive-latex-extra graphviz
: 5. Mercurial
: 5. Mercurial
From the page [[Mercurial]], follow the steps under the section 'Example Mercurial configuration'.
From the page [[Mercurial]], follow the steps under the section 'Example Mercurial configuration'.
= Build directory =
= Build Directory =
: 6. Setup build directory
: 6. Setup build directory
     $ mkdir -p /home/ubuntuuser/projects/octave_src
     $ mkdir -p /home/ubuntuuser/projects/octave_src
Line 33: Line 33:
= Debug =
= Debug =
: 9. Debugging
: 9. Debugging
Note: The option ‘--enable-address-sanitizer-flags’ breaks the build, so it can be removed.
Note: The option ‘--enable-address-sanitizer-flags’ breaks the build, so it was removed.
From [[Debugging Octave]]:
From [[Debugging Octave]]:
     $ cd /home/ubuntuuser/projects/octave_src/octave
     $ cd /home/ubuntuuser/projects/octave_src/octave
Line 46: Line 46:
Continue.
Continue.
     >> a = [1 2]
     >> a = [1 2]
In Octave, double click ‘a’. Now gdb should be at the breakpoint. Now backtrace 10 to show the calling information:
In Octave, double click on the variable ‘a’. Now gdb should be at the breakpoint. Now backtrace 10 to show the calling information:
     (gdb) backtrace 10
     (gdb) backtrace 10
Apply a breakpoint at the function variable_editor_model::create (which will be hit in another thread from the current one, so apply breakpoint for all threads).
Apply a breakpoint at the function variable_editor_model::create (which will be hit in another thread from the current one, so apply breakpoint for all threads).
     (gdb) thread apply all break variable-editor-model.cc:928
     (gdb) thread apply all break variable-editor-model.cc:928
= Save and Patch
= Save and Patch =
: 10. Save your work and send patch
: 10. Save your work and send patch
To save your changes to a single file:
To save your changes to a single file:
Line 56: Line 56:
     $ hg commit -m "Description about the changes you have made."
     $ hg commit -m "Description about the changes you have made."
     $ hg export --git > ../yourwork_date.diff
     $ hg export --git > ../yourwork_date.diff
If you have made multiple commits, export all the revisions:
If you have made multiple commits, export all the revisions that you have made:
     $ hg export --git -r 28648:28649 > ../yourwork_date.diff
     $ hg export --git -r 28648:28649 > ../yourwork_date.diff
To save your changes and send a patch ([https://octave.org/doc/v4.0.1/Basics-of-Generating-a-Changeset.html Basics of Generating a Changeset]):
To save your changes and send a patch ([https://octave.org/doc/v4.0.1/Basics-of-Generating-a-Changeset.html Basics of Generating a Changeset]):
13

edits

Navigation menu