aboutsummaryrefslogtreecommitdiff
path: root/Mk/Uses/ada.mk
diff options
context:
space:
mode:
Diffstat (limited to 'Mk/Uses/ada.mk')
-rw-r--r--Mk/Uses/ada.mk48
1 files changed, 39 insertions, 9 deletions
diff --git a/Mk/Uses/ada.mk b/Mk/Uses/ada.mk
index e695e3c64a2f..98badb9f81f7 100644
--- a/Mk/Uses/ada.mk
+++ b/Mk/Uses/ada.mk
@@ -2,27 +2,57 @@
# To change default compiler, define ADA_DEFAULT in make.conf
#
# Feature: ada
-# Usage: USES=ada
-# Valid ARGS: run
+# Usage: USES=ada:ARGS
+# Valid ARGS: [<version>],[run]
+#
+# version The chooseable versions are 6 (default), 12 or 13
+#
+# run Add run depends
#
# MAINTAINER: ports@FreeBSD.org
.if !defined(_INCLUDE_USES_ADA_MK)
_INCLUDE_USES_ADA_MK= yes
-DEPRECATED= Depends on expired lang/gcc6-aux
-EXPIRATION_DATE=2022-06-30
+_ADA_SUPPORTED= 6 12 13
+
+_ada_version= #
+. for _ver in ${_ADA_SUPPORTED:O:u}
+. if ${ada_ARGS:M${_ver}}
+. if empty(_ada_version)
+_ada_version= ${_ver}
+. else
+IGNORE= Incorrect USES=ada:${ada_ARGS} - multiple versions defined
+. endif
+. endif
+. endfor
-CC= ada
+. if empty(_ada_version)
+_ada_version= 12 # default
+. endif
+
+. if ${_ada_version} == 6
+_ADAPATH= ${LOCALBASE}/gcc6-aux/bin
+_ADAPORT= lang/gcc6-aux
+_BINDEP= ${_ADAPATH}/ada
+CC= ada
+. else
+_ADAPATH= ${LOCALBASE}/gnat${_ada_version}/bin
+_ADAPORT= lang/gnat${_ada_version}
+_BINDEP= ${_ADAPATH}/gnat
+GNATMAKE= gnatmake -f -u
+CC= gcc
+BINARY_ALIAS+= ada=${_ADAPATH}/gcc
+. endif
. if ${ada_ARGS:Mrun}
-RUN_DEPENDS+= ${LOCALBASE}/gcc6-aux/bin/ada:lang/gcc6-aux
+RUN_DEPENDS+= ${_BINDEP}:${_ADAPORT}
. endif
-BUILD_DEPENDS+= ${LOCALBASE}/gcc6-aux/bin/ada:lang/gcc6-aux
-MAKE_ENV+= PATH=${LOCALBASE}/gcc6-aux/bin:${PATH} \
+BUILD_DEPENDS+= ${_BINDEP}:${_ADAPORT}
+MAKE_ENV+= PATH=${_ADAPATH}:${PATH} \
ADA_PROJECT_PATH=${LOCALBASE}/lib/gnat
-CONFIGURE_ENV+= PATH=${LOCALBASE}/gcc6-aux/bin:${PATH} \
+CONFIGURE_ENV+= PATH=${_ADAPATH}:${PATH} \
ADA_PROJECT_PATH=${LOCALBASE}/lib/gnat
.endif