diff options
Diffstat (limited to 'lib/libmalloc/bsd.lib.mk')
-rw-r--r-- | lib/libmalloc/bsd.lib.mk | 269 |
1 files changed, 269 insertions, 0 deletions
diff --git a/lib/libmalloc/bsd.lib.mk b/lib/libmalloc/bsd.lib.mk new file mode 100644 index 000000000000..4e4c51298e8d --- /dev/null +++ b/lib/libmalloc/bsd.lib.mk @@ -0,0 +1,269 @@ +# from: @(#)bsd.lib.mk 5.26 (Berkeley) 5/2/91 +# $Id: bsd.lib.mk,v 1.1 1994/03/06 22:59:28 nate Exp $ +# + +.if exists(${.CURDIR}/../Makefile.inc) +.include "${.CURDIR}/../Makefile.inc" +.endif + +.if exists(${.CURDIR}/shlib_version) +SHLIB_MAJOR != . ${.CURDIR}/shlib_version ; echo $$major +SHLIB_MINOR != . ${.CURDIR}/shlib_version ; echo $$minor +.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 +# .so used for PIC object files +.SUFFIXES: +.SUFFIXES: .out .o .po .so .s .S .c .cc .cxx .m .C .f .y .l + +.c.o: + ${CC} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} + @${LD} -x -r ${.TARGET} + @mv a.out ${.TARGET} + +.c.po: + ${CC} -p ${CFLAGS} ${PFLAGS} -c ${.IMPSRC} -o ${.TARGET} + @${LD} -X -r ${.TARGET} + @mv a.out ${.TARGET} + +.c.so: + ${CC} ${PICFLAG} -DPIC ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} + +.cc.o .cxx.o .C.o: + ${CXX} ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} + @${LD} -x -r ${.TARGET} + @mv a.out ${.TARGET} + +.cc.po .C.po .cxx.o: + ${CXX} -p ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} + @${LD} -X -r ${.TARGET} + @mv a.out ${.TARGET} + +.cc.so .C.so: + ${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} + +.f.o: + ${FC} ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} + @${LD} -x -r ${.TARGET} + @mv a.out ${.TARGET} + +.f.po: + ${FC} -p ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} + @${LD} -X -r ${.TARGET} + @mv a.out ${.TARGET} + +.f.so: + ${FC} ${PICFLAG} -DPIC ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} + +.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} + +.s.so: + ${CPP} -E -DPIC ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} | \ + ${AS} -k -o ${.TARGET} + +.S.o: + ${CPP} -E ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} | \ + ${AS} -o ${.TARGET} + +.S.po: + ${CPP} -E -DPROF ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} | \ + ${AS} -o ${.TARGET} + +.S.so: + ${CPP} -E -DPIC ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} | \ + ${AS} -k -o ${.TARGET} + +.m.po: + ${CC} ${CFLAGS} -p -c ${.IMPSRC} -o ${.TARGET} + @${LD} -X -r ${.TARGET} + @mv a.out ${.TARGET} + +.m.o: + ${CC} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} + @${LD} -X -r ${.TARGET} + @mv a.out ${.TARGET} + +.if defined(PROFILE) +_LIBS=lib${LIB}.a lib${LIB}_p.a +.else +_LIBS=lib${LIB}.a +.endif + +.if !defined(NOPIC) +.if defined(SHLIB_MAJOR) && defined(SHLIB_MINOR) +_LIBS+=lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} +.endif +.if defined(INSTALL_PIC_ARCHIVE) +_LIBS+=lib${LIB}_pic.a +.endif +.endif + +.if !defined(PICFLAG) +PICFLAG=-fpic +.endif + +all: ${_LIBS} # llib-l${LIB}.ln + +OBJS+= ${SRCS:N*.h: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 + +SOBJS+= ${OBJS:.o=.so} +lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}: ${SOBJS} + @echo building shared ${LIB} library \(version ${SHLIB_MAJOR}.${SHLIB_MINOR}\) + @rm -f lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} + @$(LD) -Bshareable \ + -o lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ + ${SOBJS} ${LDADD} + +lib${LIB}_pic.a:: ${SOBJS} + @echo building special pic ${LIB} library + @rm -f lib${LIB}_pic.a + @${AR} cTq lib${LIB}_pic.a ${SOBJS} ${LDADD} + ${RANLIB} lib${LIB}_pic.a + +llib-l${LIB}.ln: ${SRCS} + ${LINT} -C${LIB} ${CFLAGS} ${.ALLSRC:M*.c} + +.if !target(clean) +clean: + rm -f a.out Errs errs mklog ${CLEANFILES} ${OBJS} + rm -f lib${LIB}.a llib-l${LIB}.ln + rm -f ${POBJS} profiled/*.o lib${LIB}_p.a + rm -f ${SOBJS} shared/*.o + rm -f lib${LIB}.so.*.* lib${LIB}_pic.a +.endif + +.if !target(cleandir) +cleandir: + rm -f a.out Errs errs mklog ${CLEANFILES} ${OBJS} + rm -f lib${LIB}.a llib-l${LIB}.ln + rm -f ${.CURDIR}/tags .depend + rm -f ${POBJS} profiled/*.o lib${LIB}_p.a + rm -f ${SOBJS} shared/*.o + rm -f lib${LIB}.so.*.* lib${LIB}_pic.a + cd ${.CURDIR}; rm -rf obj; +.endif + +.if defined(SRCS) +afterdepend: + @(TMP=/tmp/_depend$$$$; \ + sed -e 's/^\([^\.]*\).o[ ]*:/\1.o \1.po \1.so:/' < .depend > $$TMP; \ + mv $$TMP .depend) +.endif + +.if !target(install) +.if !target(beforeinstall) +beforeinstall: +.endif + +realinstall: beforeinstall + install ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} lib${LIB}.a \ + ${DESTDIR}${LIBDIR} + ${RANLIB} -t ${DESTDIR}${LIBDIR}/lib${LIB}.a +.if defined(PROFILE) + install ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ + lib${LIB}_p.a ${DESTDIR}${LIBDIR} + ${RANLIB} -t ${DESTDIR}${LIBDIR}/lib${LIB}_p.a +.endif +.if !defined(NOPIC) +.if defined(SHLIB_MAJOR) && defined(SHLIB_MINOR) + install ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ + lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} ${DESTDIR}${LIBDIR} +.endif +.if defined(INSTALL_PIC_ARCHIVE) + install ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ + lib${LIB}_pic.a ${DESTDIR}${LIBDIR} + ${RANLIB} -t ${DESTDIR}${LIBDIR}/lib${LIB}_pic.a +.endif +.endif +.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 +.if !defined(NOMAN) +afterinstall: realinstall maninstall +.else +afterinstall: realinstall +.endif +.endif + +.if !target(lint) +lint: +.endif + +.if !target(tags) +tags: ${SRCS} + -cd ${.CURDIR}; ctags -f /dev/stdout ${.ALLSRC:M*.c} | \ + sed "s;\${.CURDIR}/;;" > tags +.endif + +.if !defined(NOMAN) +.include <bsd.man.mk> +.elif !target(maninstall) +maninstall: +.endif + +.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 + +.include <bsd.dep.mk> |