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