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