xref: /netbsd-src/share/mk/bsd.host.mk (revision 69f41f59530514a6d0f3577bd034e99bc8ce1194)
1#	$NetBSD: bsd.host.mk,v 1.6 2021/12/20 20:33:20 christos Exp $
2
3.if !defined(_BSD_HOST_MK_)
4_BSD_HOST_MK_=1
5
6.if ${MKDEBUGTOOLS:Uno} == "yes"
7HOST_DBG?= -g
8.else
9HOST_DBG?= -O
10.endif
11
12.if ${MKDTRACE:Uno} != "no"
13# disable compiler options that interfere with dtrace
14HOST_DTRACE_OPTS?=	-fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-ipa-sra
15.endif
16
17# Helpers for cross-compiling
18HOST_CC?=	cc
19HOST_CFLAGS?=	${HOST_DBG}
20HOST_COMPILE.c?=${HOST_CC} ${HOST_CFLAGS} ${HOST_DTRACE_OPTS} ${HOST_CPPFLAGS} -c
21HOST_COMPILE.cc?=      ${HOST_CXX} ${HOST_CXXFLAGS} ${HOST_DTRACE_OPTS} ${HOST_CPPFLAGS} -c
22HOST_LINK.cc?=  ${HOST_CXX} ${HOST_CXXFLAGS} ${HOST_CPPFLAGS} ${HOST_LDFLAGS}
23.if defined(HOSTPROG_CXX)
24HOST_LINK.c?=   ${HOST_LINK.cc}
25.else
26HOST_LINK.c?=	${HOST_CC} ${HOST_CFLAGS} ${HOST_CPPFLAGS} ${HOST_LDFLAGS}
27.endif
28
29HOST_CXX?=	c++
30HOST_CXXFLAGS?=	${HOST_DBG}
31
32HOST_CPP?=	cpp
33HOST_CPPFLAGS?=
34
35HOST_LD?=	ld
36HOST_LDFLAGS?=
37
38HOST_AR?=	ar
39HOST_RANLIB?=	ranlib
40
41HOST_LN?=	ln
42
43# HOST_SH must be an absolute path
44HOST_SH?=	/bin/sh
45
46.if !defined(HOST_OSTYPE)
47_HOST_OSNAME!=	uname -s
48_HOST_OSREL!=	uname -r
49# For _HOST_ARCH, if uname -p fails, or prints "unknown", or prints
50# something that does not look like an identifier, then use uname -m.
51_HOST_ARCH!=	uname -p 2>/dev/null
52_HOST_ARCH:=	${HOST_ARCH:tW:C/.*[^-_A-Za-z0-9].*//:S/unknown//}
53.if empty(_HOST_ARCH)
54_HOST_ARCH!=	uname -m
55.endif
56HOST_OSTYPE:=	${_HOST_OSNAME}-${_HOST_OSREL:C/\([^\)]*\)//g:[*]:C/ /_/g}-${_HOST_ARCH:C/\([^\)]*\)//g:[*]:C/ /_/g}
57.MAKEOVERRIDES+= HOST_OSTYPE
58.endif # !defined(HOST_OSTYPE)
59
60.if ${USETOOLS} == "yes"
61HOST_MKDEP?=	${TOOLDIR}/bin/${_TOOL_PREFIX}host-mkdep
62HOST_MKDEPCXX?=	${TOOLDIR}/bin/${_TOOL_PREFIX}host-mkdep
63.else
64HOST_MKDEP?=	CC=${HOST_CC:Q} mkdep
65HOST_MKDEPCXX?=	CC=${HOST_CXX:Q} mkdep
66.endif
67
68.if ${HOST_OSTYPE:MLinux*}
69HOST_CPPFLAGS+=-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
70.endif
71
72.if ${NEED_OWN_INSTALL_TARGET} != "no"
73HOST_INSTALL_FILE?=	${INSTALL} ${COPY} ${PRESERVE} ${RENAME}
74HOST_INSTALL_DIR?=	${INSTALL} -d
75HOST_INSTALL_SYMLINK?=	${INSTALL} ${SYMLINK} ${RENAME}
76.endif
77
78.endif
79