bsd.prog.mk revision 50476
11844Swollman# from: @(#)bsd.prog.mk 5.26 (Berkeley) 6/25/91 250476Speter# $FreeBSD: head/share/mk/bsd.prog.mk 50476 1999-08-28 00:22:10Z peter $ 31638Srgrimes 438183Speter.if !target(__initialized__) 538183Speter__initialized__: 61844Swollman.if exists(${.CURDIR}/../Makefile.inc) 71638Srgrimes.include "${.CURDIR}/../Makefile.inc" 81638Srgrimes.endif 938183Speter.endif 101638Srgrimes 1136673Sdt.SUFFIXES: .out .o .c .cc .cpp .cxx .C .m .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 3036054Sbde# If there are Objective C sources, link with Objective C libraries. 3136054Sbde.if ${SRCS:M*.m} != "" 3236054SbdeOBJCLIBS?= -lobjc 3336054SbdeLDADD+= ${OBJCLIBS} 3436054Sbde.endif 3536054Sbde 361844SwollmanOBJS+= ${SRCS:N*.h:R:S/$/.o/g} 371638Srgrimes 3834081Sbde${PROG}: ${OBJS} 391844Swollman ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${OBJS} ${LDDESTDIR} ${LDADD} 401844Swollman 418321Sbde.else !defined(SRCS) 421844Swollman 4333624Seivind.if !target(${PROG}) 442351SbdeSRCS= ${PROG}.c 451638Srgrimes 462351Sbde# Always make an intermediate object file because: 472351Sbde# - it saves time rebuilding when only the library has changed 482351Sbde# - the name of the object gets put into the executable symbol table instead of 492351Sbde# the name of a variable temporary object. 502351Sbde# - it's useful to keep objects around for crunching. 512351SbdeOBJS= ${PROG}.o 5233624Seivind 5334081Sbde${PROG}: ${OBJS} 542351Sbde ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${OBJS} ${LDDESTDIR} ${LDADD} 5533624Seivind.endif 561638Srgrimes 571638Srgrimes.endif 581638Srgrimes 591638Srgrimes.if !defined(MAN1) && !defined(MAN2) && !defined(MAN3) && \ 601638Srgrimes !defined(MAN4) && !defined(MAN5) && !defined(MAN6) && \ 6138898Sjb !defined(MAN7) && !defined(MAN8) && !defined(NOMAN) && \ 6238898Sjb !defined(MAN1aout) 631844SwollmanMAN1= ${PROG}.1 641638Srgrimes.endif 651638Srgrimes.endif 661638Srgrimes 671638Srgrimes.MAIN: all 6818340Sswallaceall: objwarn ${PROG} all-man _SUBDIR 691638Srgrimes 7033816SbdeCLEANFILES+= ${PROG} ${OBJS} 711638Srgrimes 7227910Sasami.if defined(PROG) && !defined(NOEXTRADEPEND) 7324750Sbde_EXTRADEPEND: 7438655Sjb.if ${OBJFORMAT} == aout 7524750Sbde echo ${PROG}: `${CC} -Wl,-f ${CFLAGS} ${LDFLAGS} ${LDDESTDIR} \ 7625110Sbde ${LDADD:S/^/-Wl,/}` >> ${DEPENDFILE} 7728945Speter.else 7846541Sbde echo ${PROG}: ${LIBC} ${DPADD} >> ${DEPENDFILE} 7924750Sbde.endif 8028945Speter.endif 8124750Sbde 821638Srgrimes.if !target(install) 831638Srgrimes.if !target(beforeinstall) 841638Srgrimesbeforeinstall: 851638Srgrimes.endif 861638Srgrimes 8749328Shoek_INSTALLFLAGS:= ${INSTALLFLAGS} 8849328Shoek.for ie in ${INSTALLFLAGS_EDIT} 8949328Shoek_INSTALLFLAGS:= ${_INSTALLFLAGS${ie}} 9049328Shoek.endfor 9149328Shoek 9216663Sjkhrealinstall: beforeinstall 931638Srgrimes.if defined(PROG) 941844Swollman ${INSTALL} ${COPY} ${STRIP} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} \ 9549328Shoek ${_INSTALLFLAGS} ${PROG} ${DESTDIR}${BINDIR} 961638Srgrimes.endif 971638Srgrimes.if defined(HIDEGAME) 9840505Sobrien (cd ${DESTDIR}/${GBINDIR}; rm -f ${PROG}; ln -s dm ${PROG}; \ 9923542Sbde chown games:bin ${PROG}) 1001638Srgrimes.endif 1011638Srgrimes.if defined(LINKS) && !empty(LINKS) 1021638Srgrimes @set ${LINKS}; \ 1031638Srgrimes while test $$# -ge 2; do \ 1041638Srgrimes l=${DESTDIR}$$1; \ 1051638Srgrimes shift; \ 1061638Srgrimes t=${DESTDIR}$$1; \ 1071638Srgrimes shift; \ 1082351Sbde ${ECHO} $$t -\> $$l; \ 10944946Sbde ln -f $$l $$t; \ 1101638Srgrimes done; true 1111638Srgrimes.endif 11244946Sbde.if defined(SYMLINKS) && !empty(SYMLINKS) 11344946Sbde @set ${SYMLINKS}; \ 11444946Sbde while test $$# -ge 2; do \ 11544946Sbde l=$$1; \ 11644946Sbde shift; \ 11744946Sbde t=${DESTDIR}$$1; \ 11844946Sbde shift; \ 11944946Sbde ${ECHO} $$t -\> $$l; \ 12044946Sbde ln -fs $$l $$t; \ 12144946Sbde done; true 12244946Sbde.endif 1231638Srgrimes 12416663Sjkhinstall: afterinstall _SUBDIR 1251844Swollman.if !defined(NOMAN) 1261844Swollmanafterinstall: realinstall maninstall 1271844Swollman.else 1281638Srgrimesafterinstall: realinstall 1291844Swollman.endif 1301638Srgrimes.endif 1311638Srgrimes 1325585SjkhDISTRIBUTION?= bin 1334442Sphk.if !target(distribute) 13416663Sjkhdistribute: _SUBDIR 13526760Sjkh.for dist in ${DISTRIBUTION} 13626760Sjkh cd ${.CURDIR} ; $(MAKE) install DESTDIR=${DISTDIR}/${dist} SHARED=copies 13726760Sjkh.endfor 1384442Sphk.endif 1394442Sphk 1401638Srgrimes.if !target(lint) 14116663Sjkhlint: ${SRCS} _SUBDIR 1421638Srgrimes.if defined(PROG) 1431638Srgrimes @${LINT} ${LINTFLAGS} ${CFLAGS} ${.ALLSRC} | more 2>&1 1441638Srgrimes.endif 1451638Srgrimes.endif 1461638Srgrimes 14724861Sjkh.if defined(NOTAGS) 14824861Sjkhtags: 14924861Sjkh.endif 15024861Sjkh 1511638Srgrimes.if !target(tags) 15216663Sjkhtags: ${SRCS} _SUBDIR 1531638Srgrimes.if defined(PROG) 15434829Seivind @cd ${.CURDIR} && gtags ${GTAGSFLAGS} ${.OBJDIR} 15524861Sjkh.if defined(HTML) 15634829Seivind @cd ${.CURDIR} && htags ${HTAGSFLAGS} -d ${.OBJDIR} ${.OBJDIR} 1571638Srgrimes.endif 1581638Srgrimes.endif 15924861Sjkh.endif 1601638Srgrimes 1611638Srgrimes.if !defined(NOMAN) 1621638Srgrimes.include <bsd.man.mk> 1631844Swollman.elif !target(maninstall) 1641638Srgrimesmaninstall: 16511136Swollmanall-man: 1661638Srgrimes.endif 1671844Swollman 16834528Seivind.if !target(regress) 16934528Seivindregress: 17034528Seivind.endif 17134528Seivind 17243055Sjdp.if ${OBJFORMAT} != aout || make(checkdpadd) || defined(NEED_LIBNAMES) 17328945Speter.include <bsd.libnames.mk> 17428945Speter.endif 17528945Speter 1761844Swollman.include <bsd.dep.mk> 17734081Sbde 17834081Sbde.if defined(PROG) && !exists(${DEPENDFILE}) 17934087Sbde${OBJS}: ${SRCS:M*.h} 18034081Sbde.endif 18134081Sbde 18216663Sjkh.include <bsd.obj.mk> 183