bsd.lib.mk revision 1638
125184Sjkh# @(#)bsd.lib.mk 8.3 (Berkeley) 4/22/94 2113674Smtm 3113674Smtm.if exists(${.CURDIR}/../Makefile.inc) 4113674Smtm.include "${.CURDIR}/../Makefile.inc" 5113674Smtm.endif 6113674Smtm 7113674SmtmLIBDIR?= /usr/lib 8113674SmtmLINTLIBDIR?= /usr/libdata/lint 9113674SmtmLIBGRP?= bin 10113674SmtmLIBOWN?= bin 11113674SmtmLIBMODE?= 444 12113674Smtm 13113674SmtmSTRIP?= -s 14113674Smtm 15113674SmtmBINGRP?= bin 16113674SmtmBINOWN?= bin 17113674SmtmBINMODE?= 555 18113674Smtm 19113674Smtm.MAIN: all 20113674Smtm 21113674Smtm# prefer .s to a .c, add .po, remove stuff not used in the BSD libraries 22113674Smtm.SUFFIXES: 23113674Smtm.SUFFIXES: .out .o .po .s .c .f .y .l .8 .7 .6 .5 .4 .3 .2 .1 .0 .m4 24113674Smtm 2550472Speter.8.0 .7.0 .6.0 .5.0 .4.0 .3.0 .2.0 .1.0: 2666830Sobrien nroff -man ${.IMPSRC} > ${.TARGET} 2725184Sjkh 28113674Smtm.c.o: 29113674Smtm ${CC} ${CFLAGS} -c ${.IMPSRC} 30113674Smtm @${LD} -x -r ${.TARGET} 31113674Smtm @mv a.out ${.TARGET} 3225184Sjkh 33178356Ssam.c.po: 34178356Ssam ${CC} -p ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} 35178356Ssam @${LD} -X -r ${.TARGET} 36178356Ssam @mv a.out ${.TARGET} 37178356Ssam 38178356Ssam.s.o: 39178356Ssam ${CPP} -E ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} | \ 40178356Ssam ${AS} -o ${.TARGET} 41178356Ssam @${LD} -x -r ${.TARGET} 42178356Ssam @mv a.out ${.TARGET} 43178356Ssam 44178356Ssam.s.po: 45178356Ssam ${CPP} -E -DPROF ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} | \ 46178356Ssam ${AS} -o ${.TARGET} 47178356Ssam @${LD} -X -r ${.TARGET} 48178356Ssam @mv a.out ${.TARGET} 49179001Sbrooks 50178356SsamMANALL= ${MAN1} ${MAN2} ${MAN3} ${MAN4} ${MAN5} ${MAN6} ${MAN7} ${MAN8} 51178356Ssammanpages: ${MANALL} 52178356Ssam 53178356Ssam.if !defined(NOPROFILE) 54178356Ssam_LIBS=lib${LIB}.a lib${LIB}_p.a 55178356Ssam.else 56178356Ssam_LIBS=lib${LIB}.a 57178356Ssam.endif 58178356Ssam 59178356Ssamall: ${_LIBS} # llib-l${LIB}.ln 60178356Ssam.if !defined(NOMAN) 61178356Ssamall: ${MANALL} 62178356Ssam.endif 63178356Ssam 64178356SsamOBJS+= ${SRCS:R:S/$/.o/g} 65178356Ssam 66178356Ssamlib${LIB}.a:: ${OBJS} 67178356Ssam @echo building standard ${LIB} library 68178356Ssam @rm -f lib${LIB}.a 69178356Ssam @${AR} cTq lib${LIB}.a `lorder ${OBJS} | tsort` ${LDADD} 70179002Sbrooks ranlib lib${LIB}.a 71178356Ssam 72178356SsamPOBJS+= ${OBJS:.o=.po} 73178356Ssamlib${LIB}_p.a:: ${POBJS} 74178356Ssam @echo building profiled ${LIB} library 75113674Smtm @rm -f lib${LIB}_p.a 76113674Smtm @${AR} cTq lib${LIB}_p.a `lorder ${POBJS} | tsort` ${LDADD} 77113674Smtm ranlib lib${LIB}_p.a 78113674Smtm 79147088Sbrooksllib-l${LIB}.ln: ${SRCS} 80147088Sbrooks ${LINT} -C${LIB} ${CFLAGS} ${.ALLSRC:M*.c} 81113674Smtm 82113674Smtm.if !target(clean) 83113674Smtmclean: 84147088Sbrooks rm -f ${OBJS} 85147088Sbrooks rm -f ${POBJS} 86147088Sbrooks rm -f a.out [Ee]rrs mklog ${CLEANFILES} \ 87113674Smtm profiled/*.o lib${LIB}.a lib${LIB}_p.a llib-l${LIB}.ln 88178356Ssam.endif 89149726Sbrooks 90147088Sbrooks.if !target(cleandir) 91113674Smtmcleandir: 92147088Sbrooks rm -f ${OBJS} 93147088Sbrooks rm -f ${POBJS} 94147682Sbrooks rm -f a.out [Ee]rrs mklog ${CLEANFILES} \ 95147088Sbrooks profiled/*.o lib${LIB}.a lib${LIB}_p.a llib-l${LIB}.ln 96147088Sbrooks rm -f ${MANALL} .depend 97147088Sbrooks.endif 98147088Sbrooks 99149726Sbrooks.if !target(depend) 100149726Sbrooksdepend: .depend 101149726Sbrooks.depend: ${SRCS} 102157706Sbrooks mkdep ${CFLAGS:M-[ID]*} ${AINC} ${.ALLSRC} 103157706Sbrooks @(TMP=/tmp/_depend$$$$; \ 104157706Sbrooks sed -e 's/^\([^\.]*\).o *:/\1.o \1.po:/' < .depend > $$TMP; \ 105147088Sbrooks mv $$TMP .depend) 106147088Sbrooks.endif 107147088Sbrooks 108147121Sbrooks.if !target(install) 109113674Smtm.if !target(beforeinstall) 11025184Sjkhbeforeinstall: 111116029Smtm.endif 112161386Sbrooks 113161386Sbrooksrealinstall: beforeinstall 114116029Smtm ranlib lib${LIB}.a 115116029Smtm install -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} lib${LIB}.a \ 116116029Smtm ${DESTDIR}${LIBDIR} 117116029Smtm ${RANLIB} -t ${DESTDIR}${LIBDIR}/lib${LIB}.a 118147121Sbrooks.if !defined(NOPROFILE) 119116029Smtm ranlib lib${LIB}_p.a 120147088Sbrooks install -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 121147682Sbrooks lib${LIB}_p.a ${DESTDIR}${LIBDIR} 122147121Sbrooks ${RANLIB} -t ${DESTDIR}${LIBDIR}/lib${LIB}_p.a 123147088Sbrooks.endif 124147088Sbrooks# install -c -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 125147088Sbrooks# llib-l${LIB}.ln ${DESTDIR}${LINTLIBDIR} 126147088Sbrooks.if defined(LINKS) && !empty(LINKS) 127147088Sbrooks @set ${LINKS}; \ 128147088Sbrooks while test $$# -ge 2; do \ 129147088Sbrooks l=${DESTDIR}$$1; \ 130161386Sbrooks shift; \ 131161386Sbrooks t=${DESTDIR}$$1; \ 132161386Sbrooks shift; \ 133161386Sbrooks echo $$t -\> $$l; \ 134157706Sbrooks rm -f $$t; \ 135147121Sbrooks ln $$l $$t; \ 136116029Smtm done; true 137116029Smtm.endif 138157706Sbrooks 139157706Sbrooksinstall: afterinstall 140157706Sbrooksafterinstall: realinstall 141157706Sbrooks.if !defined(NOMAN) 142157706Sbrooksafterinstall: maninstall 143157706Sbrooks.endif 144157706Sbrooks.endif 145157706Sbrooks 146157706Sbrooks.if !target(lint) 147157706Sbrookslint: 148157706Sbrooks.endif 149157706Sbrooks 150157706Sbrooks.if !target(tags) 151157706Sbrookstags: ${SRCS} 152157736Sbrooks -ctags -f /dev/stdout ${.ALLSRC:M*.c} | \ 153157706Sbrooks sed "s;\${.CURDIR}/;;" > ${.CURDIR}/tags 154157706Sbrooks.endif 155157706Sbrooks 156157706Sbrooks.include <bsd.man.mk> 157157706Sbrooks.if !target(obj) 158157706Sbrooks.if defined(NOOBJ) 159157706Sbrooksobj: 160168033Sache.else 161157706Sbrooksobj: 162157706Sbrooks @cd ${.CURDIR}; rm -rf obj; \ 163147088Sbrooks here=`pwd`; dest=/usr/obj/`echo $$here | sed 's,/usr/src/,,'`; \ 164147088Sbrooks echo "$$here -> $$dest"; ln -s $$dest obj; \ 165147088Sbrooks if test -d /usr/obj -a ! -d $$dest; then \ 166147088Sbrooks mkdir -p $$dest; \ 167147088Sbrooks else \ 168147088Sbrooks true; \ 169147088Sbrooks fi; 170147088Sbrooks.endif 171147088Sbrooks.endif 172147088Sbrooks