bsd.klinks.mk revision 1.14 1 # $NetBSD: bsd.klinks.mk,v 1.14 2017/12/06 02:06:45 christos Exp $
2 #
3
4 .include <bsd.own.mk>
5
6 KLINK_MACHINE?= ${MACHINE}
7
8 ##### Default values
9 .if !defined(S)
10 . if defined(NETBSDSRCDIR)
11 S= ${NETBSDSRCDIR}/sys
12 . elif defined(BSDSRCDIR)
13 S= ${BSDSRCDIR}/sys
14 . else
15 S= /sys
16 . endif
17 .endif
18
19 KLINKFILES+= ${MACHINE_CPU} ${KLINK_MACHINE}
20
21 .if ${KLINK_MACHINE} == "sun2" || ${KLINK_MACHINE} == "sun3"
22 KLINKFILES+= sun68k
23 .elif ${KLINK_MACHINE} == "sparc64"
24 KLINKFILES+= sparc
25 .elif ${KLINK_MACHINE} == "i386"
26 KLINKFILES+= x86
27 .elif ${KLINK_MACHINE} == "amd64"
28 KLINKFILES+= x86 i386
29 .elif ${KLINK_MACHINE} == "evbmips"
30 KLINKFILES+= algor sbmips
31 .elif ${MACHINE_CPU} == "aarch64"
32 KLINKFILES+= arm
33 .elif defined(XEN_BUILD) || ${KLINK_MACHINE} == "xen"
34 KLINKFILES+= xen
35 CLEANFILES+= xen-ma/machine # xen-ma
36 CPPFLAGS+= -I${.OBJDIR}/xen-ma
37 .endif
38
39 CLEANFILES+= 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