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