bsd.prog.mk revision 34081
11844Swollman# from: @(#)bsd.prog.mk 5.26 (Berkeley) 6/25/91 234081Sbde# $Id: bsd.prog.mk,v 1.63 1998/02/25 02:56:58 bde Exp $ 31638Srgrimes 41844Swollman.if exists(${.CURDIR}/../Makefile.inc) 51638Srgrimes.include "${.CURDIR}/../Makefile.inc" 61638Srgrimes.endif 71638Srgrimes 829129Speter# Default executable format 929129SpeterBINFORMAT?= aout 1029129Speter 111844Swollman.SUFFIXES: .out .o .c .cc .cxx .C .y .l .s .S 121638Srgrimes 132827SjkhCFLAGS+=${COPTS} ${DEBUG_FLAGS} 141844Swollman.if defined(DESTDIR) 151844SwollmanCFLAGS+= -I${DESTDIR}/usr/include 1626051SasamiCXXINCLUDES+= -I${DESTDIR}/usr/include/g++ 171844Swollman.endif 181638Srgrimes 192827Sjkh.if !defined(DEBUG_FLAGS) 201638SrgrimesSTRIP?= -s 212827Sjkh.endif 221638Srgrimes 2327028Spst.if defined(NOSHARED) && ( ${NOSHARED} != "no" && ${NOSHARED} != "NO" ) 241844SwollmanLDFLAGS+= -static 251844Swollman.endif 261638Srgrimes 271638Srgrimes.if defined(PROG) 281638Srgrimes.if defined(SRCS) 291638Srgrimes 301844SwollmanDPSRCS+= ${SRCS:M*.h} 311844SwollmanOBJS+= ${SRCS:N*.h:R:S/$/.o/g} 321638Srgrimes 3334081Sbde${PROG}: ${OBJS} 341844Swollman ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${OBJS} ${LDDESTDIR} ${LDADD} 351844Swollman 368321Sbde.else !defined(SRCS) 371844Swollman 3833624Seivind.if !target(${PROG}) 392351SbdeSRCS= ${PROG}.c 401638Srgrimes 412351Sbde# Always make an intermediate object file because: 422351Sbde# - it saves time rebuilding when only the library has changed 432351Sbde# - the name of the object gets put into the executable symbol table instead of 442351Sbde# the name of a variable temporary object. 452351Sbde# - it's useful to keep objects around for crunching. 462351SbdeOBJS= ${PROG}.o 4733624Seivind 4834081Sbde${PROG}: ${OBJS} 492351Sbde ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${OBJS} ${LDDESTDIR} ${LDADD} 5033624Seivind.endif 511638Srgrimes 521638Srgrimes.endif 531638Srgrimes 541638Srgrimes.if !defined(MAN1) && !defined(MAN2) && !defined(MAN3) && \ 551638Srgrimes !defined(MAN4) && !defined(MAN5) && !defined(MAN6) && \ 561638Srgrimes !defined(MAN7) && !defined(MAN8) && !defined(NOMAN) 571844SwollmanMAN1= ${PROG}.1 581638Srgrimes.endif 591638Srgrimes.endif 601638Srgrimes 611638Srgrimes.MAIN: all 6218340Sswallaceall: objwarn ${PROG} all-man _SUBDIR 631638Srgrimes 6433816SbdeCLEANFILES+= ${PROG} ${OBJS} 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 7231810Sbde.if defined(DPADD) && !empty(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 14931810Sbde.if ${BINFORMAT} != aout || make(checkdpadd) 15028945Speter.include <bsd.libnames.mk> 15128945Speter.endif 15228945Speter 1531844Swollman.include <bsd.dep.mk> 15434081Sbde 15534081Sbde.if defined(PROG) && !exists(${DEPENDFILE}) 15634081Sbde${OBJS}: ${DPSRCS} 15734081Sbde.endif 15834081Sbde 15916663Sjkh.include <bsd.obj.mk> 160