| version 1.307, 2010/04/27 14:32:14 |
version 1.308, 2010/07/06 05:59:56 |
| Line 140 SHLIB_FULLVERSION=${SHLIB_MAJOR} |
|
| Line 140 SHLIB_FULLVERSION=${SHLIB_MAJOR} |
|
| |
|
| # Data-driven table using make variables to control how shared libraries |
# Data-driven table using make variables to control how shared libraries |
| # are built for different platforms and object formats. |
# are built for different platforms and object formats. |
| # OBJECT_FMT: currently either "ELF" or "a.out", from <bsd.own.mk> |
|
| # SHLIB_MAJOR, SHLIB_MINOR, SHLIB_TEENY: Major, minor, and teeny version |
# SHLIB_MAJOR, SHLIB_MINOR, SHLIB_TEENY: Major, minor, and teeny version |
| # numbers of shared library |
# numbers of shared library |
| # SHLIB_SOVERSION: version number to be compiled into a shared library |
# SHLIB_SOVERSION: version number to be compiled into a shared library |
| Line 168 CPPPICFLAGS?= -DPIC |
|
| Line 167 CPPPICFLAGS?= -DPIC |
|
| CAPICFLAGS?= ${CPPPICFLAGS} ${CPICFLAGS} |
CAPICFLAGS?= ${CPPPICFLAGS} ${CPICFLAGS} |
| APICFLAGS ?= |
APICFLAGS ?= |
| |
|
| .elif (${MACHINE_ARCH} == "sparc" || ${MACHINE_ARCH} == "sparc64") && \ |
.elif (${MACHINE_ARCH} == "sparc" || ${MACHINE_ARCH} == "sparc64") # } { |
| ${OBJECT_FMT} == "ELF" # } { |
|
| |
|
| # If you use -fPIC you need to define BIGPIC to turn on 32-bit |
# If you use -fPIC you need to define BIGPIC to turn on 32-bit |
| # relocations in asm code |
# relocations in asm code |
|
|
| .endif |
.endif |
| |
|
| # Platform-independent linker flags for ELF shared libraries |
# Platform-independent linker flags for ELF shared libraries |
| .if ${OBJECT_FMT} == "ELF" |
|
| SHLIB_SOVERSION= ${SHLIB_MAJOR} |
SHLIB_SOVERSION= ${SHLIB_MAJOR} |
| SHLIB_SHFLAGS= -Wl,-soname,${_LIB_PREFIX}${LIB}.so.${SHLIB_SOVERSION} |
SHLIB_SHFLAGS= -Wl,-soname,${_LIB_PREFIX}${LIB}.so.${SHLIB_SOVERSION} |
| SHLIB_SHFLAGS+= -Wl,--warn-shared-textrel |
SHLIB_SHFLAGS+= -Wl,--warn-shared-textrel |
| SHLIB_LDSTARTFILE?= ${_GCC_CRTDIR}/crti.o ${_GCC_CRTBEGINS} |
SHLIB_LDSTARTFILE?= ${_GCC_CRTDIR}/crti.o ${_GCC_CRTBEGINS} |
| SHLIB_LDENDFILE?= ${_GCC_CRTENDS} ${_GCC_CRTDIR}/crtn.o |
SHLIB_LDENDFILE?= ${_GCC_CRTENDS} ${_GCC_CRTDIR}/crtn.o |
| .endif |
|
| |
|
| CFLAGS+= ${COPTS} |
CFLAGS+= ${COPTS} |
| OBJCFLAGS+= ${OBJCOPTS} |
OBJCFLAGS+= ${OBJCOPTS} |
| Line 446 SOBJS+=${OBJS:.o=.pico} |
|
| Line 442 SOBJS+=${OBJS:.o=.pico} |
|
| .endif |
.endif |
| .if defined(SHLIB_FULLVERSION) |
.if defined(SHLIB_FULLVERSION) |
| _LIB.so:=lib${LIB}.so.${SHLIB_FULLVERSION} |
_LIB.so:=lib${LIB}.so.${SHLIB_FULLVERSION} |
| .if ${MKDEBUG} != "no" && ${OBJECT_FMT} == "ELF" |
.if ${MKDEBUG} != "no" |
| _LIB.debug:=${_LIB.so}.debug |
_LIB.debug:=${_LIB.so}.debug |
| .endif |
.endif |
| _LIBS+=lib${LIB}.so.${SHLIB_FULLVERSION} |
_LIBS+=lib${LIB}.so.${SHLIB_FULLVERSION} |
| Line 576 lib${LIB}.so.${SHLIB_FULLVERSION}: ${SOL |
|
| Line 572 lib${LIB}.so.${SHLIB_FULLVERSION}: ${SOL |
|
| -o ${.TARGET} ${_LIBLDOPTS} \ |
-o ${.TARGET} ${_LIBLDOPTS} \ |
| -Wl,--whole-archive ${SOLIB} -Wl,--no-whole-archive ${_LDADD.lib${LIB}} |
-Wl,--whole-archive ${SOLIB} -Wl,--no-whole-archive ${_LDADD.lib${LIB}} |
| .endif |
.endif |
| .if ${OBJECT_FMT} == "ELF" |
|
| # We don't use INSTALL_SYMLINK here because this is just |
# We don't use INSTALL_SYMLINK here because this is just |
| # happening inside the build directory/objdir. XXX Why does |
# happening inside the build directory/objdir. XXX Why does |
| # this spend so much effort on libraries that aren't live??? XXX |
# this spend so much effort on libraries that aren't live??? XXX |
| Line 587 lib${LIB}.so.${SHLIB_FULLVERSION}: ${SOL |
|
| Line 582 lib${LIB}.so.${SHLIB_FULLVERSION}: ${SOL |
|
| .endif |
.endif |
| ${HOST_LN} -sf lib${LIB}.so.${SHLIB_FULLVERSION} lib${LIB}.so.tmp |
${HOST_LN} -sf lib${LIB}.so.${SHLIB_FULLVERSION} lib${LIB}.so.tmp |
| mv -f lib${LIB}.so.tmp lib${LIB}.so |
mv -f lib${LIB}.so.tmp lib${LIB}.so |
| .endif |
|
| .if ${MKSTRIPIDENT} != "no" |
.if ${MKSTRIPIDENT} != "no" |
| ${OBJCOPY} -R .ident ${.TARGET} |
${OBJCOPY} -R .ident ${.TARGET} |
| .endif |
.endif |
| Line 734 ${_LIB_SO_TGT}.${SHLIB_FULLVERSION}: lib |
|
| Line 728 ${_LIB_SO_TGT}.${SHLIB_FULLVERSION}: lib |
|
| ${_LIB_SO_TGT}.${SHLIB_FULLVERSION} \ |
${_LIB_SO_TGT}.${SHLIB_FULLVERSION} \ |
| ${_LIB_SO_TGTLIBDIR}.${SHLIB_FULLVERSION} |
${_LIB_SO_TGTLIBDIR}.${SHLIB_FULLVERSION} |
| .endif |
.endif |
| .if ${OBJECT_FMT} == "a.out" && !defined(DESTDIR) |
|
| /sbin/ldconfig -m ${_LIBSODIR} ${LIBDIR} |
|
| .endif |
|
| .if ${OBJECT_FMT} == "ELF" |
|
| .if defined(SHLIB_FULLVERSION) && defined(SHLIB_MAJOR) && \ |
.if defined(SHLIB_FULLVERSION) && defined(SHLIB_MAJOR) && \ |
| "${SHLIB_FULLVERSION}" != "${SHLIB_MAJOR}" |
"${SHLIB_FULLVERSION}" != "${SHLIB_MAJOR}" |
| ${INSTALL_SYMLINK} \ |
${INSTALL_SYMLINK} \ |
| Line 760 ${_LIB_SO_TGT}.${SHLIB_FULLVERSION}: lib |
|
| Line 750 ${_LIB_SO_TGT}.${SHLIB_FULLVERSION}: lib |
|
| .endif |
.endif |
| .endif |
.endif |
| .endif |
.endif |
| .endif |
|
| |
|
| .if defined(_LIB.debug) |
.if defined(_LIB.debug) |
| libinstall:: ${DESTDIR}${DEBUGDIR}${LIBDIR}/${_LIB.debug} |
libinstall:: ${DESTDIR}${DEBUGDIR}${LIBDIR}/${_LIB.debug} |