1 # $NetBSD: Makefile,v 1.71 2003/07/07 13:20:17 dsl Exp $
2
3 LIB= kern
4 NOPIC= # defined
5 LLIBS= # defined
6
7 .include <bsd.own.mk>
8
9 .if defined(LIBKERN_ARCH) && !empty(LIBKERN_ARCH) && \
10 exists(${KERNDIR}/arch/${LIBKERN_ARCH})
11 ARCHSUBDIR= ${LIBKERN_ARCH}
12 .elif defined(MACHINE_ARCH) && !empty(MACHINE_ARCH) && \
13 exists(${KERNDIR}/arch/${MACHINE_ARCH})
14 ARCHSUBDIR= ${MACHINE_ARCH}
15 .elif defined(MACHINE_CPU) && !empty(MACHINE_CPU) && \
16 exists(${KERNDIR}/arch/${MACHINE_CPU})
17 ARCHSUBDIR= ${MACHINE_CPU}
18 .else
19 .BEGIN:
20 @echo no ARCHSUBDIR for ${MACHINE_ARCH} nor ${MACHINE_CPU}
21 @false
22 .endif
23
24 M= ${KERNDIR}/arch/${ARCHSUBDIR}
25
26 CPPFLAGS= -I$M ${KERNCPPFLAGS} ${KERNMISCCPPFLAGS}
27
28 .PATH.c: ${KERNDIR}
29 .if exists ($M/Makefile.inc)
30 .PATH.c: $M
31 .PATH.S: $M
32 .include "$M/Makefile.inc"
33 .endif
34
35 .if (${MACHINE_ARCH} != "alpha")
36 # Quad support
37 SRCS+= adddi3.c anddi3.c ashldi3.c ashrdi3.c cmpdi2.c divdi3.c iordi3.c \
38 lshldi3.c lshrdi3.c moddi3.c muldi3.c negdi2.c notdi2.c qdivrem.c \
39 subdi3.c ucmpdi2.c udivdi3.c umoddi3.c xordi3.c
40 .endif
41
42 # Other stuff
43 SRCS+= __cmsg_alignbytes.c inet_addr.c intoa.c md4c.c md5c.c sha1.c pmatch.c
44 SRCS+= _que.c arc4random.c
45
46 SRCS+= strstr.c strlcpy.c strlcat.c
47
48 SRCS+= xlat_mbr_fstype.c
49
50 # Files to clean up
51 CLEANFILES+= lib${LIB}.o lib${LIB}.po
52
53 #
54 # Special rules for certain objects
55 #
56
57 # mcount cannot be compiled with profiling
58 mcount.po: mcount.o
59 cp mcount.o mcount.po
60
61 # XXX these stub builds should be cleaned up even further.
62
63 # if no machine specific memcpy(3), build one out of bcopy(3) based stub.
64 .if empty(SRCS:Mmemcpy.S)
65 SRCS+= memcpy.c
66 .endif
67
68 # if no machine specific memmove(3), build one out of bcopy(3) based stub.
69 .if empty(SRCS:Mmemmove.S)
70 SRCS+= memmove.c
71 .endif
72
73 # if no machine specific strchr(3), build one out of index(3) based stub.
74 .if empty(SRCS:Mstrchr.S)
75 SRCS+= strchr.c
76 .endif
77
78 # if no machine specific strrchr(3), build one out of rindex(3) based stub.
79 .if empty(SRCS:Mstrrchr.S)
80 SRCS+= strrchr.c
81 .endif
82
83 POBJS+= mcount.po
84
85 # only needed during build
86 libinstall::
87
88 .undef DESTDIR
89 .include <bsd.lib.mk>
90
91 lib${LIB}.o:: ${OBJS}
92 @echo building standard ${LIB} library
93 @rm -f lib${LIB}.o
94 @${LD} -r -o lib${LIB}.o `NM=${NM} ${LORDER} ${OBJS} | ${TSORT}`
95
96 lib${LIB}.po:: ${POBJS}
97 @echo building profiled ${LIB} library
98 @rm -f lib${LIB}.po
99 @${LD} -r -o lib${LIB}.po `NM=${NM} ${LORDER} ${POBJS} | ${TSORT}`
100
101 showsources: ${SRCS}
102 @echo ${.ALLSRC}
Cache object: 77defe9a7ae50e06bef0aab2cf50223e
|