bsd.prog.mk revision 96462
11844Swollman# from: @(#)bsd.prog.mk 5.26 (Berkeley) 6/25/91 250476Speter# $FreeBSD: head/share/mk/bsd.prog.mk 96462 2002-05-12 16:01:00Z ru $ 31638Srgrimes 494940Sru.include <bsd.init.mk> 51638Srgrimes 695064Sobrien.SUFFIXES: .out .o .c .cc .cpp .cxx .C .m .y .l .s .S .asm 71638Srgrimes 82827SjkhCFLAGS+=${COPTS} ${DEBUG_FLAGS} 91638Srgrimes 102827Sjkh.if !defined(DEBUG_FLAGS) 111638SrgrimesSTRIP?= -s 122827Sjkh.endif 131638Srgrimes 1427028Spst.if defined(NOSHARED) && ( ${NOSHARED} != "no" && ${NOSHARED} != "NO" ) 151844SwollmanLDFLAGS+= -static 161844Swollman.endif 171638Srgrimes 1894424Sru.if defined(PROG_CXX) 1994424SruPROG= ${PROG_CXX} 2094424Sru.endif 2194424Sru 221638Srgrimes.if defined(PROG) 231638Srgrimes.if defined(SRCS) 241638Srgrimes 2536054Sbde# If there are Objective C sources, link with Objective C libraries. 2636054Sbde.if ${SRCS:M*.m} != "" 2736054SbdeOBJCLIBS?= -lobjc 2836054SbdeLDADD+= ${OBJCLIBS} 2936054Sbde.endif 3036054Sbde 311844SwollmanOBJS+= ${SRCS:N*.h:R:S/$/.o/g} 321638Srgrimes 3394518Sru${PROG}: ${OBJS} 3494518Sru.if defined(PROG_CXX) 3594518Sru ${CXX} ${CXXFLAGS} ${LDFLAGS} -o ${.TARGET} ${OBJS} ${LDADD} 3694518Sru.else 3794518Sru ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${OBJS} ${LDADD} 3894518Sru.endif 3994518Sru 408321Sbde.else !defined(SRCS) 411844Swollman 4294518Sru.if !target(${PROG}) 4394424Sru.if defined(PROG_CXX) 4494424SruSRCS= ${PROG}.cc 4594424Sru.else 462351SbdeSRCS= ${PROG}.c 4794424Sru.endif 481638Srgrimes 492351Sbde# Always make an intermediate object file because: 502351Sbde# - it saves time rebuilding when only the library has changed 512351Sbde# - the name of the object gets put into the executable symbol table instead of 522351Sbde# the name of a variable temporary object. 532351Sbde# - it's useful to keep objects around for crunching. 542351SbdeOBJS= ${PROG}.o 5533624Seivind 5634081Sbde${PROG}: ${OBJS} 5794497Sru.if defined(PROG_CXX) 5894497Sru ${CXX} ${CXXFLAGS} ${LDFLAGS} -o ${.TARGET} ${OBJS} ${LDADD} 5994497Sru.else 6094410Sru ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${OBJS} ${LDADD} 6133624Seivind.endif 6294518Sru.endif 631638Srgrimes 641638Srgrimes.endif 651638Srgrimes 6674806Sru.if !defined(NOMAN) && !defined(MAN) && \ 6774806Sru !defined(MAN1) && !defined(MAN2) && !defined(MAN3) && \ 681638Srgrimes !defined(MAN4) && !defined(MAN5) && !defined(MAN6) && \ 6958493Sru !defined(MAN7) && !defined(MAN8) && !defined(MAN9) && \ 7074806Sru !defined(MAN1aout) 7174941SruMAN= ${PROG}.1 7274941SruMAN1= ${MAN} 731638Srgrimes.endif 741638Srgrimes.endif 751638Srgrimes 7688055Sruall: objwarn ${PROG} ${SCRIPTS} ${FILES} 7774806Sru.if !defined(NOMAN) 7896164Sruall: _manpages 7974806Sru.endif 801638Srgrimes 8133816SbdeCLEANFILES+= ${PROG} ${OBJS} 821638Srgrimes 8355670Sbde.if defined(PROG) 8424750Sbde_EXTRADEPEND: 8538655Sjb.if ${OBJFORMAT} == aout 8694410Sru echo ${PROG}: `${CC} -Wl,-f ${CFLAGS} ${LDFLAGS} \ 8725110Sbde ${LDADD:S/^/-Wl,/}` >> ${DEPENDFILE} 8828945Speter.else 8946541Sbde echo ${PROG}: ${LIBC} ${DPADD} >> ${DEPENDFILE} 9094497Sru.if defined(PROG_CXX) 9194497Sru echo ${PROG}: ${LIBSTDCPLUSPLUS} >> ${DEPENDFILE} 9224750Sbde.endif 9328945Speter.endif 9494497Sru.endif 9524750Sbde 961638Srgrimes.if !target(install) 971638Srgrimes 9849328Shoek_INSTALLFLAGS:= ${INSTALLFLAGS} 9949328Shoek.for ie in ${INSTALLFLAGS_EDIT} 10049328Shoek_INSTALLFLAGS:= ${_INSTALLFLAGS${ie}} 10149328Shoek.endfor 10249328Shoek 10395734Sru.if !target(realinstall) 10496163Srurealinstall: _proginstall 10596163Sru_proginstall: 1061638Srgrimes.if defined(PROG) 10775083Sru.if defined(PROGNAME) 1081844Swollman ${INSTALL} ${COPY} ${STRIP} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} \ 10975083Sru ${_INSTALLFLAGS} ${PROG} ${DESTDIR}${BINDIR}/${PROGNAME} 11075083Sru.else 11175083Sru ${INSTALL} ${COPY} ${STRIP} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} \ 11249328Shoek ${_INSTALLFLAGS} ${PROG} ${DESTDIR}${BINDIR} 1131638Srgrimes.endif 11475083Sru.endif 1151638Srgrimes.if defined(HIDEGAME) 11678203Sru (cd ${DESTDIR}${ORIGBINDIR}; ln -fs dm ${PROG}; \ 11778203Sru chown -h ${BINOWN}:${ORIGBINGRP} ${PROG}) 1181638Srgrimes.endif 11996163Sru 12096163Srurealinstall: 1211638Srgrimes.if defined(LINKS) && !empty(LINKS) 1221638Srgrimes @set ${LINKS}; \ 1231638Srgrimes while test $$# -ge 2; do \ 1241638Srgrimes l=${DESTDIR}$$1; \ 1251638Srgrimes shift; \ 1261638Srgrimes t=${DESTDIR}$$1; \ 1271638Srgrimes shift; \ 1282351Sbde ${ECHO} $$t -\> $$l; \ 12944946Sbde ln -f $$l $$t; \ 1301638Srgrimes done; true 1311638Srgrimes.endif 13244946Sbde.if defined(SYMLINKS) && !empty(SYMLINKS) 13344946Sbde @set ${SYMLINKS}; \ 13444946Sbde while test $$# -ge 2; do \ 13544946Sbde l=$$1; \ 13644946Sbde shift; \ 13744946Sbde t=${DESTDIR}$$1; \ 13844946Sbde shift; \ 13944946Sbde ${ECHO} $$t -\> $$l; \ 14044946Sbde ln -fs $$l $$t; \ 14144946Sbde done; true 14244946Sbde.endif 14395734Sru.endif !target(realinstall) 1441638Srgrimes 14575284Sru.if defined(SCRIPTS) && !empty(SCRIPTS) 14675284Srurealinstall: _scriptsinstall 14775284Sru 14875284SruSCRIPTSDIR?= ${BINDIR} 14975284SruSCRIPTSOWN?= ${BINOWN} 15075284SruSCRIPTSGRP?= ${BINGRP} 15175284SruSCRIPTSMODE?= ${BINMODE} 15275284Sru 15375284Sru.for script in ${SCRIPTS} 15475284Sru.if defined(SCRIPTSNAME) 15575284SruSCRIPTSNAME_${script:T}?= ${SCRIPTSNAME} 15675284Sru.else 15775284SruSCRIPTSNAME_${script:T}?= ${script:T:R} 15875284Sru.endif 15975284SruSCRIPTSDIR_${script:T}?= ${SCRIPTSDIR} 16075284SruSCRIPTSOWN_${script:T}?= ${SCRIPTSOWN} 16175284SruSCRIPTSGRP_${script:T}?= ${SCRIPTSGRP} 16275284SruSCRIPTSMODE_${script:T}?= ${SCRIPTSMODE} 16388055Sru_scriptsinstall: _SCRIPTSINS_${script:T} 16488055Sru_SCRIPTSINS_${script:T}: ${script} 16575284Sru ${INSTALL} ${COPY} -o ${SCRIPTSOWN_${.ALLSRC:T}} \ 16675284Sru -g ${SCRIPTSGRP_${.ALLSRC:T}} -m ${SCRIPTSMODE_${.ALLSRC:T}} \ 16794954Sru ${.ALLSRC} \ 16875284Sru ${DESTDIR}${SCRIPTSDIR_${.ALLSRC:T}}/${SCRIPTSNAME_${.ALLSRC:T}} 16975284Sru.endfor 17075284Sru.endif 17175284Sru 17288055Sru.if defined(FILES) && !empty(FILES) 17388055Srurealinstall: _filesinstall 17488055Sru 17588055SruFILESDIR?= ${BINDIR} 17688055SruFILESOWN?= ${SHAREOWN} 17788055SruFILESGRP?= ${SHAREGRP} 17888055SruFILESMODE?= ${SHAREMODE} 17988055Sru 18088055Sru.for file in ${FILES} 18188055Sru.if defined(FILESNAME) 18288055SruFILESNAME_${file:T}?= ${FILESNAME} 18388055Sru.else 18488055SruFILESNAME_${file:T}?= ${file:T} 18588055Sru.endif 18688055SruFILESDIR_${file:T}?= ${FILESDIR} 18788055SruFILESOWN_${file:T}?= ${FILESOWN} 18888055SruFILESGRP_${file:T}?= ${FILESGRP} 18988055SruFILESMODE_${file:T}?= ${FILESMODE} 19088055Sru_filesinstall: _FILESINS_${file:T} 19188055Sru_FILESINS_${file:T}: ${file} 19288055Sru ${INSTALL} ${COPY} -o ${FILESOWN_${.ALLSRC:T}} \ 19388055Sru -g ${FILESGRP_${.ALLSRC:T}} -m ${FILESMODE_${.ALLSRC:T}} \ 19494954Sru ${.ALLSRC} \ 19588055Sru ${DESTDIR}${FILESDIR_${.ALLSRC:T}}/${FILESNAME_${.ALLSRC:T}} 19688055Sru.endfor 19788055Sru.endif 19888055Sru 19996462Srurealinstall: _incsinstall 20096462Sru 20196163Sru.if !defined(NOMAN) 20296164Srurealinstall: _maninstall 20396163Sru.endif 20496163Sru 2051844Swollman.endif 2061638Srgrimes 2071638Srgrimes.if !target(lint) 20895306Srulint: ${SRCS} 2091638Srgrimes.if defined(PROG) 21087307Sbde ${LINT} ${LINTFLAGS} ${CFLAGS:M-[DIU]*} ${.ALLSRC} | more 2>&1 2111638Srgrimes.endif 2121638Srgrimes.endif 2131638Srgrimes 21424861Sjkh.if defined(NOTAGS) 21524861Sjkhtags: 21624861Sjkh.endif 21724861Sjkh 2181638Srgrimes.if !target(tags) 21995306Srutags: ${SRCS} 2201638Srgrimes.if defined(PROG) 22134829Seivind @cd ${.CURDIR} && gtags ${GTAGSFLAGS} ${.OBJDIR} 22224861Sjkh.if defined(HTML) 22334829Seivind @cd ${.CURDIR} && htags ${HTAGSFLAGS} -d ${.OBJDIR} ${.OBJDIR} 2241638Srgrimes.endif 2251638Srgrimes.endif 22624861Sjkh.endif 2271638Srgrimes 22896462Sru.include <bsd.incs.mk> 22996462Sru 2301638Srgrimes.if !defined(NOMAN) 2311638Srgrimes.include <bsd.man.mk> 23274842Sru.endif 2331844Swollman 23443055Sjdp.if ${OBJFORMAT} != aout || make(checkdpadd) || defined(NEED_LIBNAMES) 23528945Speter.include <bsd.libnames.mk> 23628945Speter.endif 23728945Speter 2381844Swollman.include <bsd.dep.mk> 23934081Sbde 24094113Sru.if defined(PROG) && !exists(${.OBJDIR}/${DEPENDFILE}) 24134087Sbde${OBJS}: ${SRCS:M*.h} 24234081Sbde.endif 24334081Sbde 24416663Sjkh.include <bsd.obj.mk> 24576861Skris 24676861Skris.include <bsd.sys.mk> 247