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.295 retrieving revision 1.302 diff -u -p -r1.295 -r1.302 --- src/share/mk/bsd.lib.mk 2009/01/17 12:09:58 1.295 +++ src/share/mk/bsd.lib.mk 2009/12/30 12:34:13 1.302 @@ -1,4 +1,4 @@ -# $NetBSD: bsd.lib.mk,v 1.295 2009/01/17 12:09:58 he Exp $ +# $NetBSD: bsd.lib.mk,v 1.302 2009/12/30 12:34:13 abs Exp $ # @(#)bsd.lib.mk 8.3 (Berkeley) 4/22/94 .include @@ -47,13 +47,6 @@ clean: cleanlib CFLAGS+= ${PIE_CFLAGS} AFLAGS+= ${PIE_AFLAGS} .endif -COPTS+= ${COPTS.lib${LIB}} -CPPFLAGS+= ${CPPFLAGS.lib${LIB}} -CXXFLAGS+= ${CXXFLAGS.lib${LIB}} -OBJCOPTS+= ${OBJCOPTS.lib${LIB}} -LDADD+= ${LDADD.lib${LIB}} -LDFLAGS+= ${LDFLAGS.lib${LIB}} -LDSTATIC+= ${LDSTATIC.lib${LIB}} ##### Libraries that this may depend upon. .if defined(LIBDPLIBS) && ${MKPIC} != "no" # { @@ -72,9 +65,13 @@ MKDEP_SUFFIXES?= .o .po .so .go .ln # Use purely kernel private headers in rump builds .if !defined(RUMPKERNEL) +.if empty(CPPFLAGS:M-nostdinc) CPPFLAGS+= ${DESTDIR:D-nostdinc ${CPPFLAG_ISYSTEM} ${DESTDIR}/usr/include} +.endif +.if empty(CXXFLAGS:M-nostdinc++) CXXFLAGS+= ${DESTDIR:D-nostdinc++ ${CPPFLAG_ISYSTEMXX} ${DESTDIR}/usr/include/g++} .endif +.endif .if !defined(SHLIB_MAJOR) && exists(${SHLIB_VERSION_FILE}) # { SHLIB_MAJOR != . ${SHLIB_VERSION_FILE} ; echo $$major @@ -144,6 +141,8 @@ SHLIB_FULLVERSION=${SHLIB_MAJOR} # Data-driven table using make variables to control how shared libraries # are built for different platforms and object formats. # OBJECT_FMT: currently either "ELF" or "a.out", from +# SHLIB_MAJOR, SHLIB_MINOR, SHLIB_TEENY: Major, minor, and teeny version +# numbers of shared library # SHLIB_SOVERSION: version number to be compiled into a shared library # via -soname. Usualy ${SHLIB_MAJOR} on ELF. # NetBSD/pmax used to use ${SHLIB_MAJOR}[.${SHLIB_MINOR} @@ -208,8 +207,8 @@ MKSHLIBOBJS= no SHLIB_SOVERSION= ${SHLIB_MAJOR} SHLIB_SHFLAGS= -Wl,-soname,${_LIB_PREFIX}${LIB}.so.${SHLIB_SOVERSION} SHLIB_SHFLAGS+= -Wl,--warn-shared-textrel -SHLIB_LDSTARTFILE?= ${DESTDIR}/usr/lib/crti.o ${_GCC_CRTBEGINS} -SHLIB_LDENDFILE?= ${_GCC_CRTENDS} ${DESTDIR}/usr/lib/crtn.o +SHLIB_LDSTARTFILE?= ${_GCC_CRTDIR}/crti.o ${_GCC_CRTBEGINS} +SHLIB_LDENDFILE?= ${_GCC_CRTENDS} ${_GCC_CRTDIR}/crtn.o .endif CFLAGS+= ${COPTS} @@ -438,21 +437,32 @@ _YLSRCS= ${SRCS:M*.[ly]:C/\..$/.c/} ${YH realall: ${SRCS} ${ALLOBJS:O} ${_LIBS} +MKARZERO?=no + +.if ${MKARZERO} == "yes" +_ARFL=crsD +_ARRANFL=sD +_INSTRANLIB= +.else +_ARFL=crs +_ARRANFL=s +_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 @@ -507,21 +517,24 @@ LIBCC:= ${CXX} LIBCC:= ${CC} .endif +_LDADD.lib${LIB}= ${LDADD} ${LDADD.lib${LIB}} +_LDFLAGS.lib${LIB}= ${LDFLAGS} ${LDFLAGS.lib${LIB}} + lib${LIB}.so.${SHLIB_FULLVERSION}: ${SOLIB} ${DPADD} ${DPLIBC} \ ${SHLIB_LDSTARTFILE} ${SHLIB_LDENDFILE} ${_MKTARGET_BUILD} rm -f lib${LIB}.so.${SHLIB_FULLVERSION} .if defined(DESTDIR) - ${LIBCC} ${LDLIBC} -Wl,-nostdlib -B${_GCC_CRTDIR}/ -B${DESTDIR}/usr/lib/ \ + ${LIBCC} ${LDLIBC} -Wl,-nostdlib -B${_GCC_CRTDIR}/ -B${DESTDIR}${SHLIBDIR}/ \ -Wl,-x -shared ${SHLIB_SHFLAGS} -o ${.TARGET} \ -Wl,--whole-archive ${SOLIB} \ - -Wl,--no-whole-archive ${LDADD} \ - ${_LIBLDOPTS} ${LDFLAGS} \ + -Wl,--no-whole-archive ${_LDADD.lib${LIB}} \ + ${_LIBLDOPTS} ${_LDFLAGS.lib${LIB}} \ -L${_GCC_LIBGCCDIR} .else - ${LIBCC} ${LDLIBC} -Wl,-x -shared ${SHLIB_SHFLAGS} ${LDFLAGS} \ + ${LIBCC} ${LDLIBC} -Wl,-x -shared ${SHLIB_SHFLAGS} ${_LDFLAGS.lib${LIB}} \ -o ${.TARGET} ${_LIBLDOPTS} \ - -Wl,--whole-archive ${SOLIB} -Wl,--no-whole-archive ${LDADD} + -Wl,--whole-archive ${SOLIB} -Wl,--no-whole-archive ${_LDADD.lib${LIB}} .endif .if ${OBJECT_FMT} == "ELF" # We don't use INSTALL_SYMLINK here because this is just @@ -722,6 +735,9 @@ ${DESTDIR}${LINTLIBDIR}/llib-l${LIB}.ln: .endif # !target(libinstall) # } ##### Pull in related .mk logic +LINKSOWN?= ${LIBOWN} +LINKSGRP?= ${LIBGRP} +LINKSMODE?= ${LIBMODE} .include .include .include