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.103 retrieving revision 1.112 diff -u -p -r1.103 -r1.112 --- src/share/mk/bsd.lib.mk 1997/05/09 13:25:53 1.103 +++ src/share/mk/bsd.lib.mk 1997/05/28 11:16:19 1.112 @@ -1,4 +1,4 @@ -# $NetBSD: bsd.lib.mk,v 1.103 1997/05/09 13:25:53 mycroft Exp $ +# $NetBSD: bsd.lib.mk,v 1.112 1997/05/28 11:16:19 veego Exp $ # @(#)bsd.lib.mk 8.3 (Berkeley) 4/22/94 .if exists(${.CURDIR}/../Makefile.inc) @@ -20,7 +20,7 @@ SHLIB_MINOR != . ${.CURDIR}/shlib_versio # add additional suffixes not exported. # .po is used for profiling object files. # .so is used for PIC object files. -.SUFFIXES: .out .a .ln .so .po .o .c .cc .C .F .f .r .y .l .s .S .cl .p .h .sh .m4 +.SUFFIXES: .out .a .ln .so .po .o .s .S .c .cc .C .F .f .r .y .l .cl .p .h .sh .m4 # Set PICFLAGS to cc flags for producing position-independent code, @@ -34,17 +34,22 @@ SHLIB_MINOR != . ${.CURDIR}/shlib_versio # NetBSD/pmax used to use ${SHLIB_MAJOR}.{SHLIB-MINOR}. # SHLIB_LDSTARTFILE: ??? # SHLIB_LDENDTILE: ?? -# CPICFLAGS: flags to compile .c files for .so objects. -# APICFLAGS: flags to assemble .S files for .so objects. +# CPPICFLAGS: flags for ${CPP} to preprocess .[sS] files for ${AS} +# CPICFLAGS: flags for ${CC} to compile .[cC] files to .so objects. +# CAPICFLAGS flags for {$CC} to compiling .[Ss] files +# (usually just ${CPPPICFLAGS} ${CPICFLAGS}) +# APICFLAGS: flags for ${AS} to assemble .[sS] to .so objects. .if (${MACHINE_ARCH} == "alpha") SHLIB_TYPE=ELF -SHLIB_LDSTARTFILE= ${DESTDIR}/usr/lib/crtbeginS.o -SHLIB_LDENDFILE= ${DESTDIR}/usr/lib/crtendS.o +SHLIB_LDSTARTFILE= ${BUILDDIR}/usr/lib/crtbeginS.o +SHLIB_LDENDFILE= ${BUILDDIR}/usr/lib/crtendS.o SHLIB_SOVERSION=${SHLIB_MAJOR} CPICFLAGS ?= -fpic -DPIC -APICFLAGS ?= -DPIC +CPPPICFLAGS?= -DPIC +CAPICFLAGS?= ${CPPPICFLAGS} ${CPICFLAGS} +APICFLAGS ?= .elif (${MACHINE_ARCH} == "mips") @@ -72,8 +77,10 @@ SHLIB_TYPE=a.out SHLIB_LDSTARTFILE= SHLIB_LDENDFILE= SHLIB_SOVERSION=${SHLIB_MAJOR}.${SHLIB_MINOR} -CPICFLAGS?= -fpic -DPIC -APICFLAGS?= -fpic -DPIC +CPICFLAGS?= -fpic +CPPPICFLAGS?= -DPIC +CAPICFLAGS?= ${CPPPICFLAGS} ${CPICFLAGS} +APICFLAGS?= -k .endif @@ -132,8 +139,8 @@ CFLAGS+= ${COPTS} @rm -f ${.TARGET}.o .S.so .s.so: - @echo ${COMPILE.S:Q} ${APICFLAGS} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET} - @${COMPILE.S} ${APICFLAGS} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET}.o + @echo ${COMPILE.S:Q} ${CAPICFLAGS} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET} + @${COMPILE.S} ${CAPICFLAGS} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET}.o @${LD} -x -r ${.TARGET}.o -o ${.TARGET} @rm -f ${.TARGET}.o @@ -168,20 +175,41 @@ __archiveinstall: .USE ${RANLIB} -t ${.TARGET} chmod ${LIBMODE} ${.TARGET} -DPSRCS+= ${SRCS:M*.[ly]:.l=.c:.y=.c} +DPSRCS+= ${SRCS:M*.l:.l=.c} ${SRCS:M*.y:.y=.c} CLEANFILES+= ${DPSRCS} OBJS+= ${SRCS:N*.h:N*.sh:R:S/$/.o/g} lib${LIB}.a:: ${OBJS} __archivebuild @echo building standard ${LIB} library +.if defined(OBJDIR) + @echo install -d ${BUILDDIR}${LIBDIR} + @install -d ${BUILDDIR}${LIBDIR} + @echo ${BUILDDIR}${LIBDIR}/${.TARGET} '->' `pwd`/${.TARGET}; + @rm -f ${BUILDDIR}${LIBDIR}/${.TARGET}; + @ln -s `pwd`/${.TARGET} ${BUILDDIR}${LIBDIR}/${.TARGET}; +.endif POBJS+= ${OBJS:.o=.po} lib${LIB}_p.a:: ${POBJS} __archivebuild @echo building profiled ${LIB} library +.if defined(OBJDIR) + @echo install -d ${BUILDDIR}${LIBDIR} + @install -d ${BUILDDIR}${LIBDIR} + @echo ${BUILDDIR}${LIBDIR}/${.TARGET} '->' `pwd`/${.TARGET}; + @rm -f ${BUILDDIR}${LIBDIR}/${.TARGET}; + @ln -s `pwd`/${.TARGET} ${BUILDDIR}${LIBDIR}/${.TARGET}; +.endif SOBJS+= ${OBJS:.o=.so} lib${LIB}_pic.a:: ${SOBJS} __archivebuild @echo building shared object ${LIB} library +.if defined(OBJDIR) + @echo install -d ${BUILDDIR}${LIBDIR} + @install -d ${BUILDDIR}${LIBDIR} + @echo ${BUILDDIR}${LIBDIR}/${.TARGET} '->' `pwd`/${.TARGET}; + @rm -f ${BUILDDIR}${LIBDIR}/${.TARGET}; + @ln -s `pwd`/${.TARGET} ${BUILDDIR}${LIBDIR}/${.TARGET}; +.endif lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}: lib${LIB}_pic.a ${DPADD} \ ${SHLIB_LDSTARTFILE} ${SHLIB_LDENDFILE} @@ -189,13 +217,28 @@ lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINO @rm -f lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} .if (${SHLIB_TYPE} == "a.out") $(LD) -x -Bshareable -Bforcearchive \ - -o ${.TARGET} lib${LIB}_pic.a ${LDADD} + -o ${.TARGET} lib${LIB}_pic.a -nostdlib -L${BUILDDIR}/usr/lib ${LDADD} .elif (${SHLIB_TYPE} == "ELF") $(LD) -x -shared -o ${.TARGET} \ -soname lib${LIB}.so.${SHLIB_SOVERSION} ${SHLIB_LDSTARTFILE} \ - --whole-archive lib${LIB}_pic.a --no-whole-archive ${LDADD} \ - ${SHLIB_LDENDFILE} + --whole-archive lib${LIB}_pic.a --no-whole-archive -nostdlib \ + -L${BUILDDIR}/usr/lib ${LDADD} ${SHLIB_LDENDFILE} .endif +.if defined(OBJDIR) + @echo install -d ${BUILDDIR}${LIBDIR} + @install -d ${BUILDDIR}${LIBDIR} + @echo ${BUILDDIR}${LIBDIR}/${.TARGET} '->' `pwd`/${.TARGET}; + @rm -f ${BUILDDIR}${LIBDIR}/${.TARGET}; + @ln -s `pwd`/${.TARGET} ${BUILDDIR}${LIBDIR}/${.TARGET}; +.if (${SHLIB_TYPE} == "ELF") + rm -f ${BUILDDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_MAJOR} + ln -s lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ + ${BUILDDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_MAJOR} + rm -f ${BUILDDIR}${LIBDIR}/lib${LIB}.so + ln -s lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ + ${BUILDDIR}${LIBDIR}/lib${LIB}.so +.endif # SHLIB_TYPE == ELF +.endif # defined(OBJDIR) LOBJS+= ${LSRCS:.c=.ln} ${SRCS:M*.c:.c=.ln} LLIBS?= -lc @@ -305,9 +348,9 @@ ${DESTDIR}${LINTLIBDIR}/llib-l${LIB}.ln: .endif .include -.include .include .include +.include .include .include .include