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