Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. =================================================================== RCS file: /ftp/cvs/cvsroot/src/share/mk/bsd.lib.mk,v rcsdiff: /ftp/cvs/cvsroot/src/share/mk/bsd.lib.mk,v: warning: Unknown phrases like `commitid ...;' are present. retrieving revision 1.288 retrieving revision 1.296 diff -u -p -r1.288 -r1.296 --- src/share/mk/bsd.lib.mk 2008/10/19 15:22:50 1.288 +++ src/share/mk/bsd.lib.mk 2009/03/13 16:23:31 1.296 @@ -1,4 +1,4 @@ -# $NetBSD: bsd.lib.mk,v 1.288 2008/10/19 15:22:50 christos Exp $ +# $NetBSD: bsd.lib.mk,v 1.296 2009/03/13 16:23:31 perry Exp $ # @(#)bsd.lib.mk 8.3 (Berkeley) 4/22/94 .include @@ -9,6 +9,7 @@ LIBISMODULE?= no LIBISPRIVATE?= no +LIBISCXX?= no _LIB_PREFIX= lib @@ -24,7 +25,12 @@ MKSTATICLIB:= no .if ${LIBISPRIVATE} != "no" MKDEBUGLIB:= no MKLINT:= no +MKPICINSTALL:= no +. if defined(NOSTATICLIB) && ${MKPICLIB} != "no" +MKSTATICLIB:= no +. else MKPIC:= no +. endif MKPROFILE:= no .endif @@ -63,19 +69,26 @@ DPADD+= ${LIBDO.${_lib}}/lib${_lib}.so ##### Build and install rules MKDEP_SUFFIXES?= .o .po .so .go .ln + +# Use purely kernel private headers in rump builds +.if !defined(RUMPKERNEL) CPPFLAGS+= ${DESTDIR:D-nostdinc ${CPPFLAG_ISYSTEM} ${DESTDIR}/usr/include} CXXFLAGS+= ${DESTDIR:D-nostdinc++ ${CPPFLAG_ISYSTEMXX} ${DESTDIR}/usr/include/g++} +.endif .if !defined(SHLIB_MAJOR) && exists(${SHLIB_VERSION_FILE}) # { SHLIB_MAJOR != . ${SHLIB_VERSION_FILE} ; echo $$major SHLIB_MINOR != . ${SHLIB_VERSION_FILE} ; echo $$minor SHLIB_TEENY != . ${SHLIB_VERSION_FILE} ; echo $$teeny +DPADD+= ${SHLIB_VERSION_FILE} + # Check for higher installed library versions. .if !defined(NOCHECKVER) && !defined(NOCHECKVER_${LIB}) && \ exists(${NETBSDSRCDIR}/lib/checkver) checkver: @(cd ${.CURDIR} && \ + HOST_SH=${HOST_SH:Q} AWK=${TOOL_AWK:Q} \ ${HOST_SH} ${NETBSDSRCDIR}/lib/checkver -v ${SHLIB_VERSION_FILE} \ -d ${DESTDIR}${_LIBSODIR} ${LIB}) .endif @@ -366,7 +379,7 @@ LOBJS+=${LSRCS:.c=.ln} ${SRCS:M*.c:.c=.l .if ${LIBISPRIVATE} != "no" # No installation is required libinstall:: -.else # ${LIBISPRIVATE} == "no" # { +.endif # ${LIBISPRIVATE} == "no" # { .if ${MKDEBUGLIB} != "no" _LIBS+=lib${LIB}_g.a @@ -405,8 +418,6 @@ _LIBS+=lib${LIB}.so.${SHLIB_FULLVERSION} _LIBS+=llib-l${LIB}.ln .endif -.endif # ${LIBISPRIVATE} == "no" # } - ALLOBJS= .if (${MKPIC} == "no" || (defined(LDSTATIC) && ${LDSTATIC} != "") \ || ${MKLINKLIB} != "no") && ${MKSTATICLIB} != "no" @@ -427,19 +438,30 @@ _YLSRCS= ${SRCS:M*.[ly]:C/\..$/.c/} ${YH realall: ${SRCS} ${ALLOBJS:O} ${_LIBS} +MKARZERO?=no + +.if ${MKARZERO} == "yes" +_ARFL=crsD +_INSTRANLIB= +.else +_ARFL=crs +_INSTRANLIB=${empty(PRESERVE):?-a "${RANLIB} -t":} +.endif + +# If you change this, please consider reflecting the change in +# the override in sys/rump/Makefile.rump. .if !target(__archivebuild) __archivebuild: .USE ${_MKTARGET_BUILD} rm -f ${.TARGET} - ${AR} cq ${.TARGET} `NM=${NM} ${LORDER} ${.ALLSRC:M*o} | ${TSORT}` - ${RANLIB} ${.TARGET} + ${AR} ${_ARFL} ${.TARGET} `NM=${NM} ${LORDER} ${.ALLSRC:M*o} | ${TSORT}` .endif .if !target(__archiveinstall) __archiveinstall: .USE ${_MKTARGET_INSTALL} ${INSTALL_FILE} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ - ${empty(PRESERVE):?-a "${RANLIB} -t":} ${.ALLSRC} ${.TARGET} + ${_INSTRANLIB} ${.ALLSRC} ${.TARGET} .endif __archivesymlinkpic: .USE @@ -488,19 +510,25 @@ LDADD+= -lgcc_pic .endif .endif +.if ${LIBISCXX} != "no" +LIBCC:= ${CXX} +.else +LIBCC:= ${CC} +.endif + lib${LIB}.so.${SHLIB_FULLVERSION}: ${SOLIB} ${DPADD} ${DPLIBC} \ ${SHLIB_LDSTARTFILE} ${SHLIB_LDENDFILE} ${_MKTARGET_BUILD} rm -f lib${LIB}.so.${SHLIB_FULLVERSION} .if defined(DESTDIR) - ${CC} ${LDLIBC} -Wl,-nostdlib -B${_GCC_CRTDIR}/ -B${DESTDIR}/usr/lib/ \ - ${_LIBLDOPTS} \ - -Wl,-x -shared ${SHLIB_SHFLAGS} ${LDFLAGS} -o ${.TARGET} \ + ${LIBCC} ${LDLIBC} -Wl,-nostdlib -B${_GCC_CRTDIR}/ -B${DESTDIR}/usr/lib/ \ + -Wl,-x -shared ${SHLIB_SHFLAGS} -o ${.TARGET} \ -Wl,--whole-archive ${SOLIB} \ -Wl,--no-whole-archive ${LDADD} \ + ${_LIBLDOPTS} ${LDFLAGS} \ -L${_GCC_LIBGCCDIR} .else - ${CC} ${LDLIBC} -Wl,-x -shared ${SHLIB_SHFLAGS} ${LDFLAGS} \ + ${LIBCC} ${LDLIBC} -Wl,-x -shared ${SHLIB_SHFLAGS} ${LDFLAGS} \ -o ${.TARGET} ${_LIBLDOPTS} \ -Wl,--whole-archive ${SOLIB} -Wl,--no-whole-archive ${LDADD} .endif