diff options
Diffstat (limited to 'mk/emulator/emulator-vars.mk')
-rw-r--r-- | mk/emulator/emulator-vars.mk | 156 |
1 files changed, 156 insertions, 0 deletions
diff --git a/mk/emulator/emulator-vars.mk b/mk/emulator/emulator-vars.mk new file mode 100644 index 00000000000..d5e89989c20 --- /dev/null +++ b/mk/emulator/emulator-vars.mk @@ -0,0 +1,156 @@ +# $NetBSD: emulator-vars.mk,v 1.1 2007/07/29 05:19:42 jlam Exp $ +# +# This file is included by bsd.prefs.mk only if EMUL_PLATORMS is defined +# and non-empty. +# +# User-settable variables: +# +# EMUL_TYPE.${EMUL_OPSYS} +# Specifies the "type" or "variant" of ${EMUL_OPSYS} to use, e.g. +# ${EMUL_TYPE.linux} == "suse". +# +# EMUL_PLATFORM +# Specifies the platform to emulate, and is of the form +# ${EMUL_OPSYS}-${EMUL_ARCH}, e.g. linux-i386. By default +# this is the best-matching platform listed in EMUL_PLATFORMS +# chosen based on EMUL_PREFER. +# +# EMUL_PREFER +# The list of platforms to try to emulate in order of preference. +# By default, only try to emulate the native platform. See the +# _EMUL_PREFER.* table below for additional preferences for various +# platforms. +# +# Package-settable variables: +# +# EMUL_PLATFORMS +# List of "${EMUL_OPSYS}-${EMUL_ARCH}" binary emulations supported +# by the package. This should be set prior to the inclusion of +# bsd.prefs.mk. +# +# Default value: undefined +# +# Variables defined by this file: +# +# EMUL_ARCH +# The machine architecture being emulated, e.g. i386. If the +# package isn't supported on this machine, then its value is +# "none". +# +# EMUL_OPSYS +# The operating system being emulated, e.g. linux. If the +# package isn't supported on this machine, then its value is +# "none". +# +# EMUL_DISTRO +# The distribution of the emulated operating system being used, +# e.g. native-linux, suse-10.0, etc. If the package isn't +# supported on this machine, then its value is "none". +# +# EMULDIR +# Convenience variable that expands to ${PREFIX}/${EMULSUBDIR} +# +# EMULSUBDIR +# Path relative to ${PREFIX} where the files and directories +# are located, e.g. emul/linux. +# +# OPSYS_EMULDIR +# Path through which the platform expects to find a "chroot" +# installation of the files and directories, e.g. /emul/linux. +# + +# _EMUL_OPSYS +# A table that maps ${OPSYS} to the operating system names +# (${EMUL_OPSYS}) used by the emulator framework. +# +# _EMUL_MACHINE_PLATFORM +# An "opsys-arch" pair that describes the "native" platform. +# +# _EMUL_OPSYSES +# A list of supported binary emulations. +# +# _EMUL_PREFER.* +# A table that maps ${_EMUL_MACHINE_PLATFORM} to a list of +# platforms to try to emulate on the native platform, excluding +# itself. +# +_EMUL_OPSYSES+= bsdi +_EMUL_OPSYS.HPUX= hpux +_EMUL_OPSYS.IRIX= irix +_EMUL_OPSYS.OSF1= osf1 +.if !empty(OS_VERSION:M4.*) +_EMUL_OPSYS.SunOS= sunos +.else +_EMUL_OPSYS.SunOS= solaris +.endif +.if defined(_EMUL_OPSYS.${OPSYS}) +_EMUL_OPSYS= ${_EMUL_OPSYS.${OPSYS}} +.else +_EMUL_OPSYS= ${LOWER_OPSYS} +.endif + +_EMUL_MACHINE_PLATFORM= ${_EMUL_OPSYS}-${MACHINE_ARCH} + +_EMUL_OPSYSES+= darwin +_EMUL_OPSYSES+= freebsd +_EMUL_OPSYSES+= hpux +_EMUL_OPSYSES+= irix +_EMUL_OPSYSES+= linux +_EMUL_OPSYSES+= netbsd +_EMUL_OPSYSES+= osf1 +_EMUL_OPSYSES+= sunos +_EMUL_OPSYSES+= solaris + +_EMUL_PREFER.netbsd-alpha= osf1-alpha linux-alpha +_EMUL_PREFER.netbsd-arm= linux-arm +_EMUL_PREFER.netbsd-i386= linux-i386 freebsd-i386 solaris-i386 +_EMUL_PREFER.netbsd-m68k= sunos-m68k linux-m68k +_EMUL_PREFER.netbsd-powerpc= linux-powerpc +_EMUL_PREFER.netbsd-sparc64= solaris-sparc64 solaris-sparc sunos-sparc +.if !empty(MACHINE_PLATFORM:MNetBSD-1.*-sparc*) +_EMUL_PREFER.netbsd-sparc= sunos-sparc +.else +_EMUL_PREFER.netbsd-sparc= solaris-sparc sunos-sparc +.endif +_EMUL_PREFER.netbsd-x86_64= linux-x86_64 linux-i386 + +_EMUL_PREFER.solaris-sparc64= solaris-sparc +_EMUL_PREFER.solaris-x86_64= solaris-i386 + +_EMUL_PREFER.linux-sparc64= linux-sparc +_EMUL_PREFER.linux-x86_64= linux-i386 + +# Prefer "emulating" the native operating system, then fall back to +# the other preferences listed above. +# +EMUL_PREFER?= ${_EMUL_MACHINE_PLATFORM} \ + ${_EMUL_PREFER.${_EMUL_MACHINE_PLATFORM}} + +.for _platform_ in ${EMUL_PREFER} +. if !empty(EMUL_PLATFORMS:M${_platform_}) +EMUL_PLATFORM?= ${_platform_} +. endif +.endfor +EMUL_PLATFORM?= none + +# _EMUL_RUN_LDCONFIG +# This is YesNo variable that is modified by makefiles in the +# emulator framework. This is used as the default value of +# RUN_LDCONFIG by any package that uses the emulator framework. +# +# Default value: no +# +_EMUL_RUN_LDCONFIG= no + +.if ${EMUL_PLATFORM} == "none" +EMUL_ARCH?= none +EMUL_OPSYS?= none +EMUL_DISTRO?= none +EMULSUBDIR?= # empty +EMULDIR?= ${PREFIX} +OPSYS_EMULDIR?= # empty +.else +EMUL_ARCH?= ${EMUL_PLATFORM:C/.*-//} +EMUL_OPSYS?= ${EMUL_PLATFORM:C/-.*//} +. include "../../mk/emulator/${EMUL_OPSYS}.mk" +.endif |