15f1e34d9SAlexandre Perrin# RCSid: 2*6eef5f0cSAntonio Huete Jimenez# $Id: host-target.mk,v 1.14 2022/02/04 18:05:22 sjg Exp $ 35f1e34d9SAlexandre Perrin 45f1e34d9SAlexandre Perrin# Host platform information; may be overridden 55f1e34d9SAlexandre Perrin.if !defined(_HOST_OSNAME) 6*6eef5f0cSAntonio Huete Jimenez# use .MAKE.OS if available 7*6eef5f0cSAntonio Huete Jimenez_HOST_OSNAME := ${.MAKE.OS:U${uname -s:L:sh}} 85f1e34d9SAlexandre Perrin.export _HOST_OSNAME 95f1e34d9SAlexandre Perrin.endif 105f1e34d9SAlexandre Perrin.if !defined(_HOST_OSREL) 115f1e34d9SAlexandre Perrin_HOST_OSREL != uname -r 125f1e34d9SAlexandre Perrin.export _HOST_OSREL 135f1e34d9SAlexandre Perrin.endif 14f445c897SJohn Marino.if !defined(_HOST_MACHINE) 15f445c897SJohn Marino_HOST_MACHINE != uname -m 16f445c897SJohn Marino.export _HOST_MACHINE 17f445c897SJohn Marino.endif 185f1e34d9SAlexandre Perrin.if !defined(_HOST_ARCH) 19*6eef5f0cSAntonio Huete Jimenez# for Darwin and NetBSD prefer $MACHINE (amd64 rather than x86_64) 20a34d5fb1SAntonio Huete Jimenez.if ${_HOST_OSNAME:NDarwin:NNetBSD} == "" 21f445c897SJohn Marino_HOST_ARCH := ${_HOST_MACHINE} 22f445c897SJohn Marino.else 235f1e34d9SAlexandre Perrin_HOST_ARCH != uname -p 2> /dev/null || uname -m 245f1e34d9SAlexandre Perrin# uname -p may produce garbage on linux 25f445c897SJohn Marino.if ${_HOST_ARCH:[\#]} > 1 || ${_HOST_ARCH:Nunknown} == "" 26f445c897SJohn Marino_HOST_ARCH := ${_HOST_MACHINE} 27f445c897SJohn Marino.endif 285f1e34d9SAlexandre Perrin.endif 295f1e34d9SAlexandre Perrin.export _HOST_ARCH 305f1e34d9SAlexandre Perrin.endif 316a91b982SJohn Marino.if !defined(HOST_MACHINE) 32f445c897SJohn MarinoHOST_MACHINE := ${_HOST_MACHINE} 336a91b982SJohn Marino.export HOST_MACHINE 346a91b982SJohn Marino.endif 355f1e34d9SAlexandre Perrin 365f1e34d9SAlexandre PerrinHOST_OSMAJOR := ${_HOST_OSREL:C/[^0-9].*//} 37f445c897SJohn MarinoHOST_OSTYPE := ${_HOST_OSNAME:S,/,,g}-${_HOST_OSREL:C/\([^\)]*\)//}-${_HOST_ARCH} 385f1e34d9SAlexandre PerrinHOST_OS := ${_HOST_OSNAME} 395f1e34d9SAlexandre Perrinhost_os := ${_HOST_OSNAME:tl} 40f445c897SJohn MarinoHOST_TARGET := ${host_os:S,/,,g}${HOST_OSMAJOR}-${_HOST_ARCH} 41ca58f742SDaniel Fojt# sometimes we want HOST_TARGET32 42ca58f742SDaniel FojtMACHINE32.amd64 = i386 43ca58f742SDaniel FojtMACHINE32.x86_64 = i386 44ca58f742SDaniel Fojt_HOST_ARCH32 := ${MACHINE32.${_HOST_ARCH}:U${_HOST_ARCH:S,64$,,}} 45ca58f742SDaniel FojtHOST_TARGET32 := ${host_os:S,/,,g}${HOST_OSMAJOR}-${_HOST_ARCH32} 465f1e34d9SAlexandre Perrin 475f1e34d9SAlexandre Perrin# tr is insanely non-portable, accommodate the lowest common denominator 485f1e34d9SAlexandre PerrinTR ?= tr 495f1e34d9SAlexandre PerrintoLower = ${TR} 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' 505f1e34d9SAlexandre PerrintoUpper = ${TR} 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 51