Home | History | Annotate | Line # | Download | only in mk
bsd.hostlib.mk revision 1.8
      1 #	$NetBSD: bsd.hostlib.mk,v 1.8 2003/10/18 15:33:59 lukem Exp $
      2 
      3 .include <bsd.init.mk>
      4 .include <bsd.sys.mk>
      5 
      6 ##### Basic targets
      7 .PHONY:		cleanlib
      8 clean:		cleanlib
      9 
     10 ##### Default values
     11 CFLAGS+=	${COPTS}
     12 HOST_MKDEP?=	CC=${HOST_CC:Q} mkdep
     13 
     14 # Override these:
     15 MKDEP:=		${HOST_MKDEP}
     16 
     17 .if ${TOOLCHAIN_MISSING} != "yes" || defined(EXTERNAL_TOOLCHAIN)
     18 OBJHOSTMACHINE=	# set
     19 .endif
     20 
     21 ##### Build rules
     22 .if defined(HOSTLIB)
     23 DPSRCS+=	${SRCS:M*.l:.l=.c} ${SRCS:M*.y:.y=.c}
     24 CLEANFILES+=	${SRCS:M*.l:.l=.c} ${SRCS:M*.y:.y=.c}
     25 CLEANFILES+=	${YHEADER:D${SRCS:M*.y:.y=.h}}
     26 .endif	# defined(HOSTLIB)
     27 
     28 .if !empty(SRCS:N*.h:N*.sh)
     29 OBJS+=		${SRCS:N*.h:N*.sh:R:S/$/.lo/g}
     30 .endif
     31 
     32 .if defined(OBJS) && !empty(OBJS)
     33 .NOPATH: ${OBJS} ${HOSTPROG} ${SRCS:M*.[ly]:C/\..$/.c/} ${YHEADER:D${SRCS:M*.y:.y=.h}}
     34 
     35 ${OBJS}: ${DPSRCS}
     36 
     37 lib${HOSTLIB}.a: ${OBJS} ${DPADD}
     38 	${_MKMSG} "  build  ${.TARGET}"
     39 	${_MKCMD}\
     40 	rm -f ${.TARGET}
     41 	${_MKCMD}\
     42 	${HOST_AR} cq ${.TARGET} ${OBJS}
     43 	${_MKCMD}\
     44 	${HOST_RANLIB} ${.TARGET}
     45 
     46 .endif	# defined(OBJS) && !empty(OBJS)
     47 
     48 realall: lib${HOSTLIB}.a
     49 
     50 cleanlib:
     51 	${_MKCMD}\
     52 	rm -f a.out [Ee]rrs mklog core *.core \
     53 	    lib${HOSTLIB}.a ${OBJS} ${CLEANFILES}
     54 
     55 beforedepend:
     56 CFLAGS:=	${HOST_CFLAGS}
     57 CPPFLAGS:=	${HOST_CPPFLAGS}
     58 
     59 .if defined(SRCS)
     60 afterdepend: .depend
     61 	@(TMP=/tmp/_depend$$$$; trap 'rm -f $$TMP ; exit 1' 1 2 3 13 15; \
     62 	    sed -e 's/^\([^\.]*\).o[ ]*:/\1.lo:/' \
     63 	      < .depend > $$TMP; \
     64 	    mv $$TMP .depend)
     65 .endif
     66 
     67 ##### Pull in related .mk logic
     68 .include <bsd.obj.mk>
     69 .include <bsd.dep.mk>
     70 
     71 ${TARGETS}:	# ensure existence
     72