bsd.prog.mk revision 11136
11844Swollman# from: @(#)bsd.prog.mk 5.26 (Berkeley) 6/25/91 211136Swollman# $Id: bsd.prog.mk,v 1.26 1995/05/07 06:39:30 bde Exp $ 31638Srgrimes 41844Swollman.if exists(${.CURDIR}/../Makefile.inc) 51638Srgrimes.include "${.CURDIR}/../Makefile.inc" 61638Srgrimes.endif 71638Srgrimes 81844Swollman.SUFFIXES: .out .o .c .cc .cxx .C .y .l .s .S 91638Srgrimes 102827SjkhCFLAGS+=${COPTS} ${DEBUG_FLAGS} 111844Swollman.if defined(DESTDIR) 121844SwollmanCFLAGS+= -I${DESTDIR}/usr/include 131844SwollmanCXXINCLUDES+= -I${DESTDIR}/usr/include/${CXX} 141844Swollman.endif 151638Srgrimes 162827Sjkh.if !defined(DEBUG_FLAGS) 171638SrgrimesSTRIP?= -s 182827Sjkh.endif 191638Srgrimes 201638SrgrimesBINGRP?= bin 211638SrgrimesBINOWN?= bin 221638SrgrimesBINMODE?= 555 231638Srgrimes 241844SwollmanLIBCRT0?= ${DESTDIR}/usr/lib/crt0.o 251844SwollmanLIBC?= ${DESTDIR}/usr/lib/libc.a 261844SwollmanLIBCOMPAT?= ${DESTDIR}/usr/lib/libcompat.a 271844SwollmanLIBCRYPT?= ${DESTDIR}/usr/lib/libcrypt.a 281844SwollmanLIBCURSES?= ${DESTDIR}/usr/lib/libcurses.a 294449SbdeLIBDES?= ${DESTDIR}/usr/lib/libdes.a # XXX doesn't exist 303520SacheLIBDIALOG?= ${DESTDIR}/usr/lib/libdialog.a 314449SbdeLIBEDIT?= ${DESTDIR}/usr/lib/libedit.a 325898SacheLIBFORMS?= ${DESTDIR}/usr/lib/libforms.a 338081SjkhLIBFTP?= ${DESTDIR}/usr/lib/libftp.a 344449SbdeLIBGCC?= ${DESTDIR}/usr/lib/libgcc.a 351844SwollmanLIBGNUMALLOC?= ${DESTDIR}/usr/lib/libgnumalloc.a 361844SwollmanLIBGNUREGEX?= ${DESTDIR}/usr/lib/libgnuregex.a 374449SbdeLIBKDB?= ${DESTDIR}/usr/lib/libkdb.a # XXX doesn't exist 384449SbdeLIBKRB?= ${DESTDIR}/usr/lib/libkrb.a # XXX doesn't exist 394449SbdeLIBKVM?= ${DESTDIR}/usr/lib/libkvm.a 401844SwollmanLIBL?= ${DESTDIR}/usr/lib/libl.a 411844SwollmanLIBM?= ${DESTDIR}/usr/lib/libm.a 423701SpstLIBMD?= ${DESTDIR}/usr/lib/libmd.a 434449SbdeLIBMP?= ${DESTDIR}/usr/lib/libmp.a # XXX doesn't exist 443404SacheLIBMYTINFO?= ${DESTDIR}/usr/lib/libmytinfo.a 453404SacheLIBNCURSES?= ${DESTDIR}/usr/lib/libncurses.a 464449SbdeLIBPC?= ${DESTDIR}/usr/lib/libpc.a # XXX doesn't exist 476954SolahLIBPCAP?= ${DESTDIR}/usr/lib/libpcap.a 484449SbdeLIBPLOT?= ${DESTDIR}/usr/lib/libplot.a # XXX doesn't exist 491844SwollmanLIBREADLINE?= ${DESTDIR}/usr/lib/libreadline.a 501844SwollmanLIBRESOLV?= ${DESTDIR}/usr/lib/libresolv.a 511844SwollmanLIBRPCSVC?= ${DESTDIR}/usr/lib/librpcsvc.a 524449SbdeLIBSCRYPT?= ${DESTDIR}/usr/lib/libscrypt.a # XXX don't use, use LIBCRYPT 535898SacheLIBSCSI?= ${DESTDIR}/usr/lib/libscsi.a 541844SwollmanLIBSKEY?= ${DESTDIR}/usr/lib/libskey.a 551844SwollmanLIBTELNET?= ${DESTDIR}/usr/lib/libtelnet.a 562676SrgrimesLIBTERMCAP?= ${DESTDIR}/usr/lib/libtermcap.a 571844SwollmanLIBUTIL?= ${DESTDIR}/usr/lib/libutil.a 584449SbdeLIBY?= ${DESTDIR}/usr/lib/liby.a 594449Sbde 601844Swollman.if defined(NOSHARED) 611844SwollmanLDFLAGS+= -static 621844Swollman.endif 631638Srgrimes 641844Swollman.if defined(DESTDIR) 653860SbdeLDDESTDIR+= -L${DESTDIR}/usr/lib 661844Swollman.endif 671844Swollman 681638Srgrimes.if defined(PROG) 691638Srgrimes.if defined(SRCS) 701638Srgrimes 711844SwollmanDPSRCS+= ${SRCS:M*.h} 725859Sjkh.if !defined(NOOBJ) 731844SwollmanOBJS+= ${SRCS:N*.h:R:S/$/.o/g} 745856Sjkh.endif 751638Srgrimes 761844Swollman.if defined(LDONLY) 771638Srgrimes 781844Swollman${PROG}: ${LIBCRT0} ${LIBC} ${DPSRCS} ${OBJS} ${DPADD} 792351Sbde ${LD} ${LDFLAGS} -o ${.TARGET} ${LIBCRT0} ${OBJS} ${LIBC} ${LDDESTDIR} \ 801844Swollman ${LDADD} 811638Srgrimes 821844Swollman.else defined(LDONLY) 831844Swollman 841844Swollman${PROG}: ${DPSRCS} ${OBJS} ${LIBC} ${DPADD} 851844Swollman ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${OBJS} ${LDDESTDIR} ${LDADD} 861844Swollman 871844Swollman.endif 881844Swollman 898321Sbde.else !defined(SRCS) 901844Swollman 912351SbdeSRCS= ${PROG}.c 921638Srgrimes 932351Sbde.if 0 941844Swollman${PROG}: ${DPSRCS} ${SRCS} ${LIBC} ${DPADD} 951844Swollman ${CC} ${LDFLAGS} ${CFLAGS} -o ${.TARGET} ${.CURDIR}/${SRCS} \ 961844Swollman ${LDDESTDIR} ${LDADD} 975188Sbde 985188SbdeMKDEP= -p 992351Sbde.else 1002351Sbde# Always make an intermediate object file because: 1012351Sbde# - it saves time rebuilding when only the library has changed 1022351Sbde# - the name of the object gets put into the executable symbol table instead of 1032351Sbde# the name of a variable temporary object. 1042351Sbde# - it's useful to keep objects around for crunching. 1052351SbdeOBJS= ${PROG}.o 1062351Sbde${PROG}: ${DPSRCS} ${OBJS} ${LIBC} ${DPADD} 1072351Sbde ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${OBJS} ${LDDESTDIR} ${LDADD} 1082351Sbde.endif 1091638Srgrimes 1101638Srgrimes.endif 1111638Srgrimes 1121638Srgrimes.if !defined(MAN1) && !defined(MAN2) && !defined(MAN3) && \ 1131638Srgrimes !defined(MAN4) && !defined(MAN5) && !defined(MAN6) && \ 1141638Srgrimes !defined(MAN7) && !defined(MAN8) && !defined(NOMAN) 1151844SwollmanMAN1= ${PROG}.1 1161638Srgrimes.endif 1171638Srgrimes.endif 1181638Srgrimes 1191638Srgrimes_PROGSUBDIR: .USE 1201638Srgrimes.if defined(SUBDIR) && !empty(SUBDIR) 1211638Srgrimes @for entry in ${SUBDIR}; do \ 1225607Sjkh (${ECHODIR} "===> ${DIRPRFX}$$entry"; \ 1231638Srgrimes if test -d ${.CURDIR}/$${entry}.${MACHINE}; then \ 1241638Srgrimes cd ${.CURDIR}/$${entry}.${MACHINE}; \ 1251638Srgrimes else \ 1261638Srgrimes cd ${.CURDIR}/$${entry}; \ 1271638Srgrimes fi; \ 1285607Sjkh ${MAKE} ${.TARGET:S/realinstall/install/:S/.depend/depend/} DIRPRFX=${DIRPRFX}$$entry/); \ 1291638Srgrimes done 1301638Srgrimes.endif 1311638Srgrimes 1326252Sbde# XXX I think MANDEPEND is only used for groff. It should be named more 1336252Sbde# generally and perhaps not be in the maninstall dependencies now it is 1346252Sbde# here (or does maninstall always work when nothing is made?), 1356252Sbde 1361638Srgrimes.MAIN: all 13711136Swollmanall: ${PROG} all-man _PROGSUBDIR 1381638Srgrimes 1391638Srgrimes.if !target(clean) 1401638Srgrimesclean: _PROGSUBDIR 1411844Swollman rm -f a.out [Ee]rrs mklog ${PROG} ${OBJS} ${CLEANFILES} 1421638Srgrimes.endif 1431638Srgrimes 1441638Srgrimes.if !target(cleandir) 1451638Srgrimescleandir: _PROGSUBDIR 1461844Swollman rm -f a.out [Ee]rrs mklog ${PROG} ${OBJS} ${CLEANFILES} 1471844Swollman rm -f ${.CURDIR}/tags .depend 1481844Swollman cd ${.CURDIR}; rm -rf obj; 1491638Srgrimes.endif 1501638Srgrimes 1511638Srgrimes.if !target(install) 1521638Srgrimes.if !target(beforeinstall) 1531638Srgrimesbeforeinstall: 1541638Srgrimes.endif 1551638Srgrimes.if !target(afterinstall) 1561638Srgrimesafterinstall: 1571638Srgrimes.endif 1581638Srgrimes 1591638Srgrimesrealinstall: _PROGSUBDIR 1601638Srgrimes.if defined(PROG) 1611844Swollman ${INSTALL} ${COPY} ${STRIP} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} \ 1621996Swollman ${INSTALLFLAGS} ${PROG} ${DESTDIR}${BINDIR} 1631638Srgrimes.endif 1641638Srgrimes.if defined(HIDEGAME) 1651638Srgrimes (cd ${DESTDIR}/usr/games; rm -f ${PROG}; ln -s dm ${PROG}; \ 1661638Srgrimes chown games.bin ${PROG}) 1671638Srgrimes.endif 1681638Srgrimes.if defined(LINKS) && !empty(LINKS) 1691638Srgrimes @set ${LINKS}; \ 1701638Srgrimes while test $$# -ge 2; do \ 1711638Srgrimes l=${DESTDIR}$$1; \ 1721638Srgrimes shift; \ 1731638Srgrimes t=${DESTDIR}$$1; \ 1741638Srgrimes shift; \ 1752351Sbde ${ECHO} $$t -\> $$l; \ 1761638Srgrimes rm -f $$t; \ 1776031Sjkh ln ${LN_FLAGS} $$l $$t; \ 1781638Srgrimes done; true 1791638Srgrimes.endif 1801638Srgrimes 1811844Swollmaninstall: afterinstall 1821844Swollman.if !defined(NOMAN) 1831844Swollmanafterinstall: realinstall maninstall 1841844Swollman.else 1851638Srgrimesafterinstall: realinstall 1861844Swollman.endif 1871638Srgrimesrealinstall: beforeinstall 1881638Srgrimes.endif 1891638Srgrimes 1905585SjkhDISTRIBUTION?= bin 1914442Sphk.if !target(distribute) 1924442Sphkdistribute: 1936716Sphk cd ${.CURDIR} ; $(MAKE) install DESTDIR=${DISTDIR}/${DISTRIBUTION} SHARED=copies 1944442Sphk.endif 1954442Sphk 1961638Srgrimes.if !target(lint) 1971638Srgrimeslint: ${SRCS} _PROGSUBDIR 1981638Srgrimes.if defined(PROG) 1991638Srgrimes @${LINT} ${LINTFLAGS} ${CFLAGS} ${.ALLSRC} | more 2>&1 2001638Srgrimes.endif 2011638Srgrimes.endif 2021638Srgrimes 2031638Srgrimes.if !target(obj) 2041638Srgrimes.if defined(NOOBJ) 2051638Srgrimesobj: _PROGSUBDIR 2061638Srgrimes.else 2071638Srgrimesobj: _PROGSUBDIR 2081638Srgrimes @cd ${.CURDIR}; rm -rf obj; \ 2091844Swollman here=`pwd`; dest=/usr/obj`echo $$here | sed 's,^/usr/src,,'`; \ 2102351Sbde ${ECHO} "$$here -> $$dest"; ln -s $$dest obj; \ 2111638Srgrimes if test -d /usr/obj -a ! -d $$dest; then \ 2121638Srgrimes mkdir -p $$dest; \ 2131638Srgrimes else \ 2141638Srgrimes true; \ 2151638Srgrimes fi; 2161638Srgrimes.endif 2171638Srgrimes.endif 2181638Srgrimes 2191638Srgrimes.if !target(tags) 2201638Srgrimestags: ${SRCS} _PROGSUBDIR 2211638Srgrimes.if defined(PROG) 2221844Swollman -cd ${.CURDIR}; ctags -f /dev/stdout ${.ALLSRC} | \ 2231844Swollman sed "s;\${.CURDIR}/;;" > tags 2241638Srgrimes.endif 2251638Srgrimes.endif 2261638Srgrimes 2271638Srgrimes.if !defined(NOMAN) 2281638Srgrimes.include <bsd.man.mk> 2291844Swollman.elif !target(maninstall) 2301638Srgrimesmaninstall: 23111136Swollmanall-man: 2321638Srgrimes.endif 2331844Swollman 2346252Sbde_DEPSUBDIR= _PROGSUBDIR 2351844Swollman.include <bsd.dep.mk> 236