bsd.prog.mk revision 1638
1104349Sphk#	@(#)bsd.prog.mk	8.2 (Berkeley) 4/2/94
2104349Sphk
3104349Sphk.if !defined(NOINCLUDE) && exists(${.CURDIR}/../Makefile.inc)
4104349Sphk.include "${.CURDIR}/../Makefile.inc"
5178848Scokane.endif
6178848Scokane
7104349Sphk.SUFFIXES: .out .o .c .y .l .s .8 .7 .6 .5 .4 .3 .2 .1 .0
8104349Sphk
9104349Sphk.8.0 .7.0 .6.0 .5.0 .4.0 .3.0 .2.0 .1.0:
10104349Sphk	nroff -man ${.IMPSRC} > ${.TARGET}
11178848Scokane
12178848ScokaneCFLAGS+=${COPTS}
13178848Scokane
14178848ScokaneSTRIP?=	-s
15104349Sphk
16104349SphkBINGRP?=	bin
17104349SphkBINOWN?=	bin
18178848ScokaneBINMODE?=	555
19104349Sphk
20104349SphkLIBC?=		/usr/lib/libc.a
21104349SphkLIBCOMPAT?=	/usr/lib/libcompat.a
22104349SphkLIBCURSES?=	/usr/lib/libcurses.a
23104349SphkLIBDBM?=	/usr/lib/libdbm.a
24104349SphkLIBDES?=	/usr/lib/libdes.a
25104349SphkLIBL?=		/usr/lib/libl.a
26104349SphkLIBKDB?=	/usr/lib/libkdb.a
27104349SphkLIBKRB?=	/usr/lib/libkrb.a
28104349SphkLIBKVM?=	/usr/lib/libkvm.a
29104349SphkLIBM?=		/usr/lib/libm.a
30104349SphkLIBMP?=		/usr/lib/libmp.a
31104349SphkLIBPC?=		/usr/lib/libpc.a
32178848ScokaneLIBPLOT?=	/usr/lib/libplot.a
33178848ScokaneLIBRESOLV?=	/usr/lib/libresolv.a
34178848ScokaneLIBRPC?=	/usr/lib/sunrpc.a
35178848ScokaneLIBTERM?=	/usr/lib/libterm.a
36178848ScokaneLIBUTIL?=	/usr/lib/libutil.a
37178848Scokane
38178848Scokane.if defined(SHAREDSTRINGS)
39178848ScokaneCLEANFILES+=strings
40178848Scokane.c.o:
41178848Scokane	${CC} -E ${CFLAGS} ${.IMPSRC} | xstr -c -
42178848Scokane	@${CC} ${CFLAGS} -c x.c -o ${.TARGET}
43178848Scokane	@rm -f x.c
44178848Scokane.endif
45178848Scokane
46178848Scokane.if defined(PROG)
47178848Scokane.if defined(SRCS)
48178848Scokane
49178848ScokaneOBJS+=  ${SRCS:R:S/$/.o/g}
50178848Scokane
51178848Scokane${PROG}: ${OBJS} ${LIBC} ${DPADD}
52178848Scokane	${CC} ${LDFLAGS} -o ${.TARGET} ${OBJS} ${LDADD}
53178848Scokane
54104349Sphk.else defined(SRCS)
55104349Sphk
56104349SphkSRCS= ${PROG}.c
57104349Sphk
58104349Sphk${PROG}: ${SRCS} ${LIBC} ${DPADD}
59104349Sphk	${CC} ${CFLAGS} -o ${.TARGET} ${.CURDIR}/${SRCS} ${LDADD}
60104349Sphk
61104349SphkMKDEP=	-p
62104349Sphk
63104349Sphk.endif
64104349Sphk
65104349Sphk.if	!defined(MAN1) && !defined(MAN2) && !defined(MAN3) && \
66104349Sphk	!defined(MAN4) && !defined(MAN5) && !defined(MAN6) && \
67104349Sphk	!defined(MAN7) && !defined(MAN8) && !defined(NOMAN)
68104349SphkMAN1=	${PROG}.0
69104349Sphk.endif
70104349Sphk.endif
71104349Sphk.if !defined(NOMAN)
72104349SphkMANALL=	${MAN1} ${MAN2} ${MAN3} ${MAN4} ${MAN5} ${MAN6} ${MAN7} ${MAN8}
73104349Sphk.else
74104349SphkMANALL=
75104349Sphk.endif
76104349Sphkmanpages: ${MANALL}
77104349Sphk
78104349Sphk_PROGSUBDIR: .USE
79104349Sphk.if defined(SUBDIR) && !empty(SUBDIR)
80104349Sphk	@for entry in ${SUBDIR}; do \
81178848Scokane		(echo "===> $$entry"; \
82178848Scokane		if test -d ${.CURDIR}/$${entry}.${MACHINE}; then \
83178848Scokane			cd ${.CURDIR}/$${entry}.${MACHINE}; \
84178848Scokane		else \
85178848Scokane			cd ${.CURDIR}/$${entry}; \
86178848Scokane		fi; \
87178848Scokane		${MAKE} ${.TARGET:S/realinstall/install/:S/.depend/depend/}); \
88178848Scokane	done
89178848Scokane.endif
90178848Scokane
91178848Scokane.if !target(all)
92178848Scokane.MAIN: all
93178848Scokaneall: ${PROG} ${MANALL} _PROGSUBDIR
94178848Scokane.endif
95178848Scokane
96178848Scokane.if !target(clean)
97178848Scokaneclean: _PROGSUBDIR
98178848Scokane	rm -f a.out [Ee]rrs mklog ${PROG}.core ${PROG} ${OBJS} ${CLEANFILES}
99104349Sphk.endif
100104349Sphk
101104349Sphk.if !target(cleandir)
102104349Sphkcleandir: _PROGSUBDIR
103104349Sphk	rm -f a.out [Ee]rrs mklog ${PROG}.core ${PROG} ${OBJS} ${CLEANFILES}
104104349Sphk	rm -f .depend ${MANALL}
105104349Sphk.endif
106104349Sphk
107104349Sphk# some of the rules involve .h sources, so remove them from mkdep line
108104349Sphk.if !target(depend)
109104349Sphkdepend: .depend _PROGSUBDIR
110104349Sphk.depend: ${SRCS}
111104349Sphk.if defined(PROG)
112104349Sphk	mkdep ${MKDEP} ${CFLAGS:M-[ID]*} ${.ALLSRC:M*.c}
113104349Sphk.endif
114104349Sphk.endif
115104349Sphk
116104349Sphk.if !target(install)
117104349Sphk.if !target(beforeinstall)
118104349Sphkbeforeinstall:
119104349Sphk.endif
120104349Sphk.if !target(afterinstall)
121104349Sphkafterinstall:
122104349Sphk.endif
123104349Sphk
124104349Sphkrealinstall: _PROGSUBDIR
125104349Sphk.if defined(PROG)
126104349Sphk	install ${STRIP} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} \
127104349Sphk	    ${INSTALLFLAGS} ${PROG} ${DESTDIR}${BINDIR}
128104349Sphk.endif
129104349Sphk.if defined(HIDEGAME)
130104349Sphk	(cd ${DESTDIR}/usr/games; rm -f ${PROG}; ln -s dm ${PROG}; \
131104349Sphk	    chown games.bin ${PROG})
132104349Sphk.endif
133104349Sphk.if defined(LINKS) && !empty(LINKS)
134104349Sphk	@set ${LINKS}; \
135104349Sphk	while test $$# -ge 2; do \
136104349Sphk		l=${DESTDIR}$$1; \
137104349Sphk		shift; \
138104349Sphk		t=${DESTDIR}$$1; \
139104349Sphk		shift; \
140104349Sphk		echo $$t -\> $$l; \
141104349Sphk		rm -f $$t; \
142104349Sphk		ln $$l $$t; \
143104349Sphk	done; true
144104349Sphk.endif
145104349Sphk
146104349Sphkinstall: afterinstall maninstall
147104349Sphkafterinstall: realinstall
148104349Sphkrealinstall: beforeinstall
149104349Sphk.endif
150178848Scokane
151178848Scokane.if !target(lint)
152178848Scokanelint: ${SRCS} _PROGSUBDIR
153104349Sphk.if defined(PROG)
154104349Sphk	@${LINT} ${LINTFLAGS} ${CFLAGS} ${.ALLSRC} | more 2>&1
155104349Sphk.endif
156104349Sphk.endif
157104349Sphk
158104349Sphk.if !target(obj)
159104349Sphk.if defined(NOOBJ)
160104349Sphkobj: _PROGSUBDIR
161104349Sphk.else
162104349Sphkobj: _PROGSUBDIR
163104349Sphk	@cd ${.CURDIR}; rm -rf obj; \
164104349Sphk	here=`pwd`; dest=/usr/obj/`echo $$here | sed 's,/usr/src/,,'`; \
165104349Sphk	echo "$$here -> $$dest"; ln -s $$dest obj; \
166178848Scokane	if test -d /usr/obj -a ! -d $$dest; then \
167178848Scokane		mkdir -p $$dest; \
168178848Scokane	else \
169178848Scokane		true; \
170178848Scokane	fi;
171178848Scokane.endif
172178848Scokane.endif
173104349Sphk
174104349Sphk.if !target(objdir)
175104349Sphk.if defined(NOOBJ)
176104349Sphkobjdir: _PROGSUBDIR
177104349Sphk.else
178104349Sphkobjdir: _PROGSUBDIR
179104349Sphk	@cd ${.CURDIR}; \
180104349Sphk	here=`pwd`; dest=/usr/obj/`echo $$here | sed 's,/usr/src/,,'`; \
181104349Sphk	if test -d /usr/obj -a ! -d $$dest; then \
182104349Sphk		mkdir -p $$dest; \
183104349Sphk	else \
184104349Sphk		true; \
185104349Sphk	fi;
186178848Scokane.endif
187178848Scokane.endif
188178848Scokane
189178848Scokane.if !target(tags)
190104349Sphktags: ${SRCS} _PROGSUBDIR
191104349Sphk.if defined(PROG)
192104349Sphk	-ctags -f /dev/stdout ${.ALLSRC} | \
193104349Sphk	    sed "s;${.CURDIR}/;;" > ${.CURDIR}/tags
194104349Sphk.endif
195104349Sphk.endif
196104349Sphk
197104349Sphk.if !defined(NOMAN)
198104349Sphk.include <bsd.man.mk>
199104349Sphk.else
200104349Sphkmaninstall:
201104349Sphk.endif
202104349Sphk