bsd.prog.mk revision 26760
11844Swollman# from: @(#)bsd.prog.mk 5.26 (Berkeley) 6/25/91 226760Sjkh# $Id: bsd.prog.mk,v 1.50 1997/05/23 08:38:46 asami 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 1326051SasamiCXXINCLUDES+= -I${DESTDIR}/usr/include/g++ 141844Swollman.endif 151638Srgrimes 162827Sjkh.if !defined(DEBUG_FLAGS) 171638SrgrimesSTRIP?= -s 182827Sjkh.endif 191638Srgrimes 201844Swollman.if defined(NOSHARED) 211844SwollmanLDFLAGS+= -static 221844Swollman.endif 231638Srgrimes 241844Swollman.if defined(DESTDIR) 2524750SbdeLDDESTDIR?= -L${DESTDIR}${SHLIBDIR} -L${DESTDIR}/usr/lib 2624750Sbde# LDDESTDIR+= -nostdlib 271844Swollman.endif 281844Swollman 291638Srgrimes.if defined(PROG) 301638Srgrimes.if defined(SRCS) 311638Srgrimes 321844SwollmanDPSRCS+= ${SRCS:M*.h} 331844SwollmanOBJS+= ${SRCS:N*.h:R:S/$/.o/g} 341638Srgrimes 3524750Sbde${PROG}: ${DPSRCS} ${OBJS} 361844Swollman ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${OBJS} ${LDDESTDIR} ${LDADD} 371844Swollman 388321Sbde.else !defined(SRCS) 391844Swollman 402351SbdeSRCS= ${PROG}.c 411638Srgrimes 422351Sbde# Always make an intermediate object file because: 432351Sbde# - it saves time rebuilding when only the library has changed 442351Sbde# - the name of the object gets put into the executable symbol table instead of 452351Sbde# the name of a variable temporary object. 462351Sbde# - it's useful to keep objects around for crunching. 472351SbdeOBJS= ${PROG}.o 4824750Sbde${PROG}: ${DPSRCS} ${OBJS} 492351Sbde ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${OBJS} ${LDDESTDIR} ${LDADD} 501638Srgrimes 511638Srgrimes.endif 521638Srgrimes 531638Srgrimes.if !defined(MAN1) && !defined(MAN2) && !defined(MAN3) && \ 541638Srgrimes !defined(MAN4) && !defined(MAN5) && !defined(MAN6) && \ 551638Srgrimes !defined(MAN7) && !defined(MAN8) && !defined(NOMAN) 561844SwollmanMAN1= ${PROG}.1 571638Srgrimes.endif 581638Srgrimes.endif 591638Srgrimes 601638Srgrimes.MAIN: all 6118340Sswallaceall: objwarn ${PROG} all-man _SUBDIR 621638Srgrimes 631638Srgrimes.if !target(clean) 6416663Sjkhclean: _SUBDIR 6514444Swosch rm -f a.out Errs errs mklog ${PROG} ${OBJS} ${CLEANFILES} 6616826Sphk.if defined(CLEANDIRS) && !empty(CLEANDIRS) 6716437Sphk rm -rf ${CLEANDIRS} 681638Srgrimes.endif 6916437Sphk.endif 701638Srgrimes 7124750Sbde.if defined(PROG) 7224750Sbde_EXTRADEPEND: 7324750Sbde echo ${PROG}: `${CC} -Wl,-f ${CFLAGS} ${LDFLAGS} ${LDDESTDIR} \ 7425110Sbde ${LDADD:S/^/-Wl,/}` >> ${DEPENDFILE} 7524750Sbde.endif 7624750Sbde 771638Srgrimes.if !target(install) 781638Srgrimes.if !target(beforeinstall) 791638Srgrimesbeforeinstall: 801638Srgrimes.endif 811638Srgrimes 8216663Sjkhrealinstall: beforeinstall 831638Srgrimes.if defined(PROG) 841844Swollman ${INSTALL} ${COPY} ${STRIP} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} \ 851996Swollman ${INSTALLFLAGS} ${PROG} ${DESTDIR}${BINDIR} 861638Srgrimes.endif 871638Srgrimes.if defined(HIDEGAME) 881638Srgrimes (cd ${DESTDIR}/usr/games; rm -f ${PROG}; ln -s dm ${PROG}; \ 8923542Sbde chown games:bin ${PROG}) 901638Srgrimes.endif 911638Srgrimes.if defined(LINKS) && !empty(LINKS) 921638Srgrimes @set ${LINKS}; \ 931638Srgrimes while test $$# -ge 2; do \ 941638Srgrimes l=${DESTDIR}$$1; \ 951638Srgrimes shift; \ 961638Srgrimes t=${DESTDIR}$$1; \ 971638Srgrimes shift; \ 982351Sbde ${ECHO} $$t -\> $$l; \ 991638Srgrimes rm -f $$t; \ 1006031Sjkh ln ${LN_FLAGS} $$l $$t; \ 1011638Srgrimes done; true 1021638Srgrimes.endif 1031638Srgrimes 10416663Sjkhinstall: afterinstall _SUBDIR 1051844Swollman.if !defined(NOMAN) 1061844Swollmanafterinstall: realinstall maninstall 1071844Swollman.else 1081638Srgrimesafterinstall: realinstall 1091844Swollman.endif 1101638Srgrimes.endif 1111638Srgrimes 1125585SjkhDISTRIBUTION?= bin 1134442Sphk.if !target(distribute) 11416663Sjkhdistribute: _SUBDIR 11526760Sjkh.for dist in ${DISTRIBUTION} 11626760Sjkh cd ${.CURDIR} ; $(MAKE) install DESTDIR=${DISTDIR}/${dist} SHARED=copies 11726760Sjkh.endfor 1184442Sphk.endif 1194442Sphk 1201638Srgrimes.if !target(lint) 12116663Sjkhlint: ${SRCS} _SUBDIR 1221638Srgrimes.if defined(PROG) 1231638Srgrimes @${LINT} ${LINTFLAGS} ${CFLAGS} ${.ALLSRC} | more 2>&1 1241638Srgrimes.endif 1251638Srgrimes.endif 1261638Srgrimes 12724861Sjkh.if defined(NOTAGS) 12824861Sjkhtags: 12924861Sjkh.endif 13024861Sjkh 1311638Srgrimes.if !target(tags) 13216663Sjkhtags: ${SRCS} _SUBDIR 1331638Srgrimes.if defined(PROG) 13424861Sjkh @cd ${.CURDIR} && gtags ${GTAGSFLAGS} 13524861Sjkh.if defined(HTML) 13624861Sjkh @cd ${.CURDIR} && htags ${HTAGSFLAGS} 1371638Srgrimes.endif 1381638Srgrimes.endif 13924861Sjkh.endif 1401638Srgrimes 1411638Srgrimes.if !defined(NOMAN) 1421638Srgrimes.include <bsd.man.mk> 1431844Swollman.elif !target(maninstall) 1441638Srgrimesmaninstall: 14511136Swollmanall-man: 1461638Srgrimes.endif 1471844Swollman 1481844Swollman.include <bsd.dep.mk> 14916663Sjkh.include <bsd.obj.mk> 150