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.274 retrieving revision 1.311.2.1 diff -u -p -r1.274 -r1.311.2.1 --- src/share/mk/bsd.prog.mk 2012/02/29 20:07:57 1.274 +++ src/share/mk/bsd.prog.mk 2018/03/15 09:12:01 1.311.2.1 @@ -1,4 +1,4 @@ -# $NetBSD: bsd.prog.mk,v 1.274 2012/02/29 20:07:57 tron Exp $ +# $NetBSD: bsd.prog.mk,v 1.311.2.1 2018/03/15 09:12:01 pgoyette Exp $ # @(#)bsd.prog.mk 8.2 (Berkeley) 4/2/94 .ifndef HOSTPROG @@ -33,47 +33,64 @@ CLEANFILES+=strings .c.o: ${CC} -E ${CPPFLAGS} ${CFLAGS} ${.IMPSRC} | xstr -c - @${CC} ${CPPFLAGS} ${CFLAGS} -c x.c -o ${.TARGET} +.if defined(CTFCONVERT) + ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} +.endif @rm -f x.c .cc.o .cpp.o .cxx.o .C.o: ${CXX} -E ${CPPFLAGS} ${CXXFLAGS} ${.IMPSRC} | xstr -c - @mv -f x.c x.cc @${CXX} ${CPPFLAGS} ${CXXFLAGS} -c x.cc -o ${.TARGET} +.if defined(CTFCONVERT) + ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} +.endif @rm -f x.cc .endif -.if defined(MKPIE) && (${MKPIE} != "no") +.if defined(MKPIE) && (${MKPIE} != "no") && !defined(NOPIE) CFLAGS+= ${PIE_CFLAGS} AFLAGS+= ${PIE_AFLAGS} -LDFLAGS+= ${PIE_LDFLAGS} +LDFLAGS+= ${"${LDSTATIC.${.TARGET}}" == "-static" :? : ${PIE_LDFLAGS}} .endif CFLAGS+= ${COPTS} +.if ${MKDEBUG:Uno} != "no" && !defined(NODEBUG) +CFLAGS+= -g +.endif OBJCFLAGS+= ${OBJCOPTS} -MKDEP_SUFFIXES?= .o .ln +MKDEP_SUFFIXES?= .o .ln .d # CTF preserve debug symbols -.if defined(MKDTRACE) && (${MKDTRACE} != "no") && (${CFLAGS:M-g} != "") +.if (${MKCTF:Uno} != "no") && (${CFLAGS:M-g} != "") CTFFLAGS+= -g CTFMFLAGS+= -g +.if defined(HAVE_GCC) +#CFLAGS+=-gdwarf-2 +.endif .endif # ELF platforms depend on crti.o, crtbegin.o, crtend.o, and crtn.o .ifndef LIBCRTBEGIN -LIBCRTBEGIN= ${DESTDIR}/usr/lib/crti.o ${_GCC_CRTBEGIN} +LIBCRTBEGIN= ${DESTDIR}/usr/lib/${MLIBDIR:D${MLIBDIR}/}crti.o ${_GCC_CRTBEGIN} .MADE: ${LIBCRTBEGIN} .endif .ifndef LIBCRTEND -LIBCRTEND= ${_GCC_CRTEND} ${DESTDIR}/usr/lib/crtn.o +LIBCRTEND= ${_GCC_CRTEND} ${DESTDIR}/usr/lib/${MLIBDIR:D${MLIBDIR}/}crtn.o .MADE: ${LIBCRTEND} .endif _SHLINKER= ${SHLINKDIR}/ld.elf_so .ifndef LIBCRT0 -LIBCRT0= ${DESTDIR}/usr/lib/crt0.o +LIBCRT0= ${DESTDIR}/usr/lib/${MLIBDIR:D${MLIBDIR}/}crt0.o .MADE: ${LIBCRT0} .endif +.ifndef LIBCRTI +LIBCRTI= ${DESTDIR}/usr/lib/${MLIBDIR:D${MLIBDIR}/}crti.o +.MADE: ${LIBCRTI} +.endif + ##### Installed system library definitions # # E.g. @@ -95,19 +112,17 @@ LIBCRT0= ${DESTDIR}/usr/lib/crt0.o c_pic \ com_err \ compat \ - crt0 \ crypt \ crypto \ - crypto_idea \ - crypto_mdc2 \ - crypto_rc5 \ curses \ + cxx \ dbm \ des \ dns \ edit \ event \ expat \ + execinfo \ fetch \ fl \ form \ @@ -138,6 +153,7 @@ LIBCRT0= ${DESTDIR}/usr/lib/crt0.o m \ magic \ menu \ + netpgpverify \ objc \ ossaudio \ pam \ @@ -146,7 +162,6 @@ LIBCRT0= ${DESTDIR}/usr/lib/crt0.o pmc \ posix \ pthread \ - pthread_dbg \ puffs \ quota \ radius \ @@ -182,6 +197,7 @@ LIBCRT0= ${DESTDIR}/usr/lib/crt0.o supcxx \ terminfo \ tre \ + unbound \ usbhid \ util \ wind \ @@ -194,17 +210,31 @@ LIB${_lib:tu}= ${DESTDIR}/usr/lib/lib${_ .endif .endfor +.if (${MKKERBEROS} != "no") +LIBKRB5_LDADD+= -lkrb5 +LIBKRB5_DPADD+= ${LIBKRB5} +# Kerberos5 applications, if linked statically, need more libraries +LIBKRB5_STATIC_LDADD+= \ + -lhx509 -lcrypto -lasn1 -lcom_err -lroken \ + -lwind -lheimbase -lsqlite3 -lcrypt -lutil +LIBKRB5_STATIC_DPADD+= \ + ${LIBHX509} ${LIBCRYPTO} ${LIBASN1} ${LIBCOM_ERR} ${LIBROKEN} \ + ${LIBWIND} ${LIBHEIMBASE} ${LIBSQLITE3} ${LIBCRYPT} ${LIBUTIL} +. if (${MKPIC} == "no") +LIBKRB5_LDADD+= ${LIBKRB5_STATIC_LDADD} +LIBKRB5_DPADD+= ${LIBKRB5_STATIC_DPADD} +. endif +.endif + # PAM applications, if linked statically, need more libraries .if (${MKPIC} == "no") -.if (${MKCRYPTO} != "no") PAM_STATIC_LDADD+= -lssh PAM_STATIC_DPADD+= ${LIBSSH} -.endif .if (${MKKERBEROS} != "no") PAM_STATIC_LDADD+= -lkafs -lkrb5 -lhx509 -lwind -lasn1 \ - -lroken -lcom_err -lheimbase -lcrypto + -lroken -lcom_err -lheimbase -lcrypto -lsqlite3 PAM_STATIC_DPADD+= ${LIBKAFS} ${LIBKRB5} ${LIBHX509} ${LIBWIND} ${LIBASN1} \ - ${LIBROKEN} ${LIBCOM_ERR} ${LIBHEIMBASE} ${LIBCRYPTO} + ${LIBROKEN} ${LIBCOM_ERR} ${LIBHEIMBASE} ${LIBCRYPTO} ${LIBSQLITE3} .endif .if (${MKSKEY} != "no") PAM_STATIC_LDADD+= -lskey @@ -230,6 +260,7 @@ PAM_STATIC_DPADD= Xaw \ Xdmcp \ Xext \ + Xfont2 \ Xfont \ Xft \ Xi \ @@ -260,6 +291,10 @@ LIB${_lib:tu}= ${DESTDIR}${X11USRLIBDIR} .endif .endfor +# Ugly one-offs +LIBX11_XCB= ${DESTDIR}${X11USRLIBDIR}/libX11-xcb.a +LIBXCB= ${DESTDIR}${X11USRLIBDIR}/libxcb.a + .if defined(RESCUEDIR) CPPFLAGS+= -DRESCUEDIR=\"${RESCUEDIR}\" .endif @@ -309,25 +344,36 @@ _CCLINK= ${CXX} ${_CCLINKFLAGS} .endif .if defined(RUMPPRG) +CPPFLAGS+= -D_KERNTYPES 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} +LDADD.rump.${PROG}+= ${LDADD.rump} -lrumpclient +DPADD.rump.${PROG}+= ${DPADD.rump} ${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) @@ -358,6 +404,23 @@ PROGS= ${PROG} . endif .endif +##### Libraries that this may depend upon. +.if defined(PROGDPLIBS) # { +.for _lib _dir in ${PROGDPLIBS} +.if !defined(BINDO.${_lib}) +PROGDO.${_lib}!= cd "${_dir}" && ${PRINTOBJDIR} +.MAKEOVERRIDES+=PROGDO.${_lib} +.endif +LDADD+= -L${PROGDO.${_lib}} -l${_lib} +.if exists(${PROGDO.${_lib}}/lib${_lib}_pic.a) +DPADD+= ${PROGDO.${_lib}}/lib${_lib}_pic.a +.elif exists(${PROGDO.${_lib}}/lib${_lib}.so) +DPADD+= ${PROGDO.${_lib}}/lib${_lib}.so +.else +DPADD+= ${PROGDO.${_lib}}/lib${_lib}.a +.endif +.endfor +.endif # } # # Per-program definitions and targets. # @@ -385,7 +448,8 @@ _CCLINK.${_P}= ${CXX} ${_CCLINKFLAGS} BINDIR.${_P}?= ${BINDIR} PROGNAME.${_P}?= ${_P} -.if ${MKDEBUG} != "no" && !commands(${_P}) +.if ${MKDEBUG:Uno} != "no" && !defined(NODEBUG) && !commands(${_P}) && \ + empty(SRCS.${_P}:M*.sh) _PROGDEBUG.${_P}:= ${PROGNAME.${_P}}.debug .endif @@ -395,6 +459,7 @@ 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}} @@ -435,7 +500,8 @@ NODPSRCS+= ${f} .endif .endfor -${_P}: .gdbinit ${LIBCRT0} ${XOBJS.${_P}} ${SRCS.${_P}} ${DPSRCS} ${LIBC} ${LIBCRTBEGIN} ${LIBCRTEND} ${DPADD} +${_P}: .gdbinit ${LIBCRT0} ${LIBCRTI} ${XOBJS.${_P}} ${SRCS.${_P}} \ + ${DPSRCS} ${LIBC} ${LIBCRTBEGIN} ${LIBCRTEND} ${_DPADD.${_P}} ${_MKTARGET_LINK} .if defined(DESTDIR) ${_CCLINK.${_P}} -Wl,-nostdlib \ @@ -468,13 +534,13 @@ CLEANFILES+= ${_P}.d ${OBJS.${_P}} ${LOBJS.${_P}}: ${DPSRCS} -${_P}: .gdbinit ${LIBCRT0} ${OBJS.${_P}} ${LIBC} ${LIBCRTBEGIN} ${LIBCRTEND} ${DPADD} +${_P}: .gdbinit ${LIBCRT0} ${LIBCRTI} ${OBJS.${_P}} ${LIBC} ${LIBCRTBEGIN} \ + ${LIBCRTEND} ${_DPADD.${_P}} .if !commands(${_P}) ${_MKTARGET_LINK} ${_CCLINK.${_P}} \ ${_LDFLAGS.${_P}} ${_LDSTATIC.${_P}} -o ${.TARGET} \ - ${OBJS.${_P}} ${_LDADD.${_P}} \ - ${_PROGLDOPTS} + ${OBJS.${_P}} ${_PROGLDOPTS} ${_LDADD.${_P}} .if defined(CTFMERGE) ${CTFMERGE} ${CTFMFLAGS} -o ${.TARGET} ${OBJS.${_P}} .endif @@ -487,9 +553,9 @@ ${_P}: .gdbinit ${LIBCRT0} ${OBJS.${_P}} .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}} + ${CC} ${LDFLAGS:N-pie} -nostdlib -r -Wl,-dc -o ${.TARGET} ${OBJS.${_P}} .if defined(_PROGDEBUG.${_P}) ${_PROGDEBUG.${_P}}: ${_P}