Merge from vendor branch TNFTP:
[dragonfly.git] / share / mk / bsd.hostlib.mk
1 # $DragonFly: src/share/mk/bsd.hostlib.mk,v 1.1 2005/06/05 19:23:10 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} ${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} ${NXCXXFLAGS} -c ${.IMPSRC} -o ${.TARGET}
17         @${NXLD} -o ${.TARGET}.tmp -x -r ${.TARGET}
18         @mv ${.TARGET}.tmp ${.TARGET}
19
20 all: objwarn
21
22 .if defined(LIB) && !empty(LIB)
23 OBJS+=  ${SRCS:N*.h:N*.patch:R:S/$/.no/g}
24 .for _PATCH in ${SRCS:T:N*.no_obj.patch:N*.h.patch:M*.patch}
25 .for _OBJ in ${_PATCH:R:R:S/$/.no/}
26 OBJS:=  ${OBJS:N${_OBJ}} ${_OBJ}
27 .endfor
28 .endfor
29 .endif
30
31 .if defined(LIB) && !empty(LIB)
32 _LIBS=          lib${LIB}.na
33
34 lib${LIB}.na: ${OBJS} ${STATICOBJS}
35         @${ECHO} building native static ${LIB} library
36         rm -f ${.TARGET}
37         ${NXAR} cq ${.TARGET} `lorder ${OBJS} ${STATICOBJS} | tsort -q` ${ARADD}
38         ${NXRANLIB} ${.TARGET}
39 .endif
40
41 all: ${_LIBS}
42
43 _EXTRADEPEND: all
44
45 .include <bsd.dep.mk>
46
47 .if !exists(${.OBJDIR}/${DEPENDFILE})
48 .if defined(LIB) && !empty(LIB)
49 ${OBJS} ${STATICOBJS}: ${SRCS:M*.h}
50 .endif
51 .endif
52
53 .if !target(clean)
54 clean:
55 .if defined(CLEANFILES) && !empty(CLEANFILES)
56         rm -f ${CLEANFILES}
57 .endif
58 .if defined(LIB) && !empty(LIB)
59         rm -f a.out ${OBJS} ${OBJS:S/$/.tmp/} ${STATICOBJS}
60 .endif
61 .if defined(_LIBS) && !empty(_LIBS)
62         rm -f ${_LIBS}
63 .endif
64 .if defined(CLEANDIRS) && !empty(CLEANDIRS)
65         rm -rf ${CLEANDIRS}
66 .endif
67 .endif
68
69 .include <bsd.obj.mk>
70
71 .include <bsd.sys.mk>
72