bsd.hostlib.mk revision 1.8 1 # $NetBSD: bsd.hostlib.mk,v 1.8 2003/10/18 15:33:59 lukem Exp $
2
3 .include <bsd.init.mk>
4 .include <bsd.sys.mk>
5
6 ##### Basic targets
7 .PHONY: cleanlib
8 clean: cleanlib
9
10 ##### Default values
11 CFLAGS+= ${COPTS}
12 HOST_MKDEP?= CC=${HOST_CC:Q} mkdep
13
14 # Override these:
15 MKDEP:= ${HOST_MKDEP}
16
17 .if ${TOOLCHAIN_MISSING} != "yes" || defined(EXTERNAL_TOOLCHAIN)
18 OBJHOSTMACHINE= # set
19 .endif
20
21 ##### Build rules
22 .if defined(HOSTLIB)
23 DPSRCS+= ${SRCS:M*.l:.l=.c} ${SRCS:M*.y:.y=.c}
24 CLEANFILES+= ${SRCS:M*.l:.l=.c} ${SRCS:M*.y:.y=.c}
25 CLEANFILES+= ${YHEADER:D${SRCS:M*.y:.y=.h}}
26 .endif # defined(HOSTLIB)
27
28 .if !empty(SRCS:N*.h:N*.sh)
29 OBJS+= ${SRCS:N*.h:N*.sh:R:S/$/.lo/g}
30 .endif
31
32 .if defined(OBJS) && !empty(OBJS)
33 .NOPATH: ${OBJS} ${HOSTPROG} ${SRCS:M*.[ly]:C/\..$/.c/} ${YHEADER:D${SRCS:M*.y:.y=.h}}
34
35 ${OBJS}: ${DPSRCS}
36
37 lib${HOSTLIB}.a: ${OBJS} ${DPADD}
38 ${_MKMSG} " build ${.TARGET}"
39 ${_MKCMD}\
40 rm -f ${.TARGET}
41 ${_MKCMD}\
42 ${HOST_AR} cq ${.TARGET} ${OBJS}
43 ${_MKCMD}\
44 ${HOST_RANLIB} ${.TARGET}
45
46 .endif # defined(OBJS) && !empty(OBJS)
47
48 realall: lib${HOSTLIB}.a
49
50 cleanlib:
51 ${_MKCMD}\
52 rm -f a.out [Ee]rrs mklog core *.core \
53 lib${HOSTLIB}.a ${OBJS} ${CLEANFILES}
54
55 beforedepend:
56 CFLAGS:= ${HOST_CFLAGS}
57 CPPFLAGS:= ${HOST_CPPFLAGS}
58
59 .if defined(SRCS)
60 afterdepend: .depend
61 @(TMP=/tmp/_depend$$$$; trap 'rm -f $$TMP ; exit 1' 1 2 3 13 15; \
62 sed -e 's/^\([^\.]*\).o[ ]*:/\1.lo:/' \
63 < .depend > $$TMP; \
64 mv $$TMP .depend)
65 .endif
66
67 ##### Pull in related .mk logic
68 .include <bsd.obj.mk>
69 .include <bsd.dep.mk>
70
71 ${TARGETS}: # ensure existence
72