aboutsummaryrefslogtreecommitdiff
path: root/Mk/bsd.port.mk
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2018-06-20 17:42:35 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2018-06-20 17:42:35 +0000
commitf4712360a86dbc5958647f53a2f8e38d4a35e253 (patch)
treedfaf2867319736e1130ed42d07de79ca309a227a /Mk/bsd.port.mk
parentb8554cda73debc0274cef6c137d9ae95037df972 (diff)
downloadports-f4712360a86dbc5958647f53a2f8e38d4a35e253.tar.gz
ports-f4712360a86dbc5958647f53a2f8e38d4a35e253.zip
Set OS versions to target system versions for CROSS_SYSROOT.
When cross-building a package via a CROSS_SYSROOT, set OSVERSION, _OSRELEASE, and OSREL to the target OS version. OSVERSION is derived from the <sys/param.h> header in the sysroot. _OSRELEASE cannot be easily derived from a sysroot as it is a property of a kernel, so instead generate a "fake" _OSRELEASE from the OSVERSION, but use a "-CROSS" branch name that will hopefully fail in any places that make assumptions about branch names. Approved by: portmgr (bapt) Differential Revision: https://reviews.freebsd.org/D15812
Notes
Notes: svn path=/head/; revision=472890
Diffstat (limited to 'Mk/bsd.port.mk')
-rw-r--r--Mk/bsd.port.mk9
1 files changed, 9 insertions, 0 deletions
diff --git a/Mk/bsd.port.mk b/Mk/bsd.port.mk
index 6121c91e3210..1c416d8a1521 100644
--- a/Mk/bsd.port.mk
+++ b/Mk/bsd.port.mk
@@ -1148,6 +1148,15 @@ ARCH= ${CROSS_TOOLCHAIN:C,-.*$,,}
.endif
_EXPORTED_VARS+= ARCH
+# Get operating system versions for a cross build
+.if defined(CROSS_SYSROOT)
+.if !exists(${CROSS_SYSROOT}/usr/include/sys/param.h)
+.error CROSS_SYSROOT does not include /usr/include/sys/param.h.
+.endif
+OSVERSION!= ${AWK} '/^\#define[[:blank:]]__FreeBSD_version/ {print $$3}' < ${CROSS_SYSROOT}/usr/include/sys/param.h
+_OSRELEASE!= ${AWK} -v version=${OSVERSION} 'END { printf("%d.%d-CROSS", version / 100000, version / 1000 % 100) }' < /dev/null
+.endif
+
# Get the operating system type
.if !defined(OPSYS)
OPSYS!= ${UNAME} -s