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.209 retrieving revision 1.221.6.2 diff -u -p -r1.209 -r1.221.6.2 --- src/share/mk/bsd.prog.mk 2006/03/16 18:43:34 1.209 +++ src/share/mk/bsd.prog.mk 2007/07/29 17:06:03 1.221.6.2 @@ -1,4 +1,4 @@ -# $NetBSD: bsd.prog.mk,v 1.209 2006/03/16 18:43:34 jwise Exp $ +# $NetBSD: bsd.prog.mk,v 1.221.6.2 2007/07/29 17:06:03 joerg Exp $ # @(#)bsd.prog.mk 8.2 (Berkeley) 4/2/94 .ifndef HOSTPROG @@ -11,6 +11,10 @@ PROG= ${PROG_CXX} .endif +.if defined(PAXCTL_FLAGS) +PAXCTL_FLAGS.${PROG}?= ${PAXCTL_FLAGS} +.endif + ##### Basic targets realinstall: proginstall scriptsinstall clean: cleanprog @@ -19,6 +23,7 @@ clean: cleanprog COPTS+= ${COPTS.${PROG}} CPPFLAGS+= ${CPPFLAGS.${PROG}} CXXFLAGS+= ${CXXFLAGS.${PROG}} +OBJCOPTS+= ${OBJCOPTS.${PROG}} LDADD+= ${LDADD.${PROG}} LDFLAGS+= ${LDFLAGS.${PROG}} LDSTATIC+= ${LDSTATIC.${PROG}} @@ -27,6 +32,7 @@ LDSTATIC+= ${LDSTATIC.${PROG}} CPPFLAGS+= ${DESTDIR:D-nostdinc ${CPPFLAG_ISYSTEM} ${DESTDIR}/usr/include} CXXFLAGS+= ${DESTDIR:D-nostdinc++ ${CPPFLAG_ISYSTEMXX} ${DESTDIR}/usr/include/g++} CFLAGS+= ${COPTS} +OBJCFLAGS+= ${OBJCOPTS} MKDEP_SUFFIXES?= .o .ln # ELF platforms depend on crti.o, crtbegin.o, crtend.o, and crtn.o @@ -59,13 +65,13 @@ LIBCRT0= ${DESTDIR}/usr/lib/crt0.o # etc.. .for _lib in \ - asn1 bsdmalloc bz2 c c_pic cdk com_err compat crypt \ - crypto crypto_idea crypto_mdc2 crypto_rc5 \ + archive asn1 bluetooth bsdmalloc bz2 c c_pic cdk com_err compat \ + crypt crypto crypto_idea crypto_mdc2 crypto_rc5 \ curses dbm des edit event \ form fl g2c gcc gnumalloc gssapi hdb intl ipsec \ - kadm kadm5clnt kadm5srv kafs kdb krb krb5 kstream kvm l \ + kadm5clnt kadm5srv kafs krb5 kvm l \ m magic menu objc ossaudio pam pcap pci pmc posix pthread pthread_dbg \ - radius resolv rmt roken rpcsvc rt skey sl ss ssh ssl termcap \ + puffs radius resolv rmt roken rpcsvc rt sdp skey sl ss ssh ssl termcap \ usbhid util wrap y z .ifndef LIB${_lib:tu} LIB${_lib:tu}= ${DESTDIR}/usr/lib/lib${_lib}.a @@ -80,8 +86,8 @@ PAM_STATIC_LDADD+= -lssh PAM_STATIC_DPADD+= ${LIBSSH} .endif .if (${MKKERBEROS} != "no") -PAM_STATIC_LDADD+= -lkafs -lkrb -lkrb5 -lasn1 -lroken -lcom_err -lcrypto -PAM_STATIC_DPADD+= ${LIBKAFS} ${LIBKRB} ${LIBKRB5} ${LIBASN1} ${LIBROKEN} \ +PAM_STATIC_LDADD+= -lkafs -lkrb5 -lasn1 -lroken -lcom_err -lcrypto +PAM_STATIC_DPADD+= ${LIBKAFS} ${LIBKRB5} ${LIBASN1} ${LIBROKEN} \ ${LIBCOM_ERR} ${LIBCRYPTO} .endif .if (${MKSKEY} != "no") @@ -95,11 +101,17 @@ PAM_STATIC_LDADD= PAM_STATIC_DPADD= .endif +# These need + -> X transformations .ifndef LIBSTDCXX LIBSTDCXX= ${DESTDIR}/usr/lib/libstdc++.a .MADE: ${LIBSTDCXX} .endif +.ifndef LIBSUPCXX +LIBSUPCXX= ${DESTDIR}/usr/lib/libsupc++.a +.MADE: ${LIBSUPCXX} +.endif + .for _lib in \ dps expat fntstubs fontcache fontconfig fontenc freetype FS \ GL GLU ICE lbxutil SM X11 Xau Xaw Xdmcp Xext Xfont Xft \ @@ -116,24 +128,26 @@ LIB${_lib:tu}= ${DESTDIR}/usr/X11R6/lib/ .if defined(SHAREDSTRINGS) CLEANFILES+=strings .c.o: - ${CC} -E ${CFLAGS} ${.IMPSRC} | xstr -c - - @${CC} ${CFLAGS} -c x.c -o ${.TARGET} + ${CC} -E ${CPPFLAGS} ${CFLAGS} ${.IMPSRC} | xstr -c - + @${CC} ${CPPFLAGS} ${CFLAGS} -c x.c -o ${.TARGET} @rm -f x.c .cc.o .cpp.o .cxx.o .C.o: - ${CXX} -E ${CXXFLAGS} ${.IMPSRC} | xstr -c - + ${CXX} -E ${CPPFLAGS} ${CXXFLAGS} ${.IMPSRC} | xstr -c - @mv -f x.c x.cc - @${CXX} ${CXXFLAGS} -c x.cc -o ${.TARGET} + @${CXX} ${CPPFLAGS} ${CXXFLAGS} -c x.cc -o ${.TARGET} @rm -f x.cc .endif -.if defined(PROG) +.if defined(PROG) # { .if defined(PROG_CXX) SRCS?= ${PROG}.cc .else SRCS?= ${PROG}.c .endif +PROGNAME?= ${PROG} + .if defined(RESCUEDIR) CPPFLAGS+= -DRESCUEDIR=\"${RESCUEDIR}\" .endif @@ -148,7 +162,7 @@ OBJS+= ${SRCS:N*.h:N*.sh:N*.fth:R:S/$/. LOBJS+= ${LSRCS:.c=.ln} ${SRCS:M*.c:.c=.ln} .endif -.if defined(OBJS) && !empty(OBJS) +.if defined(OBJS) && !empty(OBJS) # { .NOPATH: ${OBJS} ${PROG} ${_YPSRCS} _PROGLDOPTS= @@ -168,15 +182,14 @@ _PROGLDOPTS+= -Wl,-rpath-link,${DESTDIR} .if defined(PROG_CXX) _CCLINK= ${CXX} -.if ${USE_LIBSTDCXX} == "no" -_SUPCXX= -lsupc++ -lm -.else -_SUPCXX= -lstdc++ -lm -.endif .else _CCLINK= ${CC} .endif +.if ${MKDEBUG} != "no" && ${OBJECT_FMT} == "ELF" && !commands(${PROG}) +_PROGDEBUG= ${PROGNAME}.debug +.endif + .gdbinit: rm -f .gdbinit .if defined(DESTDIR) && !empty(DESTDIR) @@ -202,23 +215,34 @@ ${PROG}: .gdbinit ${LIBCRT0} ${OBJS} ${L .else ${_CCLINK} ${LDFLAGS} ${LDSTATIC} -o ${.TARGET} ${_PROGLDOPTS} ${OBJS} ${LDADD} .endif # defined(DESTDIR) +.if defined(PAXCTL_FLAGS.${PROG}) + ${PAXCTL} ${PAXCTL_FLAGS.${PROG}} ${.TARGET} +.endif .endif # !commands(${PROG}) ${PROG}.ro: ${OBJS} ${DPADD} ${_MKTARGET_LINK} ${LD} -r -dc -o ${.TARGET} ${OBJS} -.endif # defined(OBJS) && !empty(OBJS) +.if defined(_PROGDEBUG) +${_PROGDEBUG}: ${PROG} + ${_MKTARGET_CREATE} + ${OBJCOPY} --only-keep-debug ${PROG} ${_PROGDEBUG} + ${OBJCOPY} -R .gnu_debuglink --add-gnu-debuglink=${_PROGDEBUG} ${PROG} \ + || rm -f ${_PROGDEBUG} +.endif + +.endif # defined(OBJS) && !empty(OBJS) # } .if !defined(MAN) MAN= ${PROG}.1 .endif # !defined(MAN) -.endif # defined(PROG) +.endif # defined(PROG) # } -realall: ${PROG} ${SCRIPTS} +realall: ${PROG} ${_PROGDEBUG} ${SCRIPTS} cleanprog: .PHONY cleanobjs cleanextra - rm -f a.out [Ee]rrs mklog core *.core .gdbinit ${PROG} + rm -f a.out [Ee]rrs mklog core *.core .gdbinit ${PROG} ${_PROGDEBUG} cleanobjs: .PHONY .if defined(OBJS) && !empty(OBJS) @@ -230,36 +254,53 @@ cleanextra: .PHONY rm -f ${CLEANFILES} .endif -.if defined(PROG) && !target(proginstall) -PROGNAME?=${PROG} +.if defined(PROG) && !target(proginstall) # { -proginstall:: ${DESTDIR}${BINDIR}/${PROGNAME} -.PRECIOUS: ${DESTDIR}${BINDIR}/${PROGNAME} +proginstall:: ${DESTDIR}${BINDIR}/${PROGNAME} ${_PROGDEBUG:D${DESTDIR}${DEBUGDIR}${BINDIR}/${_PROGDEBUG}} +.PRECIOUS: ${DESTDIR}${BINDIR}/${PROGNAME} ${_PROGDEBUG:D${DESTDIR}${DEBUGDIR}${BINDIR}/${_PROGDEBUG}} __proginstall: .USE ${_MKTARGET_INSTALL} ${INSTALL_FILE} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} \ ${STRIPFLAG} ${.ALLSRC} ${.TARGET} +__progdebuginstall: .USE + ${_MKTARGET_INSTALL} + ${INSTALL_FILE} -o ${DEBUGOWN} -g ${DEBUGGRP} -m ${DEBUGMODE} \ + ${.ALLSRC} ${.TARGET} + .if ${MKUPDATE} == "no" ${DESTDIR}${BINDIR}/${PROGNAME}! ${PROG} __proginstall .if !defined(BUILD) && !make(all) && !make(${PROG}) ${DESTDIR}${BINDIR}/${PROGNAME}! .MADE .endif -.else +.if defined(_PROGDEBUG) +${DESTDIR}${DEBUGDIR}${BINDIR}/${_PROGDEBUG}! ${_PROGDEBUG} __progdebuginstall +.if !defined(BUILD) && !make(all) && !make(${PROG}) +${DESTDIR}${DEBUGDIR}${BINDIR}/${_PROGDEBUG}! .MADE +.endif +.endif # define(_PROGDEBUG) +.else # MKUPDATE != no ${DESTDIR}${BINDIR}/${PROGNAME}: ${PROG} __proginstall .if !defined(BUILD) && !make(all) && !make(${PROG}) ${DESTDIR}${BINDIR}/${PROGNAME}: .MADE .endif +.if defined(_PROGDEBUG) +${DESTDIR}${DEBUGDIR}${BINDIR}/${_PROGDEBUG}: ${_PROGDEBUG} __progdebuginstall +.if !defined(BUILD) && !make(all) && !make(${PROG}) +${DESTDIR}${DEBUGDIR}${BINDIR}/${_PROGDEBUG}: .MADE .endif -.endif +.endif # defined(_PROGDEBUG) +.endif # MKUPDATE != no + +.endif # defined(PROG) && !target(proginstall) # } .if !target(proginstall) proginstall:: .endif .PHONY: proginstall -.if defined(SCRIPTS) && !target(scriptsinstall) +.if defined(SCRIPTS) && !target(scriptsinstall) # { SCRIPTSDIR?=${BINDIR} SCRIPTSOWN?=${BINOWN} SCRIPTSGRP?=${BINGRP} @@ -289,7 +330,7 @@ ${DESTDIR}${SCRIPTSDIR_${S}:U${SCRIPTSDI .endif .endif .endfor -.endif +.endif # } .if !target(scriptsinstall) scriptsinstall::