The following packages should be installed before GNU libiconv is installed
(runtime dependencies that are also build dependencies):

None.


The following packages should be installed when GNU libiconv is installed
(runtime dependencies, but not build dependencies):

None.


The following should be installed when GNU libiconv is built, but are not
needed later, once it is installed (build dependencies, but not runtime
dependencies):

* A C runtime, compiler, linker, etc.
  + Mandatory.
    Either the platform's native 'cc', or GCC 3.1 or newer.
  + GCC Homepage:
    https://gcc.gnu.org/
  + Download:
    https://ftp.gnu.org/gnu/gcc/

* A 'make' utility.
  + Mandatory.
    Either the platform's native 'make' (for in-tree builds only),
    or GNU Make 3.79.1 or newer.
  + GNU Make Homepage:
    https://www.gnu.org/software/make/
  + Download:
    https://ftp.gnu.org/gnu/make/

* A shell
  + Mandatory.
    Either the platform's native 'sh', or Bash.
  + Homepage:
    https://www.gnu.org/software/bash/
  + Download:
    https://ftp.gnu.org/gnu/bash/

* Core POSIX utilities, including:
    [ basename cat chgrp chmod chown cp dd echo expand expr
    false hostname install kill ln ls md5sum mkdir mkfifo
    mknod mv printenv pwd rm rmdir sleep sort tee test touch
    true uname
  + Mandatory.
    Either the platform's native utilities, or GNU coreutils.
  + Homepage:
    https://www.gnu.org/software/coreutils/
  + Download:
    https://ftp.gnu.org/gnu/coreutils/

* The comparison utilities 'cmp' and 'diff'.
  + Mandatory.
    Either the platform's native utilities, or GNU diffutils.
  + Homepage:
    https://www.gnu.org/software/diffutils/
  + Download:
    https://ftp.gnu.org/gnu/diffutils/

* Grep.
  + Mandatory.
    Either the platform's native grep, or GNU grep.
  + Homepage:
    https://www.gnu.org/software/grep/
  + Download:
    https://ftp.gnu.org/gnu/grep/

* Awk.
  + Mandatory.
    Either the platform's native awk, mawk, or nawk, or GNU awk.
  + Homepage:
    https://www.gnu.org/software/gawk/
  + Download:
    https://ftp.gnu.org/gnu/gawk/
