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.278 diff -u -p -r1.268 -r1.278 --- src/share/mk/bsd.prog.mk 2011/10/16 01:14:33 1.268 +++ src/share/mk/bsd.prog.mk 2012/08/24 20:26:24 1.278 @@ -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.278 2012/08/24 20:26:24 jmmv 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 \ @@ -104,6 +107,7 @@ LIBCRT0= ${DESTDIR}/usr/lib/crt0.o dns \ edit \ event \ + expat \ fetch \ fl \ form \ @@ -174,7 +178,10 @@ LIBCRT0= ${DESTDIR}/usr/lib/crt0.o ssh \ ssl \ ssp \ + stdcxx \ + supcxx \ terminfo \ + tre \ usbhid \ util \ wind \ @@ -182,20 +189,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 +217,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 \ @@ -250,7 +247,6 @@ PAM_STATIC_DPADD= Xxf86misc \ Xxf86vm \ dps \ - expat \ fntstubs \ fontcache \ fontconfig \ @@ -314,24 +310,34 @@ _CCLINK= ${CXX} ${_CCLINKFLAGS} .if defined(RUMPPRG) PROG= ${RUMPPRG} -.ifndef CRUNCHEDPROG +. ifndef CRUNCHEDPROG +. if (${MKRUMP} != "no") PROGS= ${RUMPPRG} rump.${RUMPPRG} -. if defined(SRCS) +. else +PROGS= ${RUMPPRG} +. endif +. if defined(SRCS) +. if (${MKRUMP} != "no") SRCS.rump.${PROG}:= ${SRCS} ${PROG}_rumpops.c ${RUMPSRCS} +. endif SRCS+= ${PROG}_hostops.c -. else +. else SRCS= ${PROG}.c ${PROG}_hostops.c +. if (${MKRUMP} != "no") SRCS.rump.${PROG}= ${PROG}.c ${PROG}_rumpops.c ${RUMPSRCS} -. endif +. endif +. endif +. if (${MKRUMP} != "no") DPSRCS+= ${PROG}_rumpops.c ${RUMPSRCS} LDADD.rump.${PROG}+= -lrumpclient DPADD.rump.${PROG}+= ${LIBRUMPCLIENT} MAN.rump.${PROG}= # defined but feeling empty _RUMPINSTALL.rump.${PROG}=# defined -.else # CRUNCHEDPROG +. endif +. else # CRUNCHEDPROG PROGS= ${PROG} CPPFLAGS+= -DCRUNCHOPS -.endif +. endif .endif .if defined(PROG) @@ -366,12 +372,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 @@ -394,13 +405,14 @@ PAXCTL_FLAGS.${_P}?= ${PAXCTL_FLAGS} ##### PROG specific flags. +_DPADD.${_P}= ${DPADD} ${DPADD.${_P}} _LDADD.${_P}= ${LDADD} ${LDADD.${_P}} _LDFLAGS.${_P}= ${LDFLAGS} ${LDFLAGS.${_P}} _LDSTATIC.${_P}= ${LDSTATIC} ${LDSTATIC.${_P}} ##### 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,9 +428,58 @@ 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.${_P}} + ${_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} +${_P}: .gdbinit ${LIBCRT0} ${OBJS.${_P}} ${LIBC} ${LIBCRTBEGIN} ${LIBCRTEND} ${_DPADD.${_P}} .if !commands(${_P}) ${_MKTARGET_LINK} ${_CCLINK.${_P}} \ @@ -435,8 +496,9 @@ ${_P}: .gdbinit ${LIBCRT0} ${OBJS.${_P}} ${OBJCOPY} -R .ident ${.TARGET} .endif .endif # !commands(${_P}) +.endif # USE_COMBINE -${_P}.ro: ${OBJS.${_P}} ${DPADD} +${_P}.ro: ${OBJS.${_P}} ${_DPADD.${_P}} ${_MKTARGET_LINK} ${CC} ${LDFLAGS} -nostdlib -r -Wl,-dc -o ${.TARGET} ${OBJS.${_P}}