gcc work-around; cpp doesn't do replacement the same as Reiser's.
[unix-history] / usr / src / share / mk / bsd.lib.mk
CommitLineData
5694bd53 1# @(#)bsd.lib.mk 5.8 (Berkeley) %G%
e64dfe7f 2
8d3c2d2e
KB
3.if exists(${.CURDIR}/../Makefile.inc)
4.include "${.CURDIR}/../Makefile.inc"
e64dfe7f
KB
5.endif
6
91e9bb3a
KB
7LIBDIR?= /usr/lib
8LINTLIBDIR?= /usr/libdata/lint
9LIBGRP?= bin
10LIBOWN?= bin
11LIBMODE?= 444
12
8d3c2d2e
KB
13.MAIN: all
14
91e9bb3a 15# prefer .s to a .c, add .po, remove stuff not used in the BSD libraries
e64dfe7f 16.SUFFIXES:
5694bd53
KB
17.SUFFIXES: .out .o .po .s .c .y .l .8 .7 .6 .5 .4 .3 .2 .1 .0
18
19.8.0 .7.0 .6.0 .5.0 .4.0 .3.0 .2.0 .1.0:
20 nroff -man -h ${.IMPSRC} > ${.TARGET}
bbd3a374 21
e64dfe7f
KB
22.c.o:
23 ${CC} ${CFLAGS} -c ${.IMPSRC}
24 @${LD} -x -r ${.TARGET}
8d3c2d2e 25 @mv a.out ${.TARGET}
e64dfe7f
KB
26
27.c.po:
28 ${CC} -p ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET}
29 @${LD} -X -r ${.TARGET}
8d3c2d2e 30 @mv a.out ${.TARGET}
e64dfe7f
KB
31
32.s.o:
33 ${CPP} -E ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} | \
34 ${AS} -o ${.TARGET}
35 @${LD} -x -r ${.TARGET}
8d3c2d2e 36 @mv a.out ${.TARGET}
e64dfe7f
KB
37
38.s.po:
39 ${CPP} -E -DPROF ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} | \
40 ${AS} -o ${.TARGET}
41 @${LD} -X -r ${.TARGET}
8d3c2d2e 42 @mv a.out ${.TARGET}
e64dfe7f
KB
43
44MANALL= ${MAN1} ${MAN2} ${MAN3} ${MAN4} ${MAN5} ${MAN6} ${MAN7} ${MAN8}
45
91e9bb3a 46all: lib${LIB}.a lib${LIB}_p.a ${MANALL}# llib-l${LIB}.ln
e64dfe7f
KB
47
48OBJS= ${SRCS:S/.c$/.o/g:S/.f$/.o/g:S/.s$/.o/g}
49lib${LIB}.a:: ${OBJS}
50 @echo building standard ${LIB} library
8d3c2d2e 51 @${AR} cr lib${LIB}.a `lorder ${OBJS} | tsort` ${LDADD}
e64dfe7f
KB
52
53POBJS= ${OBJS:.o=.po}
54lib${LIB}_p.a:: ${POBJS}
55 @echo building profiled ${LIB} library
8d3c2d2e 56 @${AR} cr lib${LIB}_p.a `lorder ${POBJS} | tsort` ${LDADD}
e64dfe7f
KB
57
58llib-l${LIB}.ln: ${SRCS}
8d3c2d2e 59 ${LINT} -C${LIB} ${CFLAGS} ${.ALLSRC:M*.c}
e64dfe7f 60
a74988bf
KB
61.if !target(clean)
62clean:
e64dfe7f
KB
63 rm -f a.out Errs errs mklog core ${CLEANFILES} ${OBJS} ${POBJS} \
64 profiled/*.o lib${LIB}.a lib${LIB}_p.a llib-l${LIB}.ln
a74988bf 65.endif
e64dfe7f 66
a74988bf
KB
67.if !target(cleandir)
68cleandir:
69 rm -f a.out Errs errs mklog core ${CLEANFILES} ${OBJS} ${POBJS} \
70 profiled/*.o lib${LIB}.a lib${LIB}_p.a llib-l${LIB}.ln
8d3c2d2e 71 rm -f ${MANALL} tags .depend
a74988bf 72.endif
e64dfe7f 73
a74988bf
KB
74.if !target(depend)
75depend: .depend
76.depend: ${SRCS}
8d3c2d2e 77 mkdep ${CFLAGS:M-[ID]*} ${AINC} ${.ALLSRC}
a74988bf 78.endif
8d3c2d2e 79
a74988bf
KB
80.if !target(install)
81.if !target(beforeinstall)
82beforeinstall:
83.endif
84
85realinstall: beforeinstall
91e9bb3a 86 ranlib lib${LIB}.a
8d3c2d2e
KB
87 install -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} lib${LIB}.a \
88 ${DESTDIR}${LIBDIR}
89 ${RANLIB} -t ${DESTDIR}${LIBDIR}/lib${LIB}.a
91e9bb3a 90 ranlib lib${LIB}_p.a
8d3c2d2e
KB
91 install -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
92 lib${LIB}_p.a ${DESTDIR}${LIBDIR}
93 ${RANLIB} -t ${DESTDIR}/usr/lib/lib${LIB}_p.a
cf6a054d
KB
94# install -c -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
95# llib-l${LIB}.ln ${DESTDIR}${LINTLIBDIR}
8d3c2d2e 96
a74988bf 97install: afterinstall
91e9bb3a 98afterinstall: realinstall maninstall
a74988bf 99.endif
e64dfe7f 100
a74988bf
KB
101.if !target(lint)
102lint:
103.endif
104
105.if !target(tags)
106tags:
8d3c2d2e
KB
107 tags ${.ALLSRC:M*.c}
108 sed -e 's;../gen/;/usr/src/lib/libc/gen/;' \
e64dfe7f
KB
109 -e 's;../compat-43/;/usr/src/lib/libc/gen/;' \
110 < tags > tags.tmp
111.if !empty(SRCS:M*.s)
112 egrep -o "^ENTRY(.*)|^SYSCALL(.*)" ${.ALLSRC:M*.s} | sed \
113 "s;\([^:]*\):\([^(]*\)(\([^, )]*\)\(.*\);\3 \`pwd\`/\1 /^\2(\3\4$$/;" \
114 >> tags.tmp
8d3c2d2e 115 sort tags.tmp -o tags.tmp
e64dfe7f 116.endif
8d3c2d2e 117 mv tags.tmp tags
a74988bf 118.endif
e64dfe7f 119
91e9bb3a 120.include <bsd.man.mk>