Changeset View
Changeset View
Standalone View
Standalone View
head/share/mk/bsd.lib.mk
| Show All 15 Lines | |||||
| SHLIB= ${SHLIB_CXX} | SHLIB= ${SHLIB_CXX} | ||||
| .endif | .endif | ||||
| LIB_PRIVATE= ${PRIVATELIB:Dprivate} | LIB_PRIVATE= ${PRIVATELIB:Dprivate} | ||||
| # Set up the variables controlling shared libraries. After this section, | # Set up the variables controlling shared libraries. After this section, | ||||
| # SHLIB_NAME will be defined only if we are to create a shared library. | # SHLIB_NAME will be defined only if we are to create a shared library. | ||||
| # SHLIB_LINK will be defined only if we are to create a link to it. | # SHLIB_LINK will be defined only if we are to create a link to it. | ||||
| # INSTALL_PIC_ARCHIVE will be defined only if we are to create a PIC archive. | # INSTALL_PIC_ARCHIVE will be defined only if we are to create a PIC archive. | ||||
| # BUILD_NOSSP_PIC_ARCHIVE will be defined only if we are to create a PIC archive. | |||||
| .if defined(NO_PIC) | .if defined(NO_PIC) | ||||
| .undef SHLIB_NAME | .undef SHLIB_NAME | ||||
| .undef INSTALL_PIC_ARCHIVE | .undef INSTALL_PIC_ARCHIVE | ||||
| .undef BUILD_NOSSP_PIC_ARCHIVE | |||||
| .else | .else | ||||
| .if !defined(SHLIB) && defined(LIB) | .if !defined(SHLIB) && defined(LIB) | ||||
| SHLIB= ${LIB} | SHLIB= ${LIB} | ||||
| .endif | .endif | ||||
| .if !defined(SHLIB_NAME) && defined(SHLIB) && defined(SHLIB_MAJOR) | .if !defined(SHLIB_NAME) && defined(SHLIB) && defined(SHLIB_MAJOR) | ||||
| SHLIB_NAME= lib${LIB_PRIVATE}${SHLIB}.so.${SHLIB_MAJOR} | SHLIB_NAME= lib${LIB_PRIVATE}${SHLIB}.so.${SHLIB_MAJOR} | ||||
| .endif | .endif | ||||
| .if defined(SHLIB_NAME) && !empty(SHLIB_NAME:M*.so.*) | .if defined(SHLIB_NAME) && !empty(SHLIB_NAME:M*.so.*) | ||||
| Show All 38 Lines | |||||
| CXXFLAGS+= ${DEBUG_FILES_CFLAGS} | CXXFLAGS+= ${DEBUG_FILES_CFLAGS} | ||||
| CTFFLAGS+= -g | CTFFLAGS+= -g | ||||
| .endif | .endif | ||||
| .include <bsd.libnames.mk> | .include <bsd.libnames.mk> | ||||
| # prefer .s to a .c, add .po, remove stuff not used in the BSD libraries | # prefer .s to a .c, add .po, remove stuff not used in the BSD libraries | ||||
| # .pico used for PIC object files | # .pico used for PIC object files | ||||
| .SUFFIXES: .out .o .bc .ll .po .pico .S .asm .s .c .cc .cpp .cxx .C .f .y .l .ln | # .nossppico used for NOSSP PIC object files | ||||
| .SUFFIXES: .out .o .bc .ll .po .pico .nossppico .S .asm .s .c .cc .cpp .cxx .C .f .y .l .ln | |||||
| .if !defined(PICFLAG) | .if !defined(PICFLAG) | ||||
| .if ${MACHINE_CPUARCH} == "sparc64" | .if ${MACHINE_CPUARCH} == "sparc64" | ||||
| PICFLAG=-fPIC | PICFLAG=-fPIC | ||||
| .else | .else | ||||
| PICFLAG=-fpic | PICFLAG=-fpic | ||||
| .endif | .endif | ||||
| .endif | .endif | ||||
| PO_FLAG=-pg | PO_FLAG=-pg | ||||
| .c.po: | .c.po: | ||||
| ${CC} ${PO_FLAG} ${STATIC_CFLAGS} ${PO_CFLAGS} -c ${.IMPSRC} -o ${.TARGET} | ${CC} ${PO_FLAG} ${STATIC_CFLAGS} ${PO_CFLAGS} -c ${.IMPSRC} -o ${.TARGET} | ||||
| ${CTFCONVERT_CMD} | ${CTFCONVERT_CMD} | ||||
| .c.pico: | .c.pico: | ||||
| ${CC} ${PICFLAG} -DPIC ${SHARED_CFLAGS} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} | ${CC} ${PICFLAG} -DPIC ${SHARED_CFLAGS} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} | ||||
| ${CTFCONVERT_CMD} | ${CTFCONVERT_CMD} | ||||
| .c.nossppico: | |||||
| ${CC} ${PICFLAG} -DPIC ${SHARED_CFLAGS:C/^-fstack-protector.*$//} ${CFLAGS:C/^-fstack-protector.*$//} -c ${.IMPSRC} -o ${.TARGET} | |||||
| ${CTFCONVERT_CMD} | |||||
| .cc.po .C.po .cpp.po .cxx.po: | .cc.po .C.po .cpp.po .cxx.po: | ||||
| ${CXX} ${PO_FLAG} ${STATIC_CXXFLAGS} ${PO_CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} | ${CXX} ${PO_FLAG} ${STATIC_CXXFLAGS} ${PO_CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} | ||||
| .cc.pico .C.pico .cpp.pico .cxx.pico: | .cc.pico .C.pico .cpp.pico .cxx.pico: | ||||
| ${CXX} ${PICFLAG} -DPIC ${SHARED_CXXFLAGS} ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} | ${CXX} ${PICFLAG} -DPIC ${SHARED_CXXFLAGS} ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} | ||||
| .cc.nossppico .C.nossppico .cpp.nossppico .cxx.nossppico: | |||||
| ${CXX} ${PICFLAG} -DPIC ${SHARED_CXXFLAGS:C/^-fstack-protector.*$//} ${CXXFLAGS:C/^-fstack-protector.*$//} -c ${.IMPSRC} -o ${.TARGET} | |||||
| .f.po: | .f.po: | ||||
| ${FC} -pg ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} | ${FC} -pg ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} | ||||
| ${CTFCONVERT_CMD} | ${CTFCONVERT_CMD} | ||||
| .f.pico: | .f.pico: | ||||
| ${FC} ${PICFLAG} -DPIC ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} | ${FC} ${PICFLAG} -DPIC ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} | ||||
| ${CTFCONVERT_CMD} | ${CTFCONVERT_CMD} | ||||
| .s.po .s.pico: | .f.nossppico: | ||||
| ${FC} ${PICFLAG} -DPIC ${FFLAGS:C/^-fstack-protector.*$//} -o ${.TARGET} -c ${.IMPSRC} | |||||
| ${CTFCONVERT_CMD} | |||||
| .s.po .s.pico .s.nossppico: | |||||
| ${AS} ${AFLAGS} -o ${.TARGET} ${.IMPSRC} | ${AS} ${AFLAGS} -o ${.TARGET} ${.IMPSRC} | ||||
| ${CTFCONVERT_CMD} | ${CTFCONVERT_CMD} | ||||
| .asm.po: | .asm.po: | ||||
| ${CC:N${CCACHE_BIN}} -x assembler-with-cpp -DPROF ${PO_CFLAGS} \ | ${CC:N${CCACHE_BIN}} -x assembler-with-cpp -DPROF ${PO_CFLAGS} \ | ||||
| ${ACFLAGS} -c ${.IMPSRC} -o ${.TARGET} | ${ACFLAGS} -c ${.IMPSRC} -o ${.TARGET} | ||||
| ${CTFCONVERT_CMD} | ${CTFCONVERT_CMD} | ||||
| .asm.pico: | .asm.pico: | ||||
| ${CC:N${CCACHE_BIN}} -x assembler-with-cpp ${PICFLAG} -DPIC \ | ${CC:N${CCACHE_BIN}} -x assembler-with-cpp ${PICFLAG} -DPIC \ | ||||
| ${CFLAGS} ${ACFLAGS} -c ${.IMPSRC} -o ${.TARGET} | ${CFLAGS} ${ACFLAGS} -c ${.IMPSRC} -o ${.TARGET} | ||||
| ${CTFCONVERT_CMD} | ${CTFCONVERT_CMD} | ||||
| .asm.nossppico: | |||||
| ${CC:N${CCACHE_BIN}} -x assembler-with-cpp ${PICFLAG} -DPIC \ | |||||
| ${CFLAGS:C/^-fstack-protector.*$//} ${ACFLAGS} -c ${.IMPSRC} -o ${.TARGET} | |||||
| ${CTFCONVERT_CMD} | |||||
| .S.po: | .S.po: | ||||
| ${CC:N${CCACHE_BIN}} -DPROF ${PO_CFLAGS} ${ACFLAGS} -c ${.IMPSRC} \ | ${CC:N${CCACHE_BIN}} -DPROF ${PO_CFLAGS} ${ACFLAGS} -c ${.IMPSRC} \ | ||||
| -o ${.TARGET} | -o ${.TARGET} | ||||
| ${CTFCONVERT_CMD} | ${CTFCONVERT_CMD} | ||||
| .S.pico: | .S.pico: | ||||
| ${CC:N${CCACHE_BIN}} ${PICFLAG} -DPIC ${CFLAGS} ${ACFLAGS} \ | ${CC:N${CCACHE_BIN}} ${PICFLAG} -DPIC ${CFLAGS} ${ACFLAGS} \ | ||||
| -c ${.IMPSRC} -o ${.TARGET} | -c ${.IMPSRC} -o ${.TARGET} | ||||
| ${CTFCONVERT_CMD} | ${CTFCONVERT_CMD} | ||||
| .S.nossppico: | |||||
| ${CC:N${CCACHE_BIN}} ${PICFLAG} -DPIC ${CFLAGS:C/^-fstack-protector.*$//} ${ACFLAGS} \ | |||||
| -c ${.IMPSRC} -o ${.TARGET} | |||||
| ${CTFCONVERT_CMD} | |||||
| _LIBDIR:=${LIBDIR} | _LIBDIR:=${LIBDIR} | ||||
| _SHLIBDIR:=${SHLIBDIR} | _SHLIBDIR:=${SHLIBDIR} | ||||
| .if defined(SHLIB_NAME) | .if defined(SHLIB_NAME) | ||||
| .if ${MK_DEBUG_FILES} != "no" | .if ${MK_DEBUG_FILES} != "no" | ||||
| SHLIB_NAME_FULL=${SHLIB_NAME}.full | SHLIB_NAME_FULL=${SHLIB_NAME}.full | ||||
| # Use ${DEBUGDIR} for base system debug files, else .debug subdirectory | # Use ${DEBUGDIR} for base system debug files, else .debug subdirectory | ||||
| .if ${_SHLIBDIR} == "/boot" ||\ | .if ${_SHLIBDIR} == "/boot" ||\ | ||||
| ▲ Show 20 Lines • Show All 133 Lines • ▼ Show 20 Lines | |||||
| lib${LIB_PRIVATE}${LIB}_pic.a: ${SOBJS} | lib${LIB_PRIVATE}${LIB}_pic.a: ${SOBJS} | ||||
| @${ECHO} building special pic ${LIB} library | @${ECHO} building special pic ${LIB} library | ||||
| @rm -f ${.TARGET} | @rm -f ${.TARGET} | ||||
| ${AR} ${ARFLAGS} ${.TARGET} ${SOBJS} ${ARADD} | ${AR} ${ARFLAGS} ${.TARGET} ${SOBJS} ${ARADD} | ||||
| ${RANLIB} ${RANLIBFLAGS} ${.TARGET} | ${RANLIB} ${RANLIBFLAGS} ${.TARGET} | ||||
| .endif | .endif | ||||
| .if defined(BUILD_NOSSP_PIC_ARCHIVE) && defined(LIB) && !empty(LIB) | |||||
| NOSSPSOBJS+= ${OBJS:.o=.nossppico} | |||||
| DEPENDOBJS+= ${NOSSPSOBJS} | |||||
| CLEANFILES+= ${NOSSPSOBJS} | |||||
| _LIBS+= lib${LIB_PRIVATE}${LIB}_nossp_pic.a | |||||
| lib${LIB_PRIVATE}${LIB}_nossp_pic.a: ${NOSSPSOBJS} | |||||
| @${ECHO} building special nossp pic ${LIB} library | |||||
| @rm -f ${.TARGET} | |||||
| ${AR} ${ARFLAGS} ${.TARGET} ${NOSSPSOBJS} ${ARADD} | |||||
| ${RANLIB} ${RANLIBFLAGS} ${.TARGET} | |||||
| .endif | |||||
| .endif # !defined(INTERNALLIB) | .endif # !defined(INTERNALLIB) | ||||
| .if defined(_SKIP_BUILD) | .if defined(_SKIP_BUILD) | ||||
| all: | all: | ||||
| .else | .else | ||||
| .if defined(_LIBS) && !empty(_LIBS) | .if defined(_LIBS) && !empty(_LIBS) | ||||
| all: ${_LIBS} | all: ${_LIBS} | ||||
| .endif | .endif | ||||
| ▲ Show 20 Lines • Show All 122 Lines • ▼ Show 20 Lines | |||||
| .for _S in ${SRCS:N*.[hly]} | .for _S in ${SRCS:N*.[hly]} | ||||
| OBJS_DEPEND_GUESS.${_S:${OBJS_SRCS_FILTER:ts:}}.po+= ${_S} | OBJS_DEPEND_GUESS.${_S:${OBJS_SRCS_FILTER:ts:}}.po+= ${_S} | ||||
| .endfor | .endfor | ||||
| .endif | .endif | ||||
| .if defined(SHLIB_NAME) || \ | .if defined(SHLIB_NAME) || \ | ||||
| defined(INSTALL_PIC_ARCHIVE) && defined(LIB) && !empty(LIB) | defined(INSTALL_PIC_ARCHIVE) && defined(LIB) && !empty(LIB) | ||||
| .for _S in ${SRCS:N*.[hly]} | .for _S in ${SRCS:N*.[hly]} | ||||
| OBJS_DEPEND_GUESS.${_S:${OBJS_SRCS_FILTER:ts:}}.pico+= ${_S} | OBJS_DEPEND_GUESS.${_S:${OBJS_SRCS_FILTER:ts:}}.pico+= ${_S} | ||||
| .endfor | |||||
| .endif | |||||
| .if defined(BUILD_NOSSP_PIC_ARCHIVE) && defined(LIB) && !empty(LIB) | |||||
| .for _S in ${SRCS:N*.[hly]} | |||||
| OBJS_DEPEND_GUESS.${_S:${OBJS_SRCS_FILTER:ts:}}.nossppico+= ${_S} | |||||
| .endfor | .endfor | ||||
| .endif | .endif | ||||
| .if defined(HAS_TESTS) | .if defined(HAS_TESTS) | ||||
| MAKE+= MK_MAKE_CHECK_USE_SANDBOX=yes | MAKE+= MK_MAKE_CHECK_USE_SANDBOX=yes | ||||
| SUBDIR_TARGETS+= check | SUBDIR_TARGETS+= check | ||||
| TESTS_LD_LIBRARY_PATH+= ${.OBJDIR} | TESTS_LD_LIBRARY_PATH+= ${.OBJDIR} | ||||
| .endif | .endif | ||||
| .include <bsd.dep.mk> | .include <bsd.dep.mk> | ||||
| .include <bsd.clang-analyze.mk> | .include <bsd.clang-analyze.mk> | ||||
| .include <bsd.obj.mk> | .include <bsd.obj.mk> | ||||
| .include <bsd.sys.mk> | .include <bsd.sys.mk> | ||||