GNAT is a free, high-quality, complete compiler for Ada, integrated into the
GCC compiler system; the front-end and run-time are written in Ada. GNAT
supports Ada ISO Standards from 1985 to 2022.
Ada was designed for embedded and real-time systems, its features include:
* Strong static typing
* Modular programming (via the package)
* Encapsulation
* Readability
* Optional run-time checking
* Concurrency (via tasks and protected objects), and message passing, as
constructs in the language itself
* Generics
Ada is designed for "Programming in the large", it suits rapid development, and
directly supports structured, object-oriented, generic, distributed and
concurrent programming paradigms. Ada is considered a Design Programming
Language, as a result of the expressive abstractions and features that informed
it's design, and provided to the user. Its expressiveness allows users to
clearly represent design solutions modeled on their problem domain, in
accessible language.
===> The following configuration options are available for gnat14-14.2.0_1:
ASSETS=off: Build an asset for future bootstrap on the target platform
NLS=on: Native Language Support
====> Options available for the radio BOOTSTRAP: you can only select none or one of them
GNAT13=off: Bootstrap from lang/gnat13
PREVASSET=on: Bootstrap from the previous asset (if available)
===> Use 'make config' to modify these settings
lang/gnat14: libgomp support; sync with GNAT-15
The GNAT-15 addition to the Ports Tree included some improvements to how
the pkg-plist is maintained, updated the pkg-descr, expanded the
pkg-message, and more. Sync GNAT-14 with those modifications.
* Add xz:threads option to ${TAR} to make use of multi-threaded
compression
* Add GNU OpenMP libraries. This is required for GNATColl Bindings
* Add GNAT and GNAT_SO_VERSION to ${PLIST_SUB} to remove hard-coded
version dependent information.
* Complete ${LICENSE} block
* Expand pkg-message and make UCL compliant
* Modernise and update ${COMMENT}, ${WWW} and pkg-descr
* Delegate maintainership to ada@
PR: 296512
lang/gnat1?: gettext is always required
Ignore the portlint warning and always depends on gettext.
(See PR 277508)
PR: 295966
Reported by: Robert William Vesterman
lang/gnat1[2-4]: Restore check-phase
lang/gnat12,13, and 14:
* After PR 294657, restore the testing target check-phase, move the if
conditional on ${UID} != 0 below the GNAT Ports' internal _ marked
variables, and drop bsd.port.options.mk, and terminate the Port with
bsd.port.post.mk over bsd.port.mk
* Add fix for rpath (PR 292708)
* Move ${PIE_UNSAFE} to the correct block (portclippy)
* Move gettext-runtime from ${USES} to ${NLS_USES}
* Regroup internal variables and sort
* Remove ${EXTRACT_CMD} from aarch64 specific section syncing with the update
to the Ports Mk infrastructure (D57295) which by default now uses
LC_ALL=en_US.UTF-8 in the environment
* Sort ${GNU_CONFIGURE_PREFIX}
* Specific to GNAT-12, follow GNAT-13 and 14's use of ${MASTER_SITE_GCC}
in ${MASTER_SITES}; sort the architecture specific ${PLIST_SUB} entries
PR: 295872
Co-authored-by: Marcin Cieślak <saper@saper.info>
Reported by: Sulev-Madis Silber
lang/gnat1?: fix build with GNU strip
After D55509 $STRIP_CMD has been set to GNU strip for these ports, and in some
cases this breaks, because GNU strip will refuse to strip non-writable files,
while LLVM strip is happy to (attempt to) strip them.
PR: 294657
Reported by: kib@FreeBSD.org
Reviewed by: kib@FreeBSD.org
Phabricator: D55509
MFC after: 8 days