xref: /dragonfly/share/mk/bsd.hostlib.mk (revision 3074866b)
1.include <bsd.init.mk>
2
3# Hint HOST_CCVER handling.
4__USE_HOST_CCVER=
5NO_WERROR=
6
7# prefer .s to a .c, add .po, remove stuff not used in the BSD libraries
8# .So used for PIC object files
9.SUFFIXES:
10.SUFFIXES: .out .no .c .cc .cpp .cxx .C .y .l
11
12.c.no:
13	${NXCC} ${_${.IMPSRC}_FLAGS} ${NXCFLAGS:N-flto} -c ${.IMPSRC} -o ${.TARGET}
14	@${NXLD} -o ${.TARGET}.tmp -x -r ${.TARGET}
15	@mv ${.TARGET}.tmp ${.TARGET}
16
17.cc.no .C.no .cpp.no .cxx.no:
18	${NXCXX} ${_${.IMPSRC}_FLAGS} ${NXCXXFLAGS:N-flto} -c ${.IMPSRC} -o ${.TARGET}
19	@${NXLD} -o ${.TARGET}.tmp -x -r ${.TARGET}
20	@mv ${.TARGET}.tmp ${.TARGET}
21
22all: objwarn
23
24.if defined(LIB) && !empty(LIB)
25. if !empty(SRCS)
26OBJS+=  ${SRCS:N*.h:N*.patch:R:S/$/.no/g}
27.  for _PATCH in ${SRCS:T:N*.no_obj.patch:N*.h.patch:M*.patch}
28.   for _OBJ in ${_PATCH:R:R:S/$/.no/}
29OBJS:=	${OBJS:N${_OBJ}} ${_OBJ}
30.   endfor
31.  endfor
32. endif
33.endif
34
35.if defined(LIB) && !empty(LIB)
36_LIBS=		lib${LIB}.na
37
38lib${LIB}.na: ${OBJS} ${STATICOBJS}
39	@${ECHO} building native static ${LIB} library
40	rm -f ${.TARGET}
41	${NXAR} cq ${.TARGET} `lorder ${OBJS} ${STATICOBJS} | tsort -q` ${ARADD}
42	${NXRANLIB} ${.TARGET}
43.endif
44
45all: ${_LIBS}
46
47afterdepend: all
48
49.include <bsd.dep.mk>
50
51.if !exists(${.OBJDIR}/${DEPENDFILE})
52.if defined(LIB) && !empty(LIB)
53${OBJS} ${STATICOBJS}: ${SRCS:M*.h}
54.endif
55.endif
56
57.if !target(clean)
58clean:
59.if defined(CLEANFILES) && !empty(CLEANFILES)
60	rm -f ${CLEANFILES}
61.endif
62.if defined(LIB) && !empty(LIB)
63	rm -f a.out ${OBJS} ${OBJS:S/$/.tmp/} ${STATICOBJS}
64.endif
65.if defined(_LIBS) && !empty(_LIBS)
66	rm -f ${_LIBS}
67.endif
68.if defined(CLEANDIRS) && !empty(CLEANDIRS)
69	rm -rf ${CLEANDIRS}
70.endif
71.endif
72
73.include <bsd.obj.mk>
74
75.include <bsd.sys.mk>
76
77