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.prog.mk,v rcsdiff: /ftp/cvs/cvsroot/src/share/mk/bsd.prog.mk,v: warning: Unknown phrases like `commitid ...;' are present. retrieving revision 1.268 retrieving revision 1.273 diff -u -p -r1.268 -r1.273 --- src/share/mk/bsd.prog.mk 2011/10/16 01:14:33 1.268 +++ src/share/mk/bsd.prog.mk 2012/02/21 01:41:09 1.273 @@ -1,4 +1,4 @@ -# $NetBSD: bsd.prog.mk,v 1.268 2011/10/16 01:14:33 christos Exp $ +# $NetBSD: bsd.prog.mk,v 1.273 2012/02/21 01:41:09 matt Exp $ # @(#)bsd.prog.mk 8.2 (Berkeley) 4/2/94 .ifndef HOSTPROG @@ -80,10 +80,13 @@ LIBCRT0= ${DESTDIR}/usr/lib/crt0.o # LIBC?=${DESTDIR}/usr/lib/libc.a # LIBX11?=${DESTDIR}/usr/X11R7/lib/libX11.a # etc.. +# NB: If you are a library here, add it in bsd.README .for _lib in \ archive \ asn1 \ + atf_c \ + atf_cxx \ bind9 \ bluetooth \ bsdmalloc \ @@ -174,7 +177,10 @@ LIBCRT0= ${DESTDIR}/usr/lib/crt0.o ssh \ ssl \ ssp \ + stdcxx \ + supcxx \ terminfo \ + tre \ usbhid \ util \ wind \ @@ -182,20 +188,11 @@ LIBCRT0= ${DESTDIR}/usr/lib/crt0.o y \ z .ifndef LIB${_lib:tu} -LIB${_lib:tu}= ${DESTDIR}/usr/lib/lib${_lib}.a +LIB${_lib:tu}= ${DESTDIR}/usr/lib/lib${_lib:S/xx/++/:S/atf_c/atf-c/}.a .MADE: ${LIB${_lib:tu}} # Note: ${DESTDIR} will be expanded .endif .endfor -# atf-c and atf-c++ are special cases because we cannot use [-+] as part of -# make(1) variable names. Just define them here. -LIBATF_C= ${DESTDIR}/usr/lib/libatf-c.a -.MADE: ${LIBATF_C} -LIBATF_CXX= ${DESTDIR}/usr/lib/libatf-c++.a -.MADE: ${LIBATF_CXX} -LIBSTDCXX= ${DESTDIR}/usr/lib/libstdc++.a -.MADE: ${LIBSTDCXX} -LIBSUPCXX= ${DESTDIR}/usr/lib/libsupc++.a -.MADE: ${LIBSUPCXX} + # PAM applications, if linked statically, need more libraries .if (${MKPIC} == "no") .if (${MKCRYPTO} != "no") @@ -219,8 +216,7 @@ PAM_STATIC_LDADD= PAM_STATIC_DPADD= .endif -# These need + -> X transformations - +# NB: If you are a library here, add it in bsd.README .for _lib in \ FS \ GL \ @@ -366,12 +362,17 @@ PROGS= ${PROG} # Per-program definitions and targets. # +_CCLINK.CDEFAULT= ${CC} ${_CCLINKFLAGS} # Definitions specific to C programs. .for _P in ${PROGS} SRCS.${_P}?= ${_P}.c _CCLINK.${_P}= ${CC} ${_CCLINKFLAGS} +_CFLAGS.${_P}= ${CFLAGS} ${CPUFLAGS} +_CPPFLAGS.${_P}= ${CPPFLAGS} +_COPTS.${_P}= ${COPTS} .endfor +_CCLINK.CXXDEFAULT= ${CXX} ${_CCLINKFLAGS} # Definitions specific to C++ programs. .for _P in ${PROGS_CXX} SRCS.${_P}?= ${_P}.cc @@ -400,7 +401,7 @@ _LDSTATIC.${_P}= ${LDSTATIC} ${LDSTATIC. ##### Build and install rules .if !empty(_APPEND_SRCS:M[Yy][Ee][Ss]) -SRCS+= ${SRCS.${_P}} # For bsd.dep.mk +SRCS+= ${SRCS.${_P}} # For bsd.dep.mk .endif _YPSRCS.${_P}= ${SRCS.${_P}:M*.[ly]:C/\..$/.c/} ${YHEADER:D${SRCS.${_P}:M*.y:.y=.h}} @@ -416,6 +417,55 @@ LOBJS.${_P}+= ${LSRCS:.c=.ln} ${SRCS.${_ .if defined(OBJS.${_P}) && !empty(OBJS.${_P}) # { .NOPATH: ${OBJS.${_P}} ${_P} ${_YPSRCS.${_P}} +.if (defined(USE_COMBINE) && ${USE_COMBINE} != "no" && !commands(${_P}) \ + && (${_CCLINK.${_P}} == ${_CCLINK.CDEFAULT} \ + || ${_CCLINK.${_P}} == ${_CCLINK.CXXDEFAULT}) \ + && !defined(NOCOMBINE.${_P}) && !defined(NOCOMBINE)) +.for f in ${SRCS.${_P}:N*.h:N*.sh:N*.fth:C/\.[yl]$/.c/g} +#_XFLAGS.$f := ${CPPFLAGS.$f:D1} ${CPUFLAGS.$f:D2} \ +# ${COPTS.$f:D3} ${OBJCOPTS.$f:D4} ${CXXFLAGS.$f:D5} +.if (${CPPFLAGS.$f:D1} == "1" || ${CPUFLAGS.$f:D2} == "2" \ + || ${COPTS.$f:D3} == "3" || ${OBJCOPTS.$f:D4} == "4" \ + || ${CXXFLAGS.$f:D5} == "5") \ + || ("${f:M*.[cyl]}" == "" || commands(${f:R:S/$/.o/})) +XOBJS.${_P}+= ${f:R:S/$/.o/} +.else +XSRCS.${_P}+= ${f} +NODPSRCS+= ${f} +.endif +.endfor + +${_P}: .gdbinit ${LIBCRT0} ${XOBJS.${_P}} ${SRCS.${_P}} ${DPSRCS} ${LIBC} ${LIBCRTBEGIN} ${LIBCRTEND} ${DPADD} + ${_MKTARGET_LINK} +.if defined(DESTDIR) + ${_CCLINK.${_P}} -Wl,-nostdlib \ + ${_LDFLAGS.${_P}} ${_LDSTATIC.${_P}} -o ${.TARGET} ${_PROGLDOPTS} \ + -B${_GCC_CRTDIR}/ -B${DESTDIR}/usr/lib/ \ + -MD --combine ${_CPPFLAGS.${_P}} ${_CFLAGS.${_P}} ${_COPTS.${_P}} \ + ${XSRCS.${_P}:@.SRC.@${.ALLSRC:M*.c:M*${.SRC.}}@:O:u} ${XOBJS.${_P}} \ + ${_LDADD.${_P}} -L${_GCC_LIBGCCDIR} -L${DESTDIR}/usr/lib +.else + ${_CCLINK.${_P}} ${_LDFLAGS.${_P}} ${_LDSTATIC.${_P}} -o ${.TARGET} ${_PROGLDOPTS} \ + -MD --combine ${_CPPFLAGS.${_P}} ${_COPTS.${_P}} + ${XSRCS.${_P}:@.SRC.@${.ALLSRC:M*.c:M*${.SRC.}}@:O:u} ${XOBJS.${_P}} \ + ${_LDADD.${_P}} +.endif # defined(DESTDIR) +.if defined(CTFMERGE) + ${CTFMERGE} ${CTFMFLAGS} -o ${.TARGET} ${OBJS.${_P}} +.endif +.if defined(PAXCTL_FLAGS.${_P}) + ${PAXCTL} ${PAXCTL_FLAGS.${_P}} ${.TARGET} +.endif +.if ${MKSTRIPIDENT} != "no" + ${OBJCOPY} -R .ident ${.TARGET} +.endif + +CLEANFILES+= ${_P}.d +.if exists(${_P}.d) +.include "${_P}.d" # include -MD depend for program. +.endif +.else # USE_COMBINE + ${OBJS.${_P}} ${LOBJS.${_P}}: ${DPSRCS} ${_P}: .gdbinit ${LIBCRT0} ${OBJS.${_P}} ${LIBC} ${LIBCRTBEGIN} ${LIBCRTEND} ${DPADD} @@ -435,6 +485,7 @@ ${_P}: .gdbinit ${LIBCRT0} ${OBJS.${_P}} ${OBJCOPY} -R .ident ${.TARGET} .endif .endif # !commands(${_P}) +.endif # USE_COMBINE ${_P}.ro: ${OBJS.${_P}} ${DPADD} ${_MKTARGET_LINK}