xref: /dflybsd-src/contrib/bmake/mk/host-target.mk (revision 9e7ae5a0527a977cab412aede3a532cfe2903bbb)
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