Index: bsd.lib.mk =================================================================== --- bsd.lib.mk (revision 244883) +++ bsd.lib.mk (working copy) @@ -165,19 +165,22 @@ .if defined(SHLIB_NAME) _LIBS+= ${SHLIB_NAME} +.if defined(DEBUG_FLAGS) +SHLIB_NAME_FULL=${SHLIB_NAME}.debug +.else +SHLIB_NAME_FULL=${SHLIB_NAME} +.endif + SOLINKOPTS= -shared -Wl,-x .if !defined(ALLOW_SHARED_TEXTREL) SOLINKOPTS+= -Wl,--fatal-warnings -Wl,--warn-shared-textrel .endif +${SHLIB_NAME_FULL}: ${SOBJS} .if target(beforelinking) +beforelinking: ${SOBJS} ${SHLIB_NAME}: beforelinking .endif -.if defined(DEBUG_FLAGS) -${SHLIB_NAME}.debug: ${SOBJS} -.else -${SHLIB_NAME}: ${SOBJS} -.endif @${ECHO} building shared library ${SHLIB_NAME} @rm -f ${SHLIB_NAME} ${SHLIB_LINK} .if defined(SHLIB_LINK) @@ -197,12 +200,12 @@ .endif .if defined(DEBUG_FLAGS) -${SHLIB_NAME}: ${SHLIB_NAME}.debug ${SHLIB_NAME}.symbols +${SHLIB_NAME}: ${SHLIB_NAME_FULL} ${SHLIB_NAME}.symbols ${OBJCOPY} --strip-debug --add-gnu-debuglink=${SHLIB_NAME}.symbols \ - ${SHLIB_NAME}.debug ${.TARGET} + ${SHLIB_NAME_FULL} ${.TARGET} -${SHLIB_NAME}.symbols: ${SHLIB_NAME}.debug - ${OBJCOPY} --only-keep-debug ${SHLIB_NAME}.debug ${.TARGET} +${SHLIB_NAME}.symbols: ${SHLIB_NAME_FULL} + ${OBJCOPY} --only-keep-debug ${SHLIB_NAME_FULL} ${.TARGET} .endif .endif Index: bsd.prog.mk =================================================================== --- bsd.prog.mk (revision 244883) +++ bsd.prog.mk (working copy) @@ -45,10 +45,11 @@ OBJS+= ${SRCS:N*.h:R:S/$/.o/g} +${PROG}: ${OBJS} .if target(beforelinking) +beforelinking: ${OBJS} ${PROG}: beforelinking .endif -${PROG}: ${OBJS} .if defined(PROG_CXX) ${CXX} ${CXXFLAGS} ${LDFLAGS} -o ${.TARGET} ${OBJS} ${LDADD} .else @@ -74,10 +75,11 @@ # - it's useful to keep objects around for crunching. OBJS= ${PROG}.o +${PROG}: ${OBJS} .if target(beforelinking) +beforelinking: ${OBJS} ${PROG}: beforelinking .endif -${PROG}: ${OBJS} .if defined(PROG_CXX) ${CXX} ${CXXFLAGS} ${LDFLAGS} -o ${.TARGET} ${OBJS} ${LDADD} .else