xref: /netbsd-src/share/mk/bsd.hostprog.mk (revision 7cc2f76925f078d01ddc9e640a98f4ccfc9f8c3b)
1#	$NetBSD: bsd.hostprog.mk,v 1.8 2000/10/31 10:49:02 itojun Exp $
2#	@(#)bsd.prog.mk	8.2 (Berkeley) 4/2/94
3
4.if !target(__initialized__)
5__initialized__:
6.if exists(${.CURDIR}/../Makefile.inc)
7.include "${.CURDIR}/../Makefile.inc"
8.endif
9.include <bsd.own.mk>
10.include <bsd.obj.mk>
11.include <bsd.depall.mk>
12.MAIN:		all
13.endif
14
15.PHONY:		cleanprog
16clean cleandir distclean: cleanprog
17
18CFLAGS+=	${COPTS}
19
20LIBBZ2?=	/usr/lib/libbz2.a
21LIBC?=		/usr/lib/libc.a
22LIBC_PIC?=	/usr/lib/libc_pic.a
23LIBCOMPAT?=	/usr/lib/libcompat.a
24LIBCRYPT?=	/usr/lib/libcrypt.a
25LIBCURSES?=	/usr/lib/libcurses.a
26LIBDBM?=	/usr/lib/libdbm.a
27LIBDES?=	/usr/lib/libdes.a
28LIBEDIT?=	/usr/lib/libedit.a
29LIBGCC?=	/usr/lib/libgcc.a
30LIBGNUMALLOC?=	/usr/lib/libgnumalloc.a
31LIBINTL?=	/usr/lib/libintl.a
32LIBIPSEC?=	/usr/lib/libipsec.a
33LIBKDB?=	/usr/lib/libkdb.a
34LIBKRB?=	/usr/lib/libkrb.a
35LIBKVM?=	/usr/lib/libkvm.a
36LIBL?=		/usr/lib/libl.a
37LIBM?=		/usr/lib/libm.a
38LIBMENU?=	/usr/lib/libmenu.a
39LIBMP?=		/usr/lib/libmp.a
40LIBNTP?=	/usr/lib/libntp.a
41LIBOBJC?=	/usr/lib/libobjc.a
42LIBPC?=		/usr/lib/libpc.a
43LIBPCAP?=	/usr/lib/libpcap.a
44LIBPLOT?=	/usr/lib/libplot.a
45LIBPOSIX?=	/usr/lib/libposix.a
46LIBRESOLV?=	/usr/lib/libresolv.a
47LIBRPCSVC?=	/usr/lib/librpcsvc.a
48LIBSKEY?=	/usr/lib/libskey.a
49LIBTERMCAP?=	/usr/lib/libtermcap.a
50LIBTELNET?=	/usr/lib/libtelnet.a
51LIBUTIL?=	/usr/lib/libutil.a
52LIBWRAP?=	/usr/lib/libwrap.a
53LIBY?=		/usr/lib/liby.a
54LIBZ?=		/usr/lib/libz.a
55
56.if defined(SHAREDSTRINGS)
57CLEANFILES+=strings
58.c.lo:
59	${HOST_CC} -E ${CFLAGS} ${.IMPSRC} | xstr -c -
60	@${HOST_CC} ${CFLAGS} -c x.c -o ${.TARGET}
61	@rm -f x.c
62
63.cc.lo:
64	${HOST_CXX} -E ${CXXFLAGS} ${.IMPSRC} | xstr -c -
65	@mv -f x.c x.cc
66	@${HOST_CXX} ${CXXFLAGS} -c x.cc -o ${.TARGET}
67	@rm -f x.cc
68
69.C.lo:
70	${HOST_CXX} -E ${CXXFLAGS} ${.IMPSRC} | xstr -c -
71	@mv -f x.c x.C
72	@${HOST_CXX} ${CXXFLAGS} -c x.C -o ${.TARGET}
73	@rm -f x.C
74.endif
75
76
77.if defined(HOSTPROG)
78SRCS?=		${HOSTPROG}.c
79
80DPSRCS+=	${SRCS:M*.l:.l=.c} ${SRCS:M*.y:.y=.c}
81CLEANFILES+=	${DPSRCS}
82.if defined(YHEADER)
83CLEANFILES+=	${SRCS:M*.y:.y=.h}
84.endif
85
86.if !empty(SRCS:N*.h:N*.sh)
87OBJS+=		${SRCS:N*.h:N*.sh:R:S/$/.lo/g}
88LOBJS+=		${LSRCS:.c=.ln} ${SRCS:M*.c:.c=.ln}
89.endif
90
91.if defined(OBJS) && !empty(OBJS)
92.NOPATH: ${OBJS}
93
94${HOSTPROG}: ${DPSRCS} ${OBJS} ${LIBC} ${DPADD}
95	${HOST_LINK.c} ${HOST_LDSTATIC} -o ${.TARGET} ${OBJS} ${LDADD}
96
97.endif	# defined(OBJS) && !empty(OBJS)
98
99.if !defined(MAN)
100MAN=	${HOSTPROG}.1
101.endif	# !defined(MAN)
102.endif	# defined(HOSTPROG)
103
104realall: ${HOSTPROG}
105
106cleanprog:
107	rm -f a.out [Ee]rrs mklog core *.core \
108	    ${HOSTPROG} ${OBJS} ${LOBJS} ${CLEANFILES}
109
110beforedepend:
111CPPFLAGS=	${HOST_CPPFLAGS}
112
113.if defined(SRCS)
114afterdepend: .depend
115	@(TMP=/tmp/_depend$$$$; \
116	    sed -e 's/^\([^\.]*\).o[ ]*:/\1.lo \1.ln:/' \
117	      < .depend > $$TMP; \
118	    mv $$TMP .depend)
119.endif
120
121lint: ${LOBJS}
122.if defined(LOBJS) && !empty(LOBJS)
123	${LINT} ${LINTFLAGS} ${LDFLAGS:M-L*} ${LOBJS} ${LDADD}
124.endif
125
126.include <bsd.man.mk>
127.include <bsd.nls.mk>
128.include <bsd.files.mk>
129.include <bsd.inc.mk>
130.include <bsd.links.mk>
131.include <bsd.dep.mk>
132.include <bsd.sys.mk>
133
134# Make sure all of the standard targets are defined, even if they do nothing.
135regress:
136