xref: /netbsd-src/share/mk/bsd.hostprog.mk (revision 4472dbe5e3bd91ef2540bada7a7ca7384627ff9b)
1#	$NetBSD: bsd.hostprog.mk,v 1.7 2000/03/07 20:55:05 veego 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
31LIBIPSEC?=	/usr/lib/libipsec.a
32LIBKDB?=	/usr/lib/libkdb.a
33LIBKRB?=	/usr/lib/libkrb.a
34LIBKVM?=	/usr/lib/libkvm.a
35LIBL?=		/usr/lib/libl.a
36LIBM?=		/usr/lib/libm.a
37LIBMENU?=	/usr/lib/libmenu.a
38LIBMP?=		/usr/lib/libmp.a
39LIBNTP?=	/usr/lib/libntp.a
40LIBOBJC?=	/usr/lib/libobjc.a
41LIBPC?=		/usr/lib/libpc.a
42LIBPCAP?=	/usr/lib/libpcap.a
43LIBPLOT?=	/usr/lib/libplot.a
44LIBPOSIX?=	/usr/lib/libposix.a
45LIBRESOLV?=	/usr/lib/libresolv.a
46LIBRPCSVC?=	/usr/lib/librpcsvc.a
47LIBSKEY?=	/usr/lib/libskey.a
48LIBTERMCAP?=	/usr/lib/libtermcap.a
49LIBTELNET?=	/usr/lib/libtelnet.a
50LIBUTIL?=	/usr/lib/libutil.a
51LIBWRAP?=	/usr/lib/libwrap.a
52LIBY?=		/usr/lib/liby.a
53LIBZ?=		/usr/lib/libz.a
54
55.if defined(SHAREDSTRINGS)
56CLEANFILES+=strings
57.c.lo:
58	${HOST_CC} -E ${CFLAGS} ${.IMPSRC} | xstr -c -
59	@${HOST_CC} ${CFLAGS} -c x.c -o ${.TARGET}
60	@rm -f x.c
61
62.cc.lo:
63	${HOST_CXX} -E ${CXXFLAGS} ${.IMPSRC} | xstr -c -
64	@mv -f x.c x.cc
65	@${HOST_CXX} ${CXXFLAGS} -c x.cc -o ${.TARGET}
66	@rm -f x.cc
67
68.C.lo:
69	${HOST_CXX} -E ${CXXFLAGS} ${.IMPSRC} | xstr -c -
70	@mv -f x.c x.C
71	@${HOST_CXX} ${CXXFLAGS} -c x.C -o ${.TARGET}
72	@rm -f x.C
73.endif
74
75
76.if defined(HOSTPROG)
77SRCS?=		${HOSTPROG}.c
78
79DPSRCS+=	${SRCS:M*.l:.l=.c} ${SRCS:M*.y:.y=.c}
80CLEANFILES+=	${DPSRCS}
81.if defined(YHEADER)
82CLEANFILES+=	${SRCS:M*.y:.y=.h}
83.endif
84
85.if !empty(SRCS:N*.h:N*.sh)
86OBJS+=		${SRCS:N*.h:N*.sh:R:S/$/.lo/g}
87LOBJS+=		${LSRCS:.c=.ln} ${SRCS:M*.c:.c=.ln}
88.endif
89
90.if defined(OBJS) && !empty(OBJS)
91.NOPATH: ${OBJS}
92
93${HOSTPROG}: ${DPSRCS} ${OBJS} ${LIBC} ${DPADD}
94	${HOST_LINK.c} ${HOST_LDSTATIC} -o ${.TARGET} ${OBJS} ${LDADD}
95
96.endif	# defined(OBJS) && !empty(OBJS)
97
98.if !defined(MAN)
99MAN=	${HOSTPROG}.1
100.endif	# !defined(MAN)
101.endif	# defined(HOSTPROG)
102
103realall: ${HOSTPROG}
104
105cleanprog:
106	rm -f a.out [Ee]rrs mklog core *.core \
107	    ${HOSTPROG} ${OBJS} ${LOBJS} ${CLEANFILES}
108
109beforedepend:
110CPPFLAGS=	${HOST_CPPFLAGS}
111
112.if defined(SRCS)
113afterdepend: .depend
114	@(TMP=/tmp/_depend$$$$; \
115	    sed -e 's/^\([^\.]*\).o[ ]*:/\1.lo \1.ln:/' \
116	      < .depend > $$TMP; \
117	    mv $$TMP .depend)
118.endif
119
120lint: ${LOBJS}
121.if defined(LOBJS) && !empty(LOBJS)
122	${LINT} ${LINTFLAGS} ${LDFLAGS:M-L*} ${LOBJS} ${LDADD}
123.endif
124
125.include <bsd.man.mk>
126.include <bsd.nls.mk>
127.include <bsd.files.mk>
128.include <bsd.inc.mk>
129.include <bsd.links.mk>
130.include <bsd.dep.mk>
131.include <bsd.sys.mk>
132
133# Make sure all of the standard targets are defined, even if they do nothing.
134regress:
135