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.189 retrieving revision 1.202 diff -u -p -r1.189 -r1.202 --- src/share/mk/bsd.lib.mk 2001/11/02 07:25:58 1.189 +++ src/share/mk/bsd.lib.mk 2002/05/07 01:45:45 1.202 @@ -1,4 +1,4 @@ -# $NetBSD: bsd.lib.mk,v 1.189 2001/11/02 07:25:58 simonb Exp $ +# $NetBSD: bsd.lib.mk,v 1.202 2002/05/07 01:45:45 eeh Exp $ # @(#)bsd.lib.mk 8.3 (Berkeley) 4/22/94 .include @@ -9,6 +9,9 @@ realinstall: checkver libinstall clean: cleanlib ##### Build and install rules +CPPFLAGS+= ${DESTDIR:D-nostdinc ${CPPFLAG_ISYSTEM} ${DESTDIR}/usr/include} +CXXFLAGS+= ${DESTDIR:D-nostdinc++ ${CPPFLAG_ISYSTEM} ${DESTDIR}/usr/include/g++} + .if !defined(SHLIB_MAJOR) && exists(${SHLIB_VERSION_FILE}) SHLIB_MAJOR != . ${SHLIB_VERSION_FILE} ; echo $$major SHLIB_MINOR != . ${SHLIB_VERSION_FILE} ; echo $$minor @@ -16,11 +19,11 @@ SHLIB_TEENY != . ${SHLIB_VERSION_FILE} ; # Check for higher installed library versions. .if !defined(NOCHECKVER) && !defined(NOCHECKVER_${LIB}) && \ - exists(${BSDSRCDIR}/lib/checkver) + exists(${NETBSDSRCDIR}/lib/checkver) checkver: @(cd ${.CURDIR} && \ - sh ${BSDSRCDIR}/lib/checkver -v ${SHLIB_VERSION_FILE} \ - -d ${DESTDIR}${LIBDIR} ${LIB}) + sh ${NETBSDSRCDIR}/lib/checkver -v ${SHLIB_VERSION_FILE} \ + -d ${DESTDIR}${_LIBSODIR} ${LIB}) .endif .endif @@ -113,12 +116,13 @@ MKPICLIB= no .elif (${MACHINE_ARCH} == "sparc" || ${MACHINE_ARCH} == "sparc64") && \ ${OBJECT_FMT} == "ELF" - +# If you use -fPIC you need to define BIGPIC to turn on 32-bit +# relocations in asm code FPICFLAGS ?= -fPIC CPICFLAGS ?= -fPIC -DPIC -CPPPICFLAGS?= -DPIC +CPPPICFLAGS?= -DPIC -DBIGPIC CAPICFLAGS?= ${CPPPICFLAGS} ${CPICFLAGS} -APICFLAGS ?= -KPIC +APICFLAGS ?= -KPIC -DBIGPIC .else @@ -332,7 +336,7 @@ ALLOBJS=${POBJS} ${SOBJS} ALLOBJS+=${LOBJS} .endif -.NOPATH: ${ALLOBJS} ${_LIBS} ${SRCS:M*.[ly]:C/..$/.c/} ${YHEADER:D${SRCS:M*.y:.y=.h}} +.NOPATH: ${ALLOBJS} ${_LIBS} ${SRCS:M*.[ly]:C/\..$/.c/} ${YHEADER:D${SRCS:M*.y:.y=.h}} realall: ${SRCS} ${ALLOBJS:O} ${_LIBS} @@ -342,11 +346,13 @@ __archivebuild: .USE ${RANLIB} ${.TARGET} __archiveinstall: .USE - ${INSTALL_FILE} -o ${LIBOWN} -g ${LIBGRP} -m 600 ${.ALLSRC} ${.TARGET} - ${RANLIB} -t ${.TARGET} - chmod ${LIBMODE} ${.TARGET} + ${INSTALL_FILE} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ + ${UPDATE:D:U-a "${RANLIB} -t"} ${.ALLSRC} ${.TARGET} + +__archivesymlinkpic: .USE + ${INSTALL_SYMLINK} ${.ALLSRC} ${.TARGET} -DPSRCS+= ${SRCS:M*.[ly]:C/..$/.c/} +DPSRCS+= ${SRCS:M*.[ly]:C/\..$/.c/} CLEANFILES+= ${DPSRCS} ${YHEADER:D${SRCS:M*.y:.y=.h}} lib${LIB}.a:: ${OBJS} __archivebuild @@ -367,7 +373,8 @@ lib${LIB}.so.${SHLIB_FULLVERSION}: ${SOL ${SHLIB_LDSTARTFILE} \ --whole-archive ${SOLIB} \ --no-whole-archive ${LDADD} \ - -L${DESTDIR}${LIBDIR} -R${LIBDIR} \ + -L${DESTDIR}${_LIBSODIR} -L${DESTDIR}${LIBDIR} \ + -R${_LIBSODIR} -R${LIBDIR} \ ${SHLIB_LDENDFILE} .else $(LD) -x -shared ${SHLIB_SHFLAGS} -o ${.TARGET} \ @@ -376,6 +383,9 @@ lib${LIB}.so.${SHLIB_FULLVERSION}: ${SOL ${SHLIB_LDENDFILE} .endif .if ${OBJECT_FMT} == "ELF" +# We don't use INSTALL_SYMLINK here because this is just +# happening inside the build directory/objdir. XXX Why does +# this spend so much effort on libraries that aren't live??? XXX ln -sf lib${LIB}.so.${SHLIB_FULLVERSION} lib${LIB}.so.${SHLIB_MAJOR}.tmp mv -f lib${LIB}.so.${SHLIB_MAJOR}.tmp lib${LIB}.so.${SHLIB_MAJOR} ln -sf lib${LIB}.so.${SHLIB_FULLVERSION} lib${LIB}.so.tmp @@ -412,89 +422,119 @@ libinstall:: .if ${MKLINKLIB} != "no" libinstall:: ${DESTDIR}${LIBDIR}/lib${LIB}.a .PRECIOUS: ${DESTDIR}${LIBDIR}/lib${LIB}.a + .if !defined(UPDATE) -.PHONY: ${DESTDIR}${LIBDIR}/lib${LIB}.a +.if !defined(BUILD) && !make(all) && !make(lib${LIB}.a) +${DESTDIR}${LIBDIR}/lib${LIB}.a! .MADE .endif - +${DESTDIR}${LIBDIR}/lib${LIB}.a! lib${LIB}.a __archiveinstall +.else .if !defined(BUILD) && !make(all) && !make(lib${LIB}.a) ${DESTDIR}${LIBDIR}/lib${LIB}.a: .MADE .endif ${DESTDIR}${LIBDIR}/lib${LIB}.a: lib${LIB}.a __archiveinstall .endif +.endif .if ${MKPROFILE} != "no" libinstall:: ${DESTDIR}${LIBDIR}/lib${LIB}_p.a .PRECIOUS: ${DESTDIR}${LIBDIR}/lib${LIB}_p.a + .if !defined(UPDATE) -.PHONY: ${DESTDIR}${LIBDIR}/lib${LIB}_p.a +.if !defined(BUILD) && !make(all) && !make(lib${LIB}_p.a) +${DESTDIR}${LIBDIR}/lib${LIB}_p.a! .MADE .endif - +${DESTDIR}${LIBDIR}/lib${LIB}_p.a! lib${LIB}_p.a __archiveinstall +.else .if !defined(BUILD) && !make(all) && !make(lib${LIB}_p.a) ${DESTDIR}${LIBDIR}/lib${LIB}_p.a: .MADE .endif ${DESTDIR}${LIBDIR}/lib${LIB}_p.a: lib${LIB}_p.a __archiveinstall .endif +.endif .if ${MKPIC} != "no" && ${MKPICINSTALL} != "no" libinstall:: ${DESTDIR}${LIBDIR}/lib${LIB}_pic.a .PRECIOUS: ${DESTDIR}${LIBDIR}/lib${LIB}_pic.a + .if !defined(UPDATE) -.PHONY: ${DESTDIR}${LIBDIR}/lib${LIB}_pic.a +.if !defined(BUILD) && !make(all) && !make(lib${LIB}_pic.a) +${DESTDIR}${LIBDIR}/lib${LIB}_pic.a! .MADE .endif - +.if ${MKPICLIB} == "no" +${DESTDIR}${LIBDIR}/lib${LIB}_pic.a! lib${LIB}.a __archivesymlinkpic +.else +${DESTDIR}${LIBDIR}/lib${LIB}_pic.a! lib${LIB}_pic.a __archiveinstall +.endif +.else .if !defined(BUILD) && !make(all) && !make(lib${LIB}_pic.a) ${DESTDIR}${LIBDIR}/lib${LIB}_pic.a: .MADE .endif .if ${MKPICLIB} == "no" -${DESTDIR}${LIBDIR}/lib${LIB}_pic.a: - rm -f ${DESTDIR}${LIBDIR}/lib${LIB}_pic.a - ln -s lib${LIB}.a ${DESTDIR}${LIBDIR}/lib${LIB}_pic.a +${DESTDIR}${LIBDIR}/lib${LIB}_pic.a: lib${LIB}.a __archivesymlinkpic .else ${DESTDIR}${LIBDIR}/lib${LIB}_pic.a: lib${LIB}_pic.a __archiveinstall .endif .endif +.endif .if ${MKPIC} != "no" && defined(SHLIB_FULLVERSION) -libinstall:: ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_FULLVERSION} -.PRECIOUS: ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_FULLVERSION} +libinstall:: ${DESTDIR}${_LIBSODIR}/lib${LIB}.so.${SHLIB_FULLVERSION} +.PRECIOUS: ${DESTDIR}${_LIBSODIR}/lib${LIB}.so.${SHLIB_FULLVERSION} + .if !defined(UPDATE) -.PHONY: ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_FULLVERSION} +.if !defined(BUILD) && !make(all) && !make(lib${LIB}.so.${SHLIB_FULLVERSION}) +${DESTDIR}${_LIBSODIR}/lib${LIB}.so.${SHLIB_FULLVERSION}! .MADE .endif - +${DESTDIR}${_LIBSODIR}/lib${LIB}.so.${SHLIB_FULLVERSION}! lib${LIB}.so.${SHLIB_FULLVERSION} +.else .if !defined(BUILD) && !make(all) && !make(lib${LIB}.so.${SHLIB_FULLVERSION}) -${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_FULLVERSION}: .MADE +${DESTDIR}${_LIBSODIR}/lib${LIB}.so.${SHLIB_FULLVERSION}: .MADE +.endif +${DESTDIR}${_LIBSODIR}/lib${LIB}.so.${SHLIB_FULLVERSION}: lib${LIB}.so.${SHLIB_FULLVERSION} .endif -${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_FULLVERSION}: lib${LIB}.so.${SHLIB_FULLVERSION} ${INSTALL_FILE} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ ${.ALLSRC} ${.TARGET} +.if ${_LIBSODIR} != ${LIBDIR} + ${INSTALL_SYMLINK} ${_LIBSODIR}/lib${LIB}.so.${SHLIB_FULLVERSION} \ + ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_FULLVERSION} +.endif .if ${OBJECT_FMT} == "a.out" && !defined(DESTDIR) - /sbin/ldconfig -m ${LIBDIR} + /sbin/ldconfig -m ${_LIBSODIR} ${LIBDIR} .endif .if ${OBJECT_FMT} == "ELF" - ln -sf lib${LIB}.so.${SHLIB_FULLVERSION}\ - ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_MAJOR}.tmp - mv -f ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_MAJOR}.tmp\ + ${INSTALL_SYMLINK} lib${LIB}.so.${SHLIB_FULLVERSION} \ + ${DESTDIR}${_LIBSODIR}/lib${LIB}.so.${SHLIB_MAJOR} +.if ${_LIBSODIR} != ${LIBDIR} + ${INSTALL_SYMLINK} ${_LIBSODIR}/lib${LIB}.so.${SHLIB_FULLVERSION} \ ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_MAJOR} +.endif .if ${MKLINKLIB} != "no" - ln -sf lib${LIB}.so.${SHLIB_FULLVERSION}\ - ${DESTDIR}${LIBDIR}/lib${LIB}.so.tmp - mv -f ${DESTDIR}${LIBDIR}/lib${LIB}.so.tmp\ + ${INSTALL_SYMLINK} lib${LIB}.so.${SHLIB_FULLVERSION} \ + ${DESTDIR}${_LIBSODIR}/lib${LIB}.so +.if ${_LIBSODIR} != ${LIBDIR} + ${INSTALL_SYMLINK} ${_LIBSODIR}/lib${LIB}.so.${SHLIB_FULLVERSION} \ ${DESTDIR}${LIBDIR}/lib${LIB}.so .endif .endif .endif +.endif .if ${MKLINT} != "no" && ${MKLINKLIB} != "no" && !empty(LOBJS) libinstall:: ${DESTDIR}${LINTLIBDIR}/llib-l${LIB}.ln .PRECIOUS: ${DESTDIR}${LINTLIBDIR}/llib-l${LIB}.ln + .if !defined(UPDATE) -.PHONY: ${DESTDIR}${LINTLIBDIR}/llib-l${LIB}.ln +.if !defined(BUILD) && !make(all) && !make(llib-l${LIB}.ln) +${DESTDIR}${LINTLIBDIR}/llib-l${LIB}.ln! .MADE .endif - +${DESTDIR}${LINTLIBDIR}/llib-l${LIB}.ln! llib-l${LIB}.ln +.else .if !defined(BUILD) && !make(all) && !make(llib-l${LIB}.ln) ${DESTDIR}${LINTLIBDIR}/llib-l${LIB}.ln: .MADE .endif ${DESTDIR}${LINTLIBDIR}/llib-l${LIB}.ln: llib-l${LIB}.ln +.endif ${INSTALL_FILE} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ ${.ALLSRC} ${DESTDIR}${LINTLIBDIR} .endif