xref: /freebsd/share/mk/host-target.mk (revision f9df609750876be2c054dfac953316f513ccffce)
17750ad47SMarcel Moolenaar# RCSid:
2*f9df6097SSimon J. Gerraty#	$Id: host-target.mk,v 1.19 2023/09/21 06:44:53 sjg Exp $
37750ad47SMarcel Moolenaar
47750ad47SMarcel Moolenaar# Host platform information; may be overridden
5*f9df6097SSimon J. Gerraty.if !target(__${.PARSEFILE}__)
6*f9df6097SSimon J. Gerraty__${.PARSEFILE}__: .NOTMAIN
7*f9df6097SSimon J. Gerraty
87750ad47SMarcel Moolenaar.if !defined(_HOST_OSNAME)
9*f9df6097SSimon J. Gerraty# use .MAKE.OS if available
10*f9df6097SSimon J. Gerraty_HOST_OSNAME := ${.MAKE.OS:U${uname -s:L:sh}}
117750ad47SMarcel Moolenaar.export _HOST_OSNAME
127750ad47SMarcel Moolenaar.endif
137750ad47SMarcel Moolenaar.if !defined(_HOST_OSREL)
147750ad47SMarcel Moolenaar_HOST_OSREL  !=	uname -r
157750ad47SMarcel Moolenaar.export _HOST_OSREL
167750ad47SMarcel Moolenaar.endif
177750ad47SMarcel Moolenaar.if !defined(_HOST_ARCH)
187750ad47SMarcel Moolenaar_HOST_ARCH != uname -p 2> /dev/null || uname -m
197750ad47SMarcel Moolenaar# uname -p may produce garbage on linux
20c34d27e4SBryan Drewery.if ${_HOST_ARCH:[\#]} > 1 || ${_HOST_ARCH:Nunknown} == ""
21*f9df6097SSimon J. Gerraty_HOST_ARCH = ${_HOST_MACHINE}
22*f9df6097SSimon J. Gerraty.elif ${_HOST_OSNAME:NDarwin} == "" && ${_HOST_ARCH:Narm:Ni386} == ""
23*f9df6097SSimon J. Gerraty# _HOST_MACHINE is more explicit/useful
24*f9df6097SSimon J. Gerraty_HOST_ARCH = ${_HOST_MACHINE}
257750ad47SMarcel Moolenaar.endif
267750ad47SMarcel Moolenaar.export _HOST_ARCH
277750ad47SMarcel Moolenaar.endif
28*f9df6097SSimon J. Gerraty.if !defined(_HOST_MACHINE)
29*f9df6097SSimon J. Gerraty_HOST_MACHINE != uname -m
30*f9df6097SSimon J. Gerraty# just in case
31*f9df6097SSimon J. Gerraty_HOST_ARCH := ${_HOST_ARCH}
32*f9df6097SSimon J. Gerraty# uname -m may produce garbage on darwin ppc
33*f9df6097SSimon J. Gerraty.if ${_HOST_MACHINE:[\#]} > 1
34*f9df6097SSimon J. Gerraty_HOST_MACHINE := ${_HOST_ARCH}
35*f9df6097SSimon J. Gerraty.endif
36*f9df6097SSimon J. Gerraty.export _HOST_MACHINE
37*f9df6097SSimon J. Gerraty.endif
38f7df4ea8SSimon J. Gerraty.if !defined(HOST_MACHINE)
39c34d27e4SBryan DreweryHOST_MACHINE := ${_HOST_MACHINE}
40f7df4ea8SSimon J. Gerraty.export HOST_MACHINE
41f7df4ea8SSimon J. Gerraty.endif
427750ad47SMarcel Moolenaar
437750ad47SMarcel MoolenaarHOST_OSMAJOR := ${_HOST_OSREL:C/[^0-9].*//}
44c34d27e4SBryan DreweryHOST_OSTYPE  :=	${_HOST_OSNAME:S,/,,g}-${_HOST_OSREL:C/\([^\)]*\)//}-${_HOST_ARCH}
457750ad47SMarcel MoolenaarHOST_OS      :=	${_HOST_OSNAME}
467750ad47SMarcel Moolenaarhost_os      :=	${_HOST_OSNAME:tl}
47c34d27e4SBryan DreweryHOST_TARGET  := ${host_os:S,/,,g}${HOST_OSMAJOR}-${_HOST_ARCH}
48*f9df6097SSimon J. Gerraty# sometimes we want HOST_TARGET32
49*f9df6097SSimon J. GerratyMACHINE32.amd64 = i386
50*f9df6097SSimon J. GerratyMACHINE32.x86_64 = i386
51*f9df6097SSimon J. Gerraty.if !defined(_HOST_ARCH32)
52*f9df6097SSimon J. Gerraty_HOST_ARCH32 := ${MACHINE32.${_HOST_ARCH}:U${_HOST_ARCH:S,64$,,}}
53*f9df6097SSimon J. Gerraty.export _HOST_ARCH32
54*f9df6097SSimon J. Gerraty.endif
55*f9df6097SSimon J. GerratyHOST_TARGET32 := ${host_os:S,/,,g}${HOST_OSMAJOR}-${_HOST_ARCH32}
56*f9df6097SSimon J. Gerraty
57*f9df6097SSimon J. Gerraty.export HOST_TARGET HOST_TARGET32
587750ad47SMarcel Moolenaar
597750ad47SMarcel Moolenaar# tr is insanely non-portable, accommodate the lowest common denominator
607750ad47SMarcel MoolenaarTR ?= tr
617750ad47SMarcel MoolenaartoLower = ${TR} 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'
627750ad47SMarcel MoolenaartoUpper = ${TR} 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
63*f9df6097SSimon J. Gerraty
64*f9df6097SSimon J. Gerraty.endif
65