summaryrefslogtreecommitdiff
path: root/mk
diff options
context:
space:
mode:
authorrillig <rillig@pkgsrc.org>2020-06-02 06:58:13 +0000
committerrillig <rillig@pkgsrc.org>2020-06-02 06:58:13 +0000
commit492dbe015badb822d9cf080cfef57bc2fe36f9c5 (patch)
tree9f0b9ba6563e6144c355640a9cdf7f71d773b6c4 /mk
parente567a8c41a3140818b991e7c86ab0c13aef8b440 (diff)
downloadpkgsrc-492dbe015badb822d9cf080cfef57bc2fe36f9c5.tar.gz
mk/compiler.mk: check for too late GCC_REQD and USE_LANGUAGES
For USE_LANGUAGES there is already a pkglint warning, but for GCC_REQD it is missing. It's better to have this check directly in the infrastructure since it is more reliable. This check is disabled by default, to not cause any new breakage. It should be enabled in bulk builds.
Diffstat (limited to 'mk')
-rw-r--r--mk/compiler.mk18
-rw-r--r--mk/compiler/gcc.mk5
2 files changed, 21 insertions, 2 deletions
diff --git a/mk/compiler.mk b/mk/compiler.mk
index 44f1d6ec1d2..dbd9cd32fa0 100644
--- a/mk/compiler.mk
+++ b/mk/compiler.mk
@@ -1,4 +1,4 @@
-# $NetBSD: compiler.mk,v 1.94 2019/07/23 13:57:04 gdt Exp $
+# $NetBSD: compiler.mk,v 1.95 2020/06/02 06:58:13 rillig Exp $
#
# This Makefile fragment implements handling for supported C/C++/Fortran
# compilers.
@@ -37,6 +37,10 @@
# If set to yes, use symlinks for the compiler drivers, otherwise
# shell scripts are created. The default is yes.
#
+# CHECK_COMPILER
+# If set to yes, fail early if the compiler.mk variables are not
+# set correctly.
+#
# The following variables may be set by a package:
#
# USE_LANGUAGES
@@ -90,6 +94,9 @@ USE_LANGUAGES+= c++
. endif
.endfor
+#.READONLY: USE_LANGUAGES
+_USE_LANGUAGES_EFFECTIVE:= ${USE_LANGUAGES}
+
COMPILER_USE_SYMLINKS?= yes
_COMPILERS= ccc clang gcc hp icc ido \
@@ -265,3 +272,12 @@ ALL_ENV+= CCVER=${DRAGONFLY_CCVER}
.endif
.endif # BSD_COMPILER_MK
+
+.if ${CHECK_COMPILER:Uno:tl} == yes
+. if ${USE_LANGUAGES:O:u} != ${_USE_LANGUAGES_EFFECTIVE:O:u}
+.warning For ${PKGPATH}, only languages "${_USE_LANGUAGES_EFFECTIVE}" are used, the others in "${USE_LANGUAGES}" were defined too late.
+. endif
+. if ${GCC_REQD:U:O:u} != ${_GCC_REQD_EFFECTIVE:U:O:u}
+.warning For ${PKGPATH}, only GCC_REQD "${_GCC_REQD_EFFECTIVE}" are used, the others in "${GCC_REQD}" were defined too late.
+. endif
+.endif
diff --git a/mk/compiler/gcc.mk b/mk/compiler/gcc.mk
index 5fb9b69afca..ed5a4c01d96 100644
--- a/mk/compiler/gcc.mk
+++ b/mk/compiler/gcc.mk
@@ -1,4 +1,4 @@
-# $NetBSD: gcc.mk,v 1.212 2020/05/31 00:00:13 sjmulder Exp $
+# $NetBSD: gcc.mk,v 1.213 2020/06/02 06:58:13 rillig Exp $
#
# This is the compiler definition for the GNU Compiler Collection.
#
@@ -1070,4 +1070,7 @@ COMPILER_INCLUDE_DIRS= ${_GCCBINDIR:H}/include ${_OPSYS_INCLUDE_DIRS}
COMPILER_LIB_DIRS= ${_GCCBINDIR:H}/lib ${_OPSYS_LIB_DIRS}
.endif
+#.READONLY: GCC_REQD
+_GCC_REQD_EFFECTIVE:= ${GCC_REQD}
+
.endif # COMPILER_GCC_MK