bsd.prog.mk revision 125620
11844Swollman# from: @(#)bsd.prog.mk 5.26 (Berkeley) 6/25/91 250476Speter# $FreeBSD: head/share/mk/bsd.prog.mk 125620 2004-02-09 14:05:17Z ru $ 31638Srgrimes 494940Sru.include <bsd.init.mk> 51638Srgrimes 6103713Smarkm.SUFFIXES: .out .o .c .cc .cpp .cxx .C .m .y .l .ln .s .S .asm 71638Srgrimes 8119607Sru.if defined(COPTS) 9119607SruCFLAGS+=${COPTS} 10119607Sru.endif 11119607Sru 12119607Sru.if defined(DEBUG_FLAGS) 13119607SruCFLAGS+=${DEBUG_FLAGS} 14119607Sru.endif 15119607Sru 16119607Sru.if defined(CRUNCH_CFLAGS) 17117034SgordonCFLAGS+=${CRUNCH_CFLAGS} 18119607Sru.endif 191638Srgrimes 202827Sjkh.if !defined(DEBUG_FLAGS) 211638SrgrimesSTRIP?= -s 222827Sjkh.endif 231638Srgrimes 24125474Sru.if defined(NOSHARED) && (${NOSHARED} != "no" && ${NOSHARED} != "NO") 251844SwollmanLDFLAGS+= -static 261844Swollman.endif 271638Srgrimes 2894424Sru.if defined(PROG_CXX) 2994424SruPROG= ${PROG_CXX} 3094424Sru.endif 3194424Sru 321638Srgrimes.if defined(PROG) 331638Srgrimes.if defined(SRCS) 341638Srgrimes 3536054Sbde# If there are Objective C sources, link with Objective C libraries. 36125119Sru.if !empty(SRCS:M*.m) 3736054SbdeOBJCLIBS?= -lobjc 3836054SbdeLDADD+= ${OBJCLIBS} 3936054Sbde.endif 4036054Sbde 411844SwollmanOBJS+= ${SRCS:N*.h:R:S/$/.o/g} 421638Srgrimes 4394518Sru${PROG}: ${OBJS} 4494518Sru.if defined(PROG_CXX) 4594518Sru ${CXX} ${CXXFLAGS} ${LDFLAGS} -o ${.TARGET} ${OBJS} ${LDADD} 4694518Sru.else 4794518Sru ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${OBJS} ${LDADD} 4894518Sru.endif 4994518Sru 508321Sbde.else !defined(SRCS) 511844Swollman 5294518Sru.if !target(${PROG}) 5394424Sru.if defined(PROG_CXX) 5494424SruSRCS= ${PROG}.cc 5594424Sru.else 562351SbdeSRCS= ${PROG}.c 5794424Sru.endif 581638Srgrimes 592351Sbde# Always make an intermediate object file because: 602351Sbde# - it saves time rebuilding when only the library has changed 612351Sbde# - the name of the object gets put into the executable symbol table instead of 622351Sbde# the name of a variable temporary object. 632351Sbde# - it's useful to keep objects around for crunching. 642351SbdeOBJS= ${PROG}.o 6533624Seivind 6634081Sbde${PROG}: ${OBJS} 6794497Sru.if defined(PROG_CXX) 6894497Sru ${CXX} ${CXXFLAGS} ${LDFLAGS} -o ${.TARGET} ${OBJS} ${LDADD} 6994497Sru.else 7094410Sru ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${OBJS} ${LDADD} 7133624Seivind.endif 7294518Sru.endif 731638Srgrimes 741638Srgrimes.endif 751638Srgrimes 7674806Sru.if !defined(NOMAN) && !defined(MAN) && \ 7774806Sru !defined(MAN1) && !defined(MAN2) && !defined(MAN3) && \ 781638Srgrimes !defined(MAN4) && !defined(MAN5) && !defined(MAN6) && \ 7958493Sru !defined(MAN7) && !defined(MAN8) && !defined(MAN9) && \ 8074806Sru !defined(MAN1aout) 8174941SruMAN= ${PROG}.1 8274941SruMAN1= ${MAN} 831638Srgrimes.endif 841638Srgrimes.endif 851638Srgrimes 8697769Sruall: objwarn ${PROG} ${SCRIPTS} 8774806Sru.if !defined(NOMAN) 8896164Sruall: _manpages 8974806Sru.endif 901638Srgrimes 91119607Sru.if defined(PROG) 92119607SruCLEANFILES+= ${PROG} 93119607Sru.endif 941638Srgrimes 95119607Sru.if defined(OBJS) 96119607SruCLEANFILES+= ${OBJS} 97119607Sru.endif 98119607Sru 99125620Sru.include <bsd.libnames.mk> 100125620Sru 10155670Sbde.if defined(PROG) 10224750Sbde_EXTRADEPEND: 103125620Sru.if defined(LDFLAGS) && !empty(LDFLAGS:M-nostdlib) 104125620Sru.if defined(DPADD) && !empty(DPADD) 105125620Sru echo ${PROG}: ${DPADD} >> ${DEPENDFILE} 106125620Sru.endif 107125620Sru.else 10846541Sbde echo ${PROG}: ${LIBC} ${DPADD} >> ${DEPENDFILE} 10994497Sru.if defined(PROG_CXX) 11094497Sru echo ${PROG}: ${LIBSTDCPLUSPLUS} >> ${DEPENDFILE} 11124750Sbde.endif 11228945Speter.endif 113125620Sru.endif 11424750Sbde 1151638Srgrimes.if !target(install) 1161638Srgrimes 11749328Shoek_INSTALLFLAGS:= ${INSTALLFLAGS} 11849328Shoek.for ie in ${INSTALLFLAGS_EDIT} 11949328Shoek_INSTALLFLAGS:= ${_INSTALLFLAGS${ie}} 12049328Shoek.endfor 12149328Shoek 122125620Sru.if !target(realinstall) && !defined(INTERNALPROG) 12396163Srurealinstall: _proginstall 12499343Sru.ORDER: beforeinstall _proginstall 12596163Sru_proginstall: 1261638Srgrimes.if defined(PROG) 12775083Sru.if defined(PROGNAME) 128100872Sru ${INSTALL} ${STRIP} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} \ 12975083Sru ${_INSTALLFLAGS} ${PROG} ${DESTDIR}${BINDIR}/${PROGNAME} 13075083Sru.else 131100872Sru ${INSTALL} ${STRIP} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} \ 13249328Shoek ${_INSTALLFLAGS} ${PROG} ${DESTDIR}${BINDIR} 1331638Srgrimes.endif 13475083Sru.endif 13595734Sru.endif !target(realinstall) 1361638Srgrimes 13775284Sru.if defined(SCRIPTS) && !empty(SCRIPTS) 13875284Srurealinstall: _scriptsinstall 13999343Sru.ORDER: beforeinstall _scriptsinstall 14075284Sru 14175284SruSCRIPTSDIR?= ${BINDIR} 14275284SruSCRIPTSOWN?= ${BINOWN} 14375284SruSCRIPTSGRP?= ${BINGRP} 14475284SruSCRIPTSMODE?= ${BINMODE} 14575284Sru 14675284Sru.for script in ${SCRIPTS} 14775284Sru.if defined(SCRIPTSNAME) 14875284SruSCRIPTSNAME_${script:T}?= ${SCRIPTSNAME} 14975284Sru.else 15075284SruSCRIPTSNAME_${script:T}?= ${script:T:R} 15175284Sru.endif 15275284SruSCRIPTSDIR_${script:T}?= ${SCRIPTSDIR} 15375284SruSCRIPTSOWN_${script:T}?= ${SCRIPTSOWN} 15475284SruSCRIPTSGRP_${script:T}?= ${SCRIPTSGRP} 15575284SruSCRIPTSMODE_${script:T}?= ${SCRIPTSMODE} 15688055Sru_scriptsinstall: _SCRIPTSINS_${script:T} 15788055Sru_SCRIPTSINS_${script:T}: ${script} 158100872Sru ${INSTALL} -o ${SCRIPTSOWN_${.ALLSRC:T}} \ 15975284Sru -g ${SCRIPTSGRP_${.ALLSRC:T}} -m ${SCRIPTSMODE_${.ALLSRC:T}} \ 16094954Sru ${.ALLSRC} \ 16175284Sru ${DESTDIR}${SCRIPTSDIR_${.ALLSRC:T}}/${SCRIPTSNAME_${.ALLSRC:T}} 16275284Sru.endfor 16375284Sru.endif 16475284Sru 16599257SruNLSNAME?= ${PROG} 16699257Sru.include <bsd.nls.mk> 16799257Sru 16897769Sru.include <bsd.files.mk> 16996668Sru.include <bsd.incs.mk> 17099256Sru.include <bsd.links.mk> 17196462Sru 17296163Sru.if !defined(NOMAN) 17396164Srurealinstall: _maninstall 17499343Sru.ORDER: beforeinstall _maninstall 17596163Sru.endif 17696163Sru 1771844Swollman.endif 1781638Srgrimes 1791638Srgrimes.if !target(lint) 180103713Smarkmlint: ${SRCS:M*.c} 1811638Srgrimes.if defined(PROG) 182103713Smarkm ${LINT} ${LINTFLAGS} ${CFLAGS:M-[DIU]*} ${.ALLSRC} 1831638Srgrimes.endif 1841638Srgrimes.endif 1851638Srgrimes 1861638Srgrimes.if !defined(NOMAN) 1871638Srgrimes.include <bsd.man.mk> 18874842Sru.endif 1891844Swollman 1901844Swollman.include <bsd.dep.mk> 19134081Sbde 19294113Sru.if defined(PROG) && !exists(${.OBJDIR}/${DEPENDFILE}) 19334087Sbde${OBJS}: ${SRCS:M*.h} 19434081Sbde.endif 19534081Sbde 19616663Sjkh.include <bsd.obj.mk> 19776861Skris 19876861Skris.include <bsd.sys.mk> 199