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.184 retrieving revision 1.190 diff -u -p -r1.184 -r1.190 --- src/share/mk/bsd.prog.mk 2003/09/12 07:44:11 1.184 +++ src/share/mk/bsd.prog.mk 2003/10/18 15:33:59 1.190 @@ -1,4 +1,4 @@ -# $NetBSD: bsd.prog.mk,v 1.184 2003/09/12 07:44:11 lukem Exp $ +# $NetBSD: bsd.prog.mk,v 1.190 2003/10/18 15:33:59 lukem Exp $ # @(#)bsd.prog.mk 8.2 (Berkeley) 4/2/94 .ifndef HOSTPROG @@ -7,18 +7,27 @@ .include .include +.if defined(PROG_CXX) +PROG= ${PROG_CXX} +.endif + ##### Basic targets .PHONY: cleanextra cleanobjs cleanprog proginstall scriptsinstall realinstall: proginstall scriptsinstall clean: cleanprog +##### PROG specific flags. +COPTS+= ${COPTS.${PROG}} +CPPFLAGS+= ${CPPFLAGS.${PROG}} +CXXFLAGS+= ${CXXFLAGS.${PROG}} +LDADD+= ${LDADD.${PROG}} +LDFLAGS+= ${LDFLAGS.${PROG}} +LDSTATIC+= ${LDSTATIC.${PROG}} + ##### Default values CPPFLAGS+= ${DESTDIR:D-nostdinc ${CPPFLAG_ISYSTEM} ${DESTDIR}/usr/include} CXXFLAGS+= ${DESTDIR:D-nostdinc++ ${CPPFLAG_ISYSTEMXX} ${DESTDIR}/usr/include/g++} CFLAGS+= ${COPTS} -.if ${MACHINE_ARCH} == "sparc64" -CFLAGS+= -mcmodel=medlow -.endif # ELF platforms depend on crti.o, crtbegin.o, crtend.o, and crtn.o .if ${OBJECT_FMT} == "ELF" @@ -52,7 +61,7 @@ __bsd_prog_mk_system_libs?= \ CURSES DBM DES EDIT EVENT FORM GCC GNUMALLOC GSSAPI HDB INTL IPSEC \ KADM KADM5CLNT KADM5SRV KAFS KDB KRB KRB5 KSTREAM KVM L M MENU \ OBJC OSSAUDIO PCAP PCI PMC POSIX PTHREAD PTHREAD_DBG RESOLV RMT \ - ROKEN RPCSVC RT SKEY SS SSL SL TERMCAP USBHID UTIL WRAP Y Z + ROKEN RPCSVC RT SKEY SL SS SSL TERMCAP USBHID UTIL WRAP Y Z .for _n in ${__bsd_prog_mk_system_libs} .ifndef LIB${_n} @@ -63,6 +72,11 @@ LIB${_n}= ${DESTDIR}/usr/lib/lib${_n:tl} .endfor .undef __bsd_prog_mk_system_libs +.ifndef LIBSTDCXX +LIBSTDCXX= ${DESTDIR}/usr/lib/libstdc++.a +.MADE: ${LIBSTDCXX} +.endif + ##### Installed X11R6 library definitions # E.g. LIBX11?=${DESTDIR}/usr/X11R6/lib/libX11.a # etc.. @@ -97,10 +111,6 @@ CLEANFILES+=strings @rm -f x.cc .endif -.if defined(PROG_CXX) -PROG= ${PROG_CXX} -.endif - .if defined(PROG) .if defined(PROG_CXX) SRCS?= ${PROG}.cc @@ -130,11 +140,11 @@ _PROGLDOPTS+= -Wl,-dynamic-linker=${_SHL LIBCRT0= ${DESTDIR}/lib/crt0.o .endif .endif -.if ${SHLIBDIR} != ${LIBDIR} +.if ${SHLIBDIR} != "/usr/lib" _PROGLDOPTS+= -Wl,-rpath-link,${DESTDIR}${SHLIBDIR}:${DESTDIR}/usr/lib \ -R${SHLIBDIR} \ -L${DESTDIR}${SHLIBDIR} -.elif ${SHLIBINSTALLDIR} != ${LIBDIR} +.elif ${SHLIBINSTALLDIR} != "/usr/lib" _PROGLDOPTS+= -Wl,-rpath-link,${DESTDIR}${SHLIBINSTALLDIR}:${DESTDIR}/usr/lib \ -L${DESTDIR}${SHLIBINSTALLDIR} .endif @@ -151,13 +161,17 @@ _CCLINK= ${CC} .endif .gdbinit: + ${_MKCMD}\ rm -f .gdbinit .if defined(DESTDIR) && !empty(DESTDIR) + ${_MKCMD}\ echo "set solib-absolute-prefix ${DESTDIR}" > .gdbinit .else + ${_MKCMD}\ touch .gdbinit .endif .for __gdbinit in ${GDBINIT} + ${_MKCMD}\ echo "source ${__gdbinit}" >> .gdbinit .endfor @@ -165,14 +179,18 @@ ${OBJS} ${LOBJS}: ${DPSRCS} ${PROG}: .gdbinit ${LIBCRT0} ${OBJS} ${LIBC} ${LIBCRTBEGIN} ${LIBCRTEND} ${DPADD} .if !commands(${PROG}) + ${_MKMSG} " link ${PROG}" .if defined(DESTDIR) + ${_MKCMD}\ ${_CCLINK} ${LDFLAGS} ${LDSTATIC} -o ${.TARGET} -nostdlib ${_PROGLDOPTS} ${LIBCRT0} ${LIBCRTBEGIN} ${OBJS} ${LDADD} -L${_GCC_LIBGCCDIR} -L${DESTDIR}/usr/lib ${_SUPCXX} -lgcc -lc -lgcc ${LIBCRTEND} .else + ${_MKCMD}\ ${_CCLINK} ${LDFLAGS} ${LDSTATIC} -o ${.TARGET} ${_PROGLDOPTS} ${OBJS} ${LDADD} .endif # defined(DESTDIR) .endif # !commands(${PROG}) ${PROG}.ro: ${OBJS} ${DPADD} + ${_MKCMD}\ ${LD} -r -dc -o ${.TARGET} ${OBJS} .endif # defined(OBJS) && !empty(OBJS) @@ -185,15 +203,18 @@ MAN= ${PROG}.1 realall: ${PROG} ${SCRIPTS} cleanprog: cleanobjs cleanextra + ${_MKCMD}\ rm -f a.out [Ee]rrs mklog core *.core .gdbinit ${PROG} cleanobjs: .if defined(OBJS) && !empty(OBJS) + ${_MKCMD}\ rm -f ${OBJS} ${LOBJS} .endif cleanextra: .if defined(CLEANFILES) && !empty(CLEANFILES) + ${_MKCMD}\ rm -f ${CLEANFILES} .endif @@ -212,6 +233,8 @@ proginstall:: ${DESTDIR}${BINDIR}/${PROG .PRECIOUS: ${DESTDIR}${BINDIR}/${PROGNAME} __proginstall: .USE + ${_MKMSG} "install ${.TARGET}" + ${_MKCMD}\ ${INSTALL_FILE} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} \ ${STRIPFLAG} ${SYSPKGTAG} ${.ALLSRC} ${.TARGET} @@ -242,6 +265,8 @@ scriptsinstall:: ${SCRIPTS:@S@${DESTDIR} .PRECIOUS: ${SCRIPTS:@S@${DESTDIR}${SCRIPTSDIR_${S}:U${SCRIPTSDIR}}/${SCRIPTSNAME_${S}:U${SCRIPTSNAME:U${S:T:R}}}@} __scriptinstall: .USE + ${_MKMSG} "install ${.TARGET}" + ${_MKCMD}\ ${INSTALL_FILE} \ -o ${SCRIPTSOWN_${.ALLSRC:T}:U${SCRIPTSOWN}} \ -g ${SCRIPTSGRP_${.ALLSRC:T}:U${SCRIPTSGRP}} \ @@ -269,6 +294,7 @@ scriptsinstall:: lint: ${LOBJS} .if defined(LOBJS) && !empty(LOBJS) + ${_MKCMD}\ ${LINT} ${LINTFLAGS} ${LDFLAGS:M-L*} ${LOBJS} ${LDADD} .endif