1# from: @(#)bsd.lib.mk 5.26 (Berkeley) 5/2/91 |
2# $FreeBSD: head/share/mk/bsd.lib.mk 301284 2016-06-03 19:25:36Z bdrewery $ |
3# 4 5.include <bsd.init.mk> 6 7.if defined(LIB_CXX) || defined(SHLIB_CXX) 8_LD= ${CXX} 9.else 10_LD= ${CC} --- 75 unchanged lines hidden (view full) --- 86PICFLAG=-fPIC 87.else 88PICFLAG=-fpic 89.endif 90.endif 91 92PO_FLAG=-pg 93 |
94.c.o: |
95 ${CC} ${STATIC_CFLAGS} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} 96 ${CTFCONVERT_CMD} 97 |
98.c.po: |
99 ${CC} ${PO_FLAG} ${STATIC_CFLAGS} ${PO_CFLAGS} -c ${.IMPSRC} -o ${.TARGET} 100 ${CTFCONVERT_CMD} 101 |
102.c.So: |
103 ${CC} ${PICFLAG} -DPIC ${SHARED_CFLAGS} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} 104 ${CTFCONVERT_CMD} 105 |
106.cc.o .C.o .cpp.o .cxx.o: |
107 ${CXX} ${STATIC_CXXFLAGS} ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} 108 |
109.cc.po .C.po .cpp.po .cxx.po: |
110 ${CXX} ${PO_FLAG} ${STATIC_CXXFLAGS} ${PO_CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} 111 |
112.cc.So .C.So .cpp.So .cxx.So: |
113 ${CXX} ${PICFLAG} -DPIC ${SHARED_CXXFLAGS} ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} 114 |
115.f.po: |
116 ${FC} -pg ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} 117 ${CTFCONVERT_CMD} 118 |
119.f.So: |
120 ${FC} ${PICFLAG} -DPIC ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} 121 ${CTFCONVERT_CMD} 122 |
123.s.po .s.So: |
124 ${AS} ${AFLAGS} -o ${.TARGET} ${.IMPSRC} 125 ${CTFCONVERT_CMD} 126 |
127.asm.po: |
128 ${CC:N${CCACHE_BIN}} -x assembler-with-cpp -DPROF ${PO_CFLAGS} \ 129 ${ACFLAGS} -c ${.IMPSRC} -o ${.TARGET} 130 ${CTFCONVERT_CMD} 131 |
132.asm.So: |
133 ${CC:N${CCACHE_BIN}} -x assembler-with-cpp ${PICFLAG} -DPIC \ 134 ${CFLAGS} ${ACFLAGS} -c ${.IMPSRC} -o ${.TARGET} 135 ${CTFCONVERT_CMD} 136 |
137.S.po: |
138 ${CC:N${CCACHE_BIN}} -DPROF ${PO_CFLAGS} ${ACFLAGS} -c ${.IMPSRC} \ 139 -o ${.TARGET} 140 ${CTFCONVERT_CMD} 141 |
142.S.So: |
143 ${CC:N${CCACHE_BIN}} ${PICFLAG} -DPIC ${CFLAGS} ${ACFLAGS} \ 144 -c ${.IMPSRC} -o ${.TARGET} 145 ${CTFCONVERT_CMD} 146 147_LIBDIR:=${LIBDIR} 148_SHLIBDIR:=${SHLIBDIR} 149 150.if defined(SHLIB_NAME) --- 27 unchanged lines hidden (view full) --- 178.if defined(LIB) && !empty(LIB) || defined(SHLIB_NAME) 179OBJS+= ${SRCS:N*.h:R:S/$/.o/} 180CLEANFILES+= ${OBJS} ${STATICOBJS} 181.endif 182 183.if defined(LIB) && !empty(LIB) 184_LIBS= lib${LIB_PRIVATE}${LIB}.a 185 |
186lib${LIB_PRIVATE}${LIB}.a: ${OBJS} ${STATICOBJS} |
187 @${ECHO} building static ${LIB} library 188 @rm -f ${.TARGET} 189 ${AR} ${ARFLAGS} ${.TARGET} `NM='${NM}' NMFLAGS='${NMFLAGS}' lorder ${OBJS} ${STATICOBJS} | tsort -q` ${ARADD} 190 ${RANLIB} ${RANLIBFLAGS} ${.TARGET} 191.endif 192 193.if !defined(INTERNALLIB) 194 195.if ${MK_PROFILE} != "no" && defined(LIB) && !empty(LIB) 196_LIBS+= lib${LIB_PRIVATE}${LIB}_p.a 197POBJS+= ${OBJS:.o=.po} ${STATICOBJS:.o=.po} 198DEPENDOBJS+= ${POBJS} 199CLEANFILES+= ${POBJS} 200 |
201lib${LIB_PRIVATE}${LIB}_p.a: ${POBJS} |
202 @${ECHO} building profiled ${LIB} library 203 @rm -f ${.TARGET} 204 ${AR} ${ARFLAGS} ${.TARGET} `NM='${NM}' NMFLAGS='${NMFLAGS}' lorder ${POBJS} | tsort -q` ${ARADD} 205 ${RANLIB} ${RANLIBFLAGS} ${.TARGET} 206.endif 207 208.if defined(SHLIB_NAME) || \ 209 defined(INSTALL_PIC_ARCHIVE) && defined(LIB) && !empty(LIB) --- 15 unchanged lines hidden (view full) --- 225 226.if target(beforelinking) 227beforelinking: ${SOBJS} 228${SHLIB_NAME_FULL}: beforelinking 229.endif 230 231.if defined(SHLIB_LINK) 232.if defined(SHLIB_LDSCRIPT) && !empty(SHLIB_LDSCRIPT) && exists(${.CURDIR}/${SHLIB_LDSCRIPT}) |
233${SHLIB_LINK:R}.ld: ${.CURDIR}/${SHLIB_LDSCRIPT} |
234 sed -e 's,@@SHLIB@@,${_SHLIBDIR}/${SHLIB_NAME},g' \ 235 -e 's,@@LIBDIR@@,${_LIBDIR},g' \ 236 ${.ALLSRC} > ${.TARGET} 237 238${SHLIB_NAME_FULL}: ${SHLIB_LINK:R}.ld 239CLEANFILES+= ${SHLIB_LINK:R}.ld 240.endif 241CLEANFILES+= ${SHLIB_LINK} 242.endif 243 |
244${SHLIB_NAME_FULL}: ${SOBJS} |
245 @${ECHO} building shared library ${SHLIB_NAME} 246 @rm -f ${SHLIB_NAME} ${SHLIB_LINK} 247.if defined(SHLIB_LINK) && !commands(${SHLIB_LINK:R}.ld) 248 @${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},development} ${SHLIB_NAME} ${SHLIB_LINK} 249.endif 250 ${_LD:N${CCACHE_BIN}} ${LDFLAGS} ${SSP_CFLAGS} ${SOLINKOPTS} \ 251 -o ${.TARGET} -Wl,-soname,${SONAME} \ 252 `NM='${NM}' NMFLAGS='${NMFLAGS}' lorder ${SOBJS} | tsort -q` ${LDADD} 253.if ${MK_CTF} != "no" 254 ${CTFMERGE} ${CTFFLAGS} -o ${.TARGET} ${SOBJS} 255.endif 256 257.if ${MK_DEBUG_FILES} != "no" 258CLEANFILES+= ${SHLIB_NAME_FULL} ${SHLIB_NAME}.debug |
259${SHLIB_NAME}: ${SHLIB_NAME_FULL} ${SHLIB_NAME}.debug |
260 ${OBJCOPY} --strip-debug --add-gnu-debuglink=${SHLIB_NAME}.debug \ 261 ${SHLIB_NAME_FULL} ${.TARGET} 262 |
263${SHLIB_NAME}.debug: ${SHLIB_NAME_FULL} |
264 ${OBJCOPY} --only-keep-debug ${SHLIB_NAME_FULL} ${.TARGET} 265.endif 266.endif #defined(SHLIB_NAME) 267 268.if defined(INSTALL_PIC_ARCHIVE) && defined(LIB) && !empty(LIB) && ${MK_TOOLCHAIN} != "no" 269_LIBS+= lib${LIB_PRIVATE}${LIB}_pic.a 270 |
271lib${LIB_PRIVATE}${LIB}_pic.a: ${SOBJS} |
272 @${ECHO} building special pic ${LIB} library 273 @rm -f ${.TARGET} 274 ${AR} ${ARFLAGS} ${.TARGET} ${SOBJS} ${ARADD} 275 ${RANLIB} ${RANLIBFLAGS} ${.TARGET} 276.endif 277 278.if defined(WANT_LINT) && !defined(NO_LINT) && defined(LIB) && !empty(LIB) 279LINTLIB= llib-l${LIB}.ln 280_LIBS+= ${LINTLIB} 281LINTOBJS+= ${SRCS:M*.c:.c=.ln} 282CLEANFILES+= ${LINTOBJS} 283 |
284${LINTLIB}: ${LINTOBJS} |
285 @${ECHO} building lint library ${.TARGET} 286 @rm -f ${.TARGET} 287 ${LINT} ${LINTLIBFLAGS} ${CFLAGS:M-[DIU]*} ${.ALLSRC} 288.endif 289 290.endif # !defined(INTERNALLIB) 291 292.if defined(_SKIP_BUILD) --- 145 unchanged lines hidden --- |