xref: /netbsd-src/share/mk/bsd.klinks.mk (revision 224cc4e632c8e6efb12c98301cd25fa36a2878e5)
1#	$NetBSD: bsd.klinks.mk,v 1.15 2020/04/25 15:46:59 bouyer Exp $
2#
3
4.include <bsd.own.mk>
5
6KLINK_MACHINE?=	${MACHINE}
7
8##### Default values
9.if !defined(S)
10.   if defined(NETBSDSRCDIR)
11S=	${NETBSDSRCDIR}/sys
12.   elif defined(BSDSRCDIR)
13S=	${BSDSRCDIR}/sys
14.   else
15S=	/sys
16.   endif
17.endif
18
19KLINKFILES+=	${MACHINE_CPU} ${KLINK_MACHINE}
20
21.if ${KLINK_MACHINE} == "sun2" || ${KLINK_MACHINE} == "sun3"
22KLINKFILES+=	sun68k
23.elif ${KLINK_MACHINE} == "sparc64"
24KLINKFILES+=	sparc
25.elif ${KLINK_MACHINE} == "i386"
26KLINKFILES+=	x86 xen
27.elif ${KLINK_MACHINE} == "amd64"
28KLINKFILES+=	x86 i386 xen
29.elif ${KLINK_MACHINE} == "evbmips"
30KLINKFILES+=	algor sbmips
31.elif ${MACHINE_CPU} == "aarch64"
32KLINKFILES+=	arm
33.elif defined(XEN_BUILD) || ${KLINK_MACHINE} == "xen"
34KLINKFILES+=	xen
35CLEANFILES+=	xen-ma/machine # xen-ma
36CPPFLAGS+=	-I${.OBJDIR}/xen-ma
37.endif
38
39CLEANFILES+= machine ${KLINKFILES}
40
41# XXX.  This should be done a better way.  It's @'d to reduce visual spew.
42# XXX   .BEGIN is used to make sure the links are done before anything else.
43.if !make(obj) && !make(clean) && !make(cleandir)
44.BEGIN:
45	-@rm -f machine && \
46	    ln -s $S/arch/${KLINK_MACHINE}/include machine
47.   for kl in ${KLINKFILES}
48	-@if [ -d $S/arch/${kl}/include ]; then \
49	    rm -f ${kl} && ln -s $S/arch/${kl}/include ${kl}; \
50	fi
51.   endfor
52.   if defined(XEN_BUILD) || ${KLINK_MACHINE} == "xen"
53	-@rm -rf xen-ma && mkdir xen-ma && \
54	    ln -s ../${XEN_BUILD:U${MACHINE_ARCH}} xen-ma/machine
55.   endif
56.endif
57