diff options
Diffstat (limited to 'share/mk/bsd.lib.mk')
-rw-r--r-- | share/mk/bsd.lib.mk | 171 |
1 files changed, 171 insertions, 0 deletions
diff --git a/share/mk/bsd.lib.mk b/share/mk/bsd.lib.mk new file mode 100644 index 0000000..c52cb08 --- /dev/null +++ b/share/mk/bsd.lib.mk @@ -0,0 +1,171 @@ +# @(#)bsd.lib.mk 8.3 (Berkeley) 4/22/94 + +.if exists(${.CURDIR}/../Makefile.inc) +.include "${.CURDIR}/../Makefile.inc" +.endif + +LIBDIR?= /usr/lib +LINTLIBDIR?= /usr/libdata/lint +LIBGRP?= bin +LIBOWN?= bin +LIBMODE?= 444 + +STRIP?= -s + +BINGRP?= bin +BINOWN?= bin +BINMODE?= 555 + +.MAIN: all + +# prefer .s to a .c, add .po, remove stuff not used in the BSD libraries +.SUFFIXES: +.SUFFIXES: .out .o .po .s .c .f .y .l .8 .7 .6 .5 .4 .3 .2 .1 .0 .m4 + +.8.0 .7.0 .6.0 .5.0 .4.0 .3.0 .2.0 .1.0: + nroff -man ${.IMPSRC} > ${.TARGET} + +.c.o: + ${CC} ${CFLAGS} -c ${.IMPSRC} + @${LD} -x -r ${.TARGET} + @mv a.out ${.TARGET} + +.c.po: + ${CC} -p ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} + @${LD} -X -r ${.TARGET} + @mv a.out ${.TARGET} + +.s.o: + ${CPP} -E ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} | \ + ${AS} -o ${.TARGET} + @${LD} -x -r ${.TARGET} + @mv a.out ${.TARGET} + +.s.po: + ${CPP} -E -DPROF ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} | \ + ${AS} -o ${.TARGET} + @${LD} -X -r ${.TARGET} + @mv a.out ${.TARGET} + +MANALL= ${MAN1} ${MAN2} ${MAN3} ${MAN4} ${MAN5} ${MAN6} ${MAN7} ${MAN8} +manpages: ${MANALL} + +.if !defined(NOPROFILE) +_LIBS=lib${LIB}.a lib${LIB}_p.a +.else +_LIBS=lib${LIB}.a +.endif + +all: ${_LIBS} # llib-l${LIB}.ln +.if !defined(NOMAN) +all: ${MANALL} +.endif + +OBJS+= ${SRCS:R:S/$/.o/g} + +lib${LIB}.a:: ${OBJS} + @echo building standard ${LIB} library + @rm -f lib${LIB}.a + @${AR} cTq lib${LIB}.a `lorder ${OBJS} | tsort` ${LDADD} + ranlib lib${LIB}.a + +POBJS+= ${OBJS:.o=.po} +lib${LIB}_p.a:: ${POBJS} + @echo building profiled ${LIB} library + @rm -f lib${LIB}_p.a + @${AR} cTq lib${LIB}_p.a `lorder ${POBJS} | tsort` ${LDADD} + ranlib lib${LIB}_p.a + +llib-l${LIB}.ln: ${SRCS} + ${LINT} -C${LIB} ${CFLAGS} ${.ALLSRC:M*.c} + +.if !target(clean) +clean: + rm -f ${OBJS} + rm -f ${POBJS} + rm -f a.out [Ee]rrs mklog ${CLEANFILES} \ + profiled/*.o lib${LIB}.a lib${LIB}_p.a llib-l${LIB}.ln +.endif + +.if !target(cleandir) +cleandir: + rm -f ${OBJS} + rm -f ${POBJS} + rm -f a.out [Ee]rrs mklog ${CLEANFILES} \ + profiled/*.o lib${LIB}.a lib${LIB}_p.a llib-l${LIB}.ln + rm -f ${MANALL} .depend +.endif + +.if !target(depend) +depend: .depend +.depend: ${SRCS} + mkdep ${CFLAGS:M-[ID]*} ${AINC} ${.ALLSRC} + @(TMP=/tmp/_depend$$$$; \ + sed -e 's/^\([^\.]*\).o *:/\1.o \1.po:/' < .depend > $$TMP; \ + mv $$TMP .depend) +.endif + +.if !target(install) +.if !target(beforeinstall) +beforeinstall: +.endif + +realinstall: beforeinstall + ranlib lib${LIB}.a + install -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} lib${LIB}.a \ + ${DESTDIR}${LIBDIR} + ${RANLIB} -t ${DESTDIR}${LIBDIR}/lib${LIB}.a +.if !defined(NOPROFILE) + ranlib lib${LIB}_p.a + install -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ + lib${LIB}_p.a ${DESTDIR}${LIBDIR} + ${RANLIB} -t ${DESTDIR}${LIBDIR}/lib${LIB}_p.a +.endif +# install -c -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ +# llib-l${LIB}.ln ${DESTDIR}${LINTLIBDIR} +.if defined(LINKS) && !empty(LINKS) + @set ${LINKS}; \ + while test $$# -ge 2; do \ + l=${DESTDIR}$$1; \ + shift; \ + t=${DESTDIR}$$1; \ + shift; \ + echo $$t -\> $$l; \ + rm -f $$t; \ + ln $$l $$t; \ + done; true +.endif + +install: afterinstall +afterinstall: realinstall +.if !defined(NOMAN) +afterinstall: maninstall +.endif +.endif + +.if !target(lint) +lint: +.endif + +.if !target(tags) +tags: ${SRCS} + -ctags -f /dev/stdout ${.ALLSRC:M*.c} | \ + sed "s;\${.CURDIR}/;;" > ${.CURDIR}/tags +.endif + +.include <bsd.man.mk> +.if !target(obj) +.if defined(NOOBJ) +obj: +.else +obj: + @cd ${.CURDIR}; rm -rf obj; \ + here=`pwd`; dest=/usr/obj/`echo $$here | sed 's,/usr/src/,,'`; \ + echo "$$here -> $$dest"; ln -s $$dest obj; \ + if test -d /usr/obj -a ! -d $$dest; then \ + mkdir -p $$dest; \ + else \ + true; \ + fi; +.endif +.endif |