summaryrefslogtreecommitdiff
path: root/mk/tools/imake.mk
blob: 39c8af1c473fe15930f45c51eb23911985bcabbb (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
# $NetBSD: imake.mk,v 1.19 2007/09/10 06:36:25 rillig Exp $
#
# Copyright (c) 2005 The NetBSD Foundation, Inc.
# All rights reserved.
#
# This code is derived from software contributed to The NetBSD Foundation
# by Johnny C. Lam.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
#    notice, this list of conditions and the following disclaimer in the
#    documentation and/or other materials provided with the distribution.
# 3. All advertising materials mentioning features or use of this software
#    must display the following acknowledgement:
#        This product includes software developed by the NetBSD
#        Foundation, Inc. and its contributors.
# 4. Neither the name of The NetBSD Foundation nor the names of its
#    contributors may be used to endorse or promote products derived
#    from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#

#
# This Makefile fragment defines additional variables that are used
# by packages that need imake and xmkmf.
#
# Variables defined by this file are:
#
#	XMKMF, TOOLS_XMKMF
#		command to create all Makefiles from Imakefiles,
#		usually "xmkmf -a".
#
# Optional variables that may be defined by the package are:
#
#	IMAKEOPTS	Options to pass to imake
#	XMKMF_FLAGS	Options to pass to xmkmf
#
# A platform/${OPSYS}.mk file may note that additional tools are
# required when using imake by setting IMAKE_TOOLS to the appropriate
# value, e.g. IMAKE_TOOLS+=gmake to use GNU make to build packages
# that use imake.
#
# This file needs to be included before replace.mk as it modifies the
# USE_TOOLS variables that are used by replace.mk.
#

# These variables do not belong only to this file, but this seemed the
# best place for this paragraph.
_VARGROUPS+=		imake
_USER_VARS.imake=	# none
_PKG_VARS.imake=	IMAKEOPTS XMKMF_FLAGS USE_IMAKE
_SYS_VARS.imake=	IMAKE_TOOLS IMAKE IMAKE_MANINSTALL ${_PSU_VARS.imake}
_PSU_VARS.imake=	IMAKE_MAN_SOURCE_PATH IMAKE_MAN_DIR IMAKE_LIBMAN_DIR \
	IMAKE_KERNMAN_DIR IMAKE_FILEMAN_DIR IMAKE_GAMEMAN_DIR \
	IMAKE_MISCMAN_DIR IMAKE_MAN_SUFFIX IMAKE_LIBMAN_SUFFIX \
	IMAKE_KERNMAN_SUFFIX IMAKE_FILEMAN_SUFFIX IMAKE_GAMEMAN_SUFFIX \
	IMAKE_MISCMAN_SUFFIX IMAKE_MANNEWSUFFIX

.if defined(USE_IMAKE)
USE_TOOLS+=	imake xmkmf
.endif

# itools implies all of the imake tools
.if !empty(USE_TOOLS:Mitools)
USE_TOOLS+=	imake makedepend mkdirhier xmkmf
.endif

# imake and xmkmf imply each other
.if !empty(USE_TOOLS:Mimake) || !empty(USE_TOOLS:Mxmkmf)
USE_TOOLS+=	imake xmkmf
.endif

# Add any extra tools that may be required when using imake, e.g. gmake.
.if !empty(USE_TOOLS:Mimake)
USE_TOOLS+=	${IMAKE_TOOLS:Nimake}
.endif

# Ensure that the correct commands are used when using nbitools.
.if !empty(USE_TOOLS:Mitools)
CONFIGURE_ENV+=		IMAKE_CMD=imake
MAKE_ENV+=		IMAKE_CMD=imake
SCRIPTS_ENV+=		IMAKE_CMD=imake
TOOLS_ARGS.imake+=	-DImakeCmd=imake
.endif

TOOLS_ARGS.imake+=	${IMAKEOPTS}
TOOLS_ARGS.xmkmf+=	${XMKMF_FLAGS}

TOOLS_XMKMF=		${${_TOOLS_VARNAME.xmkmf}} -a
XMKMF=			${${_TOOLS_VARNAME.xmkmf}} -a