bsd.prog.mk revision 28945
11844Swollman# from: @(#)bsd.prog.mk 5.26 (Berkeley) 6/25/91 228945Speter# $Id: bsd.prog.mk,v 1.54 1997/08/05 03:49:49 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 2027028Spst.if defined(NOSHARED) && ( ${NOSHARED} != "no" && ${NOSHARED} != "NO" ) 211844SwollmanLDFLAGS+= -static 221844Swollman.endif 231638Srgrimes 241638Srgrimes.if defined(PROG) 251638Srgrimes.if defined(SRCS) 261638Srgrimes 271844SwollmanDPSRCS+= ${SRCS:M*.h} 281844SwollmanOBJS+= ${SRCS:N*.h:R:S/$/.o/g} 291638Srgrimes 3024750Sbde${PROG}: ${DPSRCS} ${OBJS} 311844Swollman ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${OBJS} ${LDDESTDIR} ${LDADD} 321844Swollman 338321Sbde.else !defined(SRCS) 341844Swollman 352351SbdeSRCS= ${PROG}.c 361638Srgrimes 372351Sbde# Always make an intermediate object file because: 382351Sbde# - it saves time rebuilding when only the library has changed 392351Sbde# - the name of the object gets put into the executable symbol table instead of 402351Sbde# the name of a variable temporary object. 412351Sbde# - it's useful to keep objects around for crunching. 422351SbdeOBJS= ${PROG}.o 4324750Sbde${PROG}: ${DPSRCS} ${OBJS} 442351Sbde ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${OBJS} ${LDDESTDIR} ${LDADD} 451638Srgrimes 461638Srgrimes.endif 471638Srgrimes 481638Srgrimes.if !defined(MAN1) && !defined(MAN2) && !defined(MAN3) && \ 491638Srgrimes !defined(MAN4) && !defined(MAN5) && !defined(MAN6) && \ 501638Srgrimes !defined(MAN7) && !defined(MAN8) && !defined(NOMAN) 511844SwollmanMAN1= ${PROG}.1 521638Srgrimes.endif 531638Srgrimes.endif 541638Srgrimes 551638Srgrimes.MAIN: all 5618340Sswallaceall: objwarn ${PROG} all-man _SUBDIR 571638Srgrimes 581638Srgrimes.if !target(clean) 5916663Sjkhclean: _SUBDIR 6014444Swosch rm -f a.out Errs errs mklog ${PROG} ${OBJS} ${CLEANFILES} 6116826Sphk.if defined(CLEANDIRS) && !empty(CLEANDIRS) 6216437Sphk rm -rf ${CLEANDIRS} 631638Srgrimes.endif 6416437Sphk.endif 651638Srgrimes 6627910Sasami.if defined(PROG) && !defined(NOEXTRADEPEND) 6724750Sbde_EXTRADEPEND: 6828945Speter.if ${BINFORMAT} == aout 6924750Sbde echo ${PROG}: `${CC} -Wl,-f ${CFLAGS} ${LDFLAGS} ${LDDESTDIR} \ 7025110Sbde ${LDADD:S/^/-Wl,/}` >> ${DEPENDFILE} 7128945Speter.else 7228945Speter.if defined(DPADD) && ${DPADD} != "" 7328945Speter echo ${PROG}: ${DPADD} >> ${DEPENDFILE} 7424750Sbde.endif 7528945Speter.endif 7628945Speter.endif 7724750Sbde 781638Srgrimes.if !target(install) 791638Srgrimes.if !target(beforeinstall) 801638Srgrimesbeforeinstall: 811638Srgrimes.endif 821638Srgrimes 8316663Sjkhrealinstall: beforeinstall 841638Srgrimes.if defined(PROG) 851844Swollman ${INSTALL} ${COPY} ${STRIP} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} \ 861996Swollman ${INSTALLFLAGS} ${PROG} ${DESTDIR}${BINDIR} 871638Srgrimes.endif 881638Srgrimes.if defined(HIDEGAME) 891638Srgrimes (cd ${DESTDIR}/usr/games; rm -f ${PROG}; ln -s dm ${PROG}; \ 9023542Sbde chown games:bin ${PROG}) 911638Srgrimes.endif 921638Srgrimes.if defined(LINKS) && !empty(LINKS) 931638Srgrimes @set ${LINKS}; \ 941638Srgrimes while test $$# -ge 2; do \ 951638Srgrimes l=${DESTDIR}$$1; \ 961638Srgrimes shift; \ 971638Srgrimes t=${DESTDIR}$$1; \ 981638Srgrimes shift; \ 992351Sbde ${ECHO} $$t -\> $$l; \ 1001638Srgrimes rm -f $$t; \ 1016031Sjkh ln ${LN_FLAGS} $$l $$t; \ 1021638Srgrimes done; true 1031638Srgrimes.endif 1041638Srgrimes 10516663Sjkhinstall: afterinstall _SUBDIR 1061844Swollman.if !defined(NOMAN) 1071844Swollmanafterinstall: realinstall maninstall 1081844Swollman.else 1091638Srgrimesafterinstall: realinstall 1101844Swollman.endif 1111638Srgrimes.endif 1121638Srgrimes 1135585SjkhDISTRIBUTION?= bin 1144442Sphk.if !target(distribute) 11516663Sjkhdistribute: _SUBDIR 11626760Sjkh.for dist in ${DISTRIBUTION} 11726760Sjkh cd ${.CURDIR} ; $(MAKE) install DESTDIR=${DISTDIR}/${dist} SHARED=copies 11826760Sjkh.endfor 1194442Sphk.endif 1204442Sphk 1211638Srgrimes.if !target(lint) 12216663Sjkhlint: ${SRCS} _SUBDIR 1231638Srgrimes.if defined(PROG) 1241638Srgrimes @${LINT} ${LINTFLAGS} ${CFLAGS} ${.ALLSRC} | more 2>&1 1251638Srgrimes.endif 1261638Srgrimes.endif 1271638Srgrimes 12824861Sjkh.if defined(NOTAGS) 12924861Sjkhtags: 13024861Sjkh.endif 13124861Sjkh 1321638Srgrimes.if !target(tags) 13316663Sjkhtags: ${SRCS} _SUBDIR 1341638Srgrimes.if defined(PROG) 13524861Sjkh @cd ${.CURDIR} && gtags ${GTAGSFLAGS} 13624861Sjkh.if defined(HTML) 13724861Sjkh @cd ${.CURDIR} && htags ${HTAGSFLAGS} 1381638Srgrimes.endif 1391638Srgrimes.endif 14024861Sjkh.endif 1411638Srgrimes 1421638Srgrimes.if !defined(NOMAN) 1431638Srgrimes.include <bsd.man.mk> 1441844Swollman.elif !target(maninstall) 1451638Srgrimesmaninstall: 14611136Swollmanall-man: 1471638Srgrimes.endif 1481844Swollman 14928945Speter.if ${BINFORMAT} != aout 15028945Speter.include <bsd.libnames.mk> 15128945Speter.endif 15228945Speter 1531844Swollman.include <bsd.dep.mk> 15416663Sjkh.include <bsd.obj.mk> 155