Home | History | Annotate | Line # | Download | only in mk
bsd.lib.mk revision 1.1
      1  1.1  cgd #	@(#)bsd.lib.mk	5.26 (Berkeley) 5/2/91
      2  1.1  cgd 
      3  1.1  cgd .if exists(${.CURDIR}/../Makefile.inc)
      4  1.1  cgd .include "${.CURDIR}/../Makefile.inc"
      5  1.1  cgd .endif
      6  1.1  cgd 
      7  1.1  cgd LIBDIR?=	/usr/lib
      8  1.1  cgd LINTLIBDIR?=	/usr/libdata/lint
      9  1.1  cgd LIBGRP?=	bin
     10  1.1  cgd LIBOWN?=	bin
     11  1.1  cgd LIBMODE?=	444
     12  1.1  cgd 
     13  1.1  cgd STRIP?=	-s
     14  1.1  cgd 
     15  1.1  cgd BINGRP?=	bin
     16  1.1  cgd BINOWN?=	bin
     17  1.1  cgd BINMODE?=	555
     18  1.1  cgd 
     19  1.1  cgd .MAIN: all
     20  1.1  cgd 
     21  1.1  cgd # prefer .s to a .c, add .po, remove stuff not used in the BSD libraries
     22  1.1  cgd .SUFFIXES:
     23  1.1  cgd .SUFFIXES: .out .o .po .s .c .f .y .l .8 .7 .6 .5 .4 .3 .2 .1 .0
     24  1.1  cgd 
     25  1.1  cgd .8.0 .7.0 .6.0 .5.0 .4.0 .3.0 .2.0 .1.0:
     26  1.1  cgd 	nroff -mandoc ${.IMPSRC} > ${.TARGET}
     27  1.1  cgd 
     28  1.1  cgd .c.o:
     29  1.1  cgd 	${CC} ${CFLAGS} -c ${.IMPSRC} 
     30  1.1  cgd 	@${LD} -x -r ${.TARGET}
     31  1.1  cgd 	@mv a.out ${.TARGET}
     32  1.1  cgd 
     33  1.1  cgd .c.po:
     34  1.1  cgd 	${CC} -p ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET}
     35  1.1  cgd 	@${LD} -X -r ${.TARGET}
     36  1.1  cgd 	@mv a.out ${.TARGET}
     37  1.1  cgd 
     38  1.1  cgd .s.o:
     39  1.1  cgd 	${CPP} -E ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} | \
     40  1.1  cgd 	    ${AS} -o ${.TARGET}
     41  1.1  cgd 	@${LD} -x -r ${.TARGET}
     42  1.1  cgd 	@mv a.out ${.TARGET}
     43  1.1  cgd 
     44  1.1  cgd .s.po:
     45  1.1  cgd 	${CPP} -E -DPROF ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} | \
     46  1.1  cgd 	    ${AS} -o ${.TARGET}
     47  1.1  cgd 	@${LD} -X -r ${.TARGET}
     48  1.1  cgd 	@mv a.out ${.TARGET}
     49  1.1  cgd 
     50  1.1  cgd MANALL=	${MAN1} ${MAN2} ${MAN3} ${MAN4} ${MAN5} ${MAN6} ${MAN7} ${MAN8}
     51  1.1  cgd 
     52  1.1  cgd .if !defined(NOPROFILE)
     53  1.1  cgd _LIBS=lib${LIB}.a lib${LIB}_p.a
     54  1.1  cgd .else
     55  1.1  cgd _LIBS=lib${LIB}.a
     56  1.1  cgd .endif
     57  1.1  cgd 
     58  1.1  cgd all: ${_LIBS} ${MANALL}# llib-l${LIB}.ln
     59  1.1  cgd 
     60  1.1  cgd OBJS+=	${SRCS:R:S/$/.o/g}
     61  1.1  cgd 
     62  1.1  cgd lib${LIB}.a:: ${OBJS}
     63  1.1  cgd 	@echo building standard ${LIB} library
     64  1.1  cgd 	@rm -f lib${LIB}.a
     65  1.1  cgd 	@${AR} cTq lib${LIB}.a `lorder ${OBJS} | tsort` ${LDADD}
     66  1.1  cgd 	ranlib lib${LIB}.a
     67  1.1  cgd 
     68  1.1  cgd POBJS+=	${OBJS:.o=.po}
     69  1.1  cgd lib${LIB}_p.a:: ${POBJS}
     70  1.1  cgd 	@echo building profiled ${LIB} library
     71  1.1  cgd 	@rm -f lib${LIB}_p.a
     72  1.1  cgd 	@${AR} cTq lib${LIB}_p.a `lorder ${POBJS} | tsort` ${LDADD}
     73  1.1  cgd 	ranlib lib${LIB}_p.a
     74  1.1  cgd 
     75  1.1  cgd llib-l${LIB}.ln: ${SRCS}
     76  1.1  cgd 	${LINT} -C${LIB} ${CFLAGS} ${.ALLSRC:M*.c}
     77  1.1  cgd 
     78  1.1  cgd .if !target(clean)
     79  1.1  cgd clean:
     80  1.1  cgd 	rm -f a.out Errs errs mklog core ${CLEANFILES} ${OBJS} ${POBJS} \
     81  1.1  cgd 	    profiled/*.o lib${LIB}.a lib${LIB}_p.a llib-l${LIB}.ln
     82  1.1  cgd .endif
     83  1.1  cgd 
     84  1.1  cgd .if !target(cleandir)
     85  1.1  cgd cleandir:
     86  1.1  cgd 	rm -f a.out Errs errs mklog core ${CLEANFILES} ${OBJS} ${POBJS} \
     87  1.1  cgd 	    profiled/*.o lib${LIB}.a lib${LIB}_p.a llib-l${LIB}.ln
     88  1.1  cgd 	rm -f ${MANALL} ${.CURDIR}/tags .depend
     89  1.1  cgd .endif
     90  1.1  cgd 
     91  1.1  cgd .if !target(depend)
     92  1.1  cgd depend: .depend
     93  1.1  cgd .depend: ${SRCS}
     94  1.1  cgd 	mkdep ${CFLAGS:M-[ID]*} ${AINC} ${.ALLSRC}
     95  1.1  cgd 	@(TMP=/tmp/_depend$$$$; \
     96  1.1  cgd 	    sed -e 's/^\([^\.]*\).o:/\1.o \1.po:/' < .depend > $$TMP; \
     97  1.1  cgd 	    mv $$TMP .depend)
     98  1.1  cgd .endif
     99  1.1  cgd 
    100  1.1  cgd .if !target(install)
    101  1.1  cgd .if !target(beforeinstall)
    102  1.1  cgd beforeinstall:
    103  1.1  cgd .endif
    104  1.1  cgd 
    105  1.1  cgd realinstall: beforeinstall
    106  1.1  cgd 	ranlib lib${LIB}.a
    107  1.1  cgd 	install -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} lib${LIB}.a \
    108  1.1  cgd 	    ${DESTDIR}${LIBDIR}
    109  1.1  cgd 	${RANLIB} -t ${DESTDIR}${LIBDIR}/lib${LIB}.a
    110  1.1  cgd 	ranlib lib${LIB}_p.a
    111  1.1  cgd 	install -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
    112  1.1  cgd 	    lib${LIB}_p.a ${DESTDIR}${LIBDIR}
    113  1.1  cgd 	${RANLIB} -t ${DESTDIR}${LIBDIR}/lib${LIB}_p.a
    114  1.1  cgd #	install -c -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
    115  1.1  cgd #	    llib-l${LIB}.ln ${DESTDIR}${LINTLIBDIR}
    116  1.1  cgd .if defined(LINKS) && !empty(LINKS)
    117  1.1  cgd 	@set ${LINKS}; \
    118  1.1  cgd 	while test $$# -ge 2; do \
    119  1.1  cgd 		l=${DESTDIR}$$1; \
    120  1.1  cgd 		shift; \
    121  1.1  cgd 		t=${DESTDIR}$$1; \
    122  1.1  cgd 		shift; \
    123  1.1  cgd 		echo $$t -\> $$l; \
    124  1.1  cgd 		rm -f $$t; \
    125  1.1  cgd 		ln $$l $$t; \
    126  1.1  cgd 	done; true
    127  1.1  cgd .endif
    128  1.1  cgd 
    129  1.1  cgd install: afterinstall
    130  1.1  cgd afterinstall: realinstall maninstall
    131  1.1  cgd .endif
    132  1.1  cgd 
    133  1.1  cgd .if !target(lint)
    134  1.1  cgd lint:
    135  1.1  cgd .endif
    136  1.1  cgd 
    137  1.1  cgd .if !target(tags)
    138  1.1  cgd tags: ${SRCS}
    139  1.1  cgd 	-cd ${.CURDIR}; ctags -f /dev/stdout ${.ALLSRC:M*.c} | \
    140  1.1  cgd 	    sed "s;\${.CURDIR}/;;" > tags
    141  1.1  cgd .endif
    142  1.1  cgd 
    143  1.1  cgd .include <bsd.man.mk>
    144  1.1  cgd .if !target(obj)
    145  1.1  cgd .if defined(NOOBJ)
    146  1.1  cgd obj:
    147  1.1  cgd .else
    148  1.1  cgd obj:
    149  1.1  cgd 	@cd ${.CURDIR}; rm -rf obj; \
    150  1.1  cgd 	here=`pwd`; dest=/usr/obj/`echo $$here | sed 's,/usr/src/,,'`; \
    151  1.1  cgd 	echo "$$here -> $$dest"; ln -s $$dest obj; \
    152  1.1  cgd 	if test -d /usr/obj -a ! -d $$dest; then \
    153  1.1  cgd 		mkdir -p $$dest; \
    154  1.1  cgd 	else \
    155  1.1  cgd 		true; \
    156  1.1  cgd 	fi;
    157  1.1  cgd .endif
    158  1.1  cgd .endif
    159