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