summaryrefslogtreecommitdiff
path: root/lib/spack/docs/build_systems/octavepackage.rst
blob: 8bf0ee010af201925ca8b7152caba4f647bb9395 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
.. Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
   Spack Project Developers. See the top-level COPYRIGHT file for details.

   SPDX-License-Identifier: (Apache-2.0 OR MIT)

.. _octavepackage:

------
Octave
------

Octave has its own build system for installing packages.

^^^^^^
Phases
^^^^^^

The ``OctaveBuilder`` and ``OctavePackage`` base classes have a single phase:

#. ``install`` - install the package

By default, this phase runs the following command:

.. code-block:: console

   $ octave '--eval' 'pkg prefix <prefix>; pkg install <archive_file>'


Beware that uninstallation is not implemented at the moment. After uninstalling
a package via Spack, you also need to manually uninstall it from Octave via
``pkg uninstall <package_name>``.

^^^^^^^^^^^^^^^^^^^^^^^
Finding Octave packages
^^^^^^^^^^^^^^^^^^^^^^^

Most Octave packages are listed at https://octave.sourceforge.io/packages.php.

^^^^^^^^^^^^
Dependencies
^^^^^^^^^^^^

Usually, the homepage of a package will list dependencies, i.e.
``Dependencies:	Octave >= 3.6.0 struct >= 1.0.12``. The same information should
be available in the ``DESCRIPTION`` file in the root of each archive.

^^^^^^^^^^^^^^^^^^^^^^
External Documentation
^^^^^^^^^^^^^^^^^^^^^^

For more information on the Octave build system, see:
https://octave.org/doc/v4.4.0/Installing-and-Removing-Packages.html