.. _spkg_gfortran:

gfortran: Fortran compiler from the GNU Compiler Collection
===========================================================

Description
-----------

This package represents the required Fortran compiler.

Officially we support ``gfortran`` from `GNU Compiler Collection (GCC)
<https://gcc.gnu.org/>`_.  It has also been reported that using ``flang``
(from LLVM) might work.

You can pass the names of compilers to use to ``./configure`` using
the environment variables :envvar:`CC`, :envvar:`CXX`, and
:envvar:`FC`, for C, C++, and Fortran compilers, respectively.

For example, if your C compiler is ``clang``, your C++ compiler is
``clang++``, and your Fortran compiler is ``flang``, then you would
need to run::

    $ ./configure CC=clang CXX=clang++ FC=flang

License
-------

GPL version 2 or version 3


Upstream Contact
----------------

http://gcc.gnu.org/

Special Update/Build Instructions
---------------------------------

None.


Type
----

standard


Dependencies
------------

- $(MP_LIBRARY)
- :ref:`spkg_flex`
- :ref:`spkg_mpc`
- :ref:`spkg_mpfr`
- :ref:`spkg_xz`
- :ref:`spkg_zlib`

Version Information
-------------------

package-version.txt::

    14.2.0

See https://repology.org/project/gfortran/versions

Installation commands
---------------------

.. tab:: Sage distribution:

   .. CODE-BLOCK:: bash

       $ sage -i gfortran

.. tab:: Alpine:

   .. CODE-BLOCK:: bash

       $ apk add gfortran

.. tab:: Arch Linux:

   .. CODE-BLOCK:: bash

       $ sudo pacman -S gcc-fortran

.. tab:: conda-forge:

   .. CODE-BLOCK:: bash

       $ conda install fortran-compiler

.. tab:: Debian/Ubuntu:

   .. CODE-BLOCK:: bash

       $ sudo apt-get install gfortran

.. tab:: Fedora/Redhat/CentOS:

   .. CODE-BLOCK:: bash

       $ sudo dnf install gcc-gfortran

.. tab:: FreeBSD:

   .. CODE-BLOCK:: bash

       $ sudo pkg install lang/gcc9

.. tab:: Homebrew:

   .. CODE-BLOCK:: bash

       $ brew install gfortran

.. tab:: MacPorts:

   .. CODE-BLOCK:: bash

       $ sudo port install gcc10 +gfortran

.. tab:: Nixpkgs:

   .. CODE-BLOCK:: bash

       $ nix-env -f \'\<nixpkgs\>\' --install --attr gfortran

.. tab:: openSUSE:

   .. CODE-BLOCK:: bash

       $ sudo zypper install gcc-fortran

.. tab:: Slackware:

   .. CODE-BLOCK:: bash

       $ sudo slackpkg install gcc-gfortran

.. tab:: Void Linux:

   .. CODE-BLOCK:: bash

       $ sudo xbps-install gcc-fortran


If the system package is installed, ``./configure`` will check if it can be used.
