summaryrefslogtreecommitdiff
path: root/mk/emulator/emulator-vars.mk
blob: 1455ac56edfcb9bf350aafa9347746ee8217a5ea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
# $NetBSD: emulator-vars.mk,v 1.4 2007/08/03 23:16:02 ghen 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_PREFER.*
#	A table that maps ${_EMUL_MACHINE_PLATFORM} to a list of
#	platforms to try to emulate on the native platform, excluding
#	itself.
#
_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_PREFER.netbsd-alpha=	osf1-alpha linux-alpha
_EMUL_PREFER.netbsd-arm=	linux-arm
_EMUL_PREFER.netbsd-i386=	linux-i386 freebsd-i386 solaris-i386 darwin-i386
_EMUL_PREFER.netbsd-m68k=	sunos-m68k linux-m68k
_EMUL_PREFER.netbsd-powerpc=	linux-powerpc darwin-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.dragonfly-i386=	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