Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

#	$NetBSD: Makefile.host,v 1.36 2023/06/04 16:53:59 lukem Exp $

NOINFO=         # defined
NOLINT=         # defined
NOMAN=          # defined
MKREPRO=no	# Native toolchain might be unable to do it

.include <bsd.own.mk>

.ifndef NOCOMPATLIB
# Use TOOLDIR copy of libnbcompat and associated *.h files
.-include	"${TOOLDIR}/share/compat/defs.mk"
.elif !empty(.MAKE.OS:M*CYGWIN*)
HOSTEXEEXT=.exe
.endif

# Resolve pathnames in variables.
_RESOLVE_VARS=	CFLAGS CPPFLAGS DPADD HOST_CPPFLAGS LDADD
.for var in ${_RESOLVE_VARS}
${var}:=	${${var}}
.endfor

# Switch over to the "real" Makefile.
.PROGDIR:=	${.CURDIR}/../../${HOST_SRCDIR}
_CURDIR:=	${.CURDIR}
HOSTPROG?=	${PROG}

.CURDIR:=	${.PROGDIR}
.PATH:		${.CURDIR}
.include "${.CURDIR}/Makefile"
.-include "${.CURDIR}/../Makefile.inc"

# Resolve pathnames from "real" Makefile, and switch .CURDIR back.
.for var in ${_RESOLVE_VARS}
${var}:=	${${var}}
.endfor
.CURDIR:=	${_CURDIR}
.undef		_CURDIR

# Set up the environment for <bsd.hostprog.mk>.
.if ${USETOOLS} != "yes"
.undef HOSTPROG
.endif

HOSTPROGNAME?=	${HOSTPROG}
HOST_BINDIR?=	${TOOLDIR}/bin
HOST_CPPFLAGS:=	${HOST_CPPFLAGS} ${CPPFLAGS}
HOST_CPPFLAGS:=	${HOST_CPPFLAGS:N-Wp,-iremap,*:N--sysroot=*}
HOST_INSTALLPROG?=${HOST_BINDIR}/${HOSTPROGNAME}${HOSTEXEEXT}
.undef LINKS

SRCS?=		${HOSTPROG}.c
SRCS+=		${HOST_SRCS}

.PATH:		${.PROGDIR}

# Install rule.
realinstall: install.host install.files
install.host: ${HOST_INSTALLPROG}
${HOST_INSTALLPROG}:: ${HOSTPROG}
	${_MKTARGET_INSTALL}
	mkdir -p ${HOST_BINDIR}
	${HOST_INSTALL_FILE} -m ${BINMODE} ${HOSTPROG}${HOSTEXEEXT} ${.TARGET}
.if !empty(.MAKE.OS:M*CYGWIN*)
	${HOST_SH} ${NETBSDSRCDIR}/tools/binstall/mkmanifest ${.TARGET}
.endif

.if ${MKUPDATE} == "no"
.PHONY:		${HOST_INSTALLPROG}
.endif

install.files:
.for F in ${HOSTFILES}
install.files: ${HOST_FILESDIR}/${F}
${HOST_FILESDIR}/${F}: ${F}
	${_MKTARGET_INSTALL}
	mkdir -p ${HOST_FILESDIR}
	${HOST_INSTALL_FILE} -m ${NONBINMODE} ${.ALLSRC} ${.TARGET}

.if ${MKUPDATE} == "no"
.PHONY:		${HOST_FILESDIR}/${F}
.endif
.endfor

.include <bsd.hostprog.mk>