Makefile revision 1.4
1#	$NetBSD: Makefile,v 1.4 2013/08/20 20:54:35 matt Exp $
2
3WITHOUT_MAN=true  # defined
4
5.include <bsd.obj.mk>		# Pull in OBJDIR name rules.
6.include <bsd.own.mk>
7
8LIB=	kern
9LIBISPRIVATE?=	yes
10DBG=	-Os
11
12S= ${NETBSDSRCDIR}/sys
13CPPFLAGS+= -nostdinc -I${.OBJDIR} -I${S} -I${S}/arch
14
15CPPFLAGS+= -D_STANDALONE
16
17COPTS+=	-ffreestanding
18COPTS+=	-fno-stack-protector
19COPTS+=	-fno-unwind-tables
20CWARNFLAGS+= -Werror
21CWARNFLAGS+= -Wall -Wmissing-prototypes -Wstrict-prototypes -Wpointer-arith
22
23.if !make(obj) && !make(clean) && !make(cleandir)
24.NOPATH: machine
25.endif
26
27realdepend realall: machine .WAIT
28CLEANFILES+= ${MACHINE_CPU} machine
29
30ARCHDIRS.i386=		x86
31ARCHDIRS.m68000=	m68k
32ARCHDIRS.sparc64=	sparc
33ARCHDIRS.x86_64=	x86
34MACHDIRS.sun2=		sun68k
35
36machine::
37.if ${MACHINE_CPU} == "arm"
38	ln -sf ${S}/arch/${MACHINE_CPU}/include machine
39.else
40	ln -sf ${S}/arch/${MACHINE}/include machine
41.endif
42.if !empty(ARCHDIRS.${MACHINE_ARCH})
43.for d in ${ARCHDIRS.${MACHINE_ARCH}}
44	ln -sf ${S}/arch/${d}/include ${d}
45.endfor
46.endif
47.if !empty(MACHDIRS.${MACHINE})
48.for d in ${MACHDIRS.${MACHINE}}
49	ln -sf ${S}/arch/${d}/include ${d}
50.endfor
51.endif
52	ln -sf ${S}/arch/${MACHINE_CPU}/include ${MACHINE_CPU}
53
54${OBJS}: machine
55
56### find out what to use for libkern
57KERN_AS=	library
58KERNDIR=	${S}/lib/libkern
59
60.include "${S}/lib/libkern/Makefile.libkern"
61.ifndef ARCHSUBDIR
62.BEGIN:
63	@echo no ARCHSUBDIR for ${MACHINE_ARCH} nor ${MACHINE_CPU}
64	@false
65.endif
66
67.include <bsd.lib.mk>
68
69lib${LIB}.o:: ${OBJS}
70	@echo building standard ${LIB} library
71	@rm -f lib${LIB}.o
72	@${LD} -r -o lib${LIB}.o `NM=${NM} ${LORDER} ${OBJS} | ${TSORT}`
73
74lib${LIB}.po:: ${POBJS}
75	@echo building profiled ${LIB} library
76	@rm -f lib${LIB}.po
77	@${LD} -r -o lib${LIB}.po `NM=${NM} ${LORDER} ${POBJS} | ${TSORT}`
78
79showsources: ${SRCS}
80	@echo ${.ALLSRC}
81