xref: /netbsd-src/share/mk/bsd.hostlib.mk (revision 6a493d6bc668897c91594964a732d38505b70cbb)
1#	$NetBSD: bsd.hostlib.mk,v 1.17 2013/10/29 16:11:46 joerg Exp $
2
3.include <bsd.init.mk>
4.include <bsd.sys.mk>
5
6##### Basic targets
7
8##### Default values
9CFLAGS+=	${COPTS}
10HOST_MKDEP?=	CC=${HOST_CC:Q} mkdep
11HOST_MKDEPCXX?=	CC=${HOST_CXX:Q} mkdep
12MKDEP_SUFFIXES?=	.o .lo
13
14# Override these:
15MKDEP:=		${HOST_MKDEP}
16MKDEPCXX:=	${HOST_MKDEPCXX}
17
18.if ${TOOLCHAIN_MISSING} == "no" || defined(EXTERNAL_TOOLCHAIN)
19OBJHOSTMACHINE=	# set
20.endif
21
22##### Build rules
23.if defined(HOSTLIB)
24_YHLSRCS=	${SRCS:M*.[ly]:C/\..$/.c/} ${YHEADER:D${SRCS:M*.y:.y=.h}}
25DPSRCS+=	${_YHLSRCS}
26CLEANFILES+=	${_YHLSRCS}
27.endif	# defined(HOSTLIB)
28
29.if !empty(SRCS:N*.h:N*.sh)
30OBJS+=		${SRCS:N*.h:N*.sh:R:S/$/.lo/g}
31.endif
32
33.if defined(OBJS) && !empty(OBJS)
34.NOPATH: lib${HOSTLIB}.a ${OBJS} ${_YHLSRCS}
35
36${OBJS}: ${DPSRCS}
37
38lib${HOSTLIB}.a: ${OBJS} ${DPADD}
39	${_MKTARGET_BUILD}
40	rm -f ${.TARGET}
41	${HOST_AR} cq ${.TARGET} ${OBJS}
42	${HOST_RANLIB} ${.TARGET}
43
44.endif	# defined(OBJS) && !empty(OBJS)
45
46realall: lib${HOSTLIB}.a
47
48CLEANFILES+= a.out [Ee]rrs mklog core *.core lib${HOSTLIB}.a ${OBJS}
49
50beforedepend:
51CFLAGS:=	${HOST_CFLAGS}
52CPPFLAGS:=	${HOST_CPPFLAGS}
53
54##### Pull in related .mk logic
55.include <bsd.obj.mk>
56.include <bsd.dep.mk>
57.include <bsd.clean.mk>
58
59${TARGETS}:	# ensure existence
60