Makefile revision 1.60
11.60Senami#	$NetBSD: Makefile,v 1.60 2001/02/18 22:38:50 enami Exp $
21.1Scgd
31.1ScgdLIB=	kern
41.47SlukemMKPIC=	no
51.9Sderaadt
61.59Sbjh21.include <bsd.own.mk>
71.59Sbjh21
81.60Senami.if defined(MACHINE_ARCH) && !empty(MACHINE_ARCH) && \
91.60Senami    exists(${KERNDIR}/arch/${MACHINE_ARCH})
101.59Sbjh21ARCHSUBDIR=     ${MACHINE_ARCH}
111.60Senami.elif defined(MACHINE_CPU) && !empty(MACHINE_CPU) && \
121.60Senami    exists(${KERNDIR}/arch/${MACHINE_CPU}) 
131.59Sbjh21ARCHSUBDIR=     ${MACHINE_CPU}
141.59Sbjh21.else
151.59Sbjh21.BEGIN:
161.60Senami	@echo no ARCHSUBDIR for ${MACHINE_ARCH} nor ${MACHINE_CPU}
171.60Senami	@false
181.59Sbjh21.endif
191.59Sbjh21
201.52SdrochnerM= ${KERNDIR}/arch/${ARCHSUBDIR}
211.20Schristos
221.32ScgdCPPFLAGS=	-I$M ${KERNCPPFLAGS} ${KERNMISCCPPFLAGS}
231.29Smycroft
241.52Sdrochner.PATH.c: ${KERNDIR}
251.29Smycroft.if exists ($M/Makefile.inc)
261.52Sdrochner.PATH.c: $M
271.52Sdrochner.PATH.S: $M
281.29Smycroft.include "$M/Makefile.inc"
291.1Scgd.endif
301.5Scgd
311.19Scgd.if (${MACHINE_ARCH} != "alpha")
321.5Scgd# Quad support
331.5ScgdSRCS+=	adddi3.c anddi3.c ashldi3.c ashrdi3.c cmpdi2.c divdi3.c iordi3.c \
341.5Scgd	lshldi3.c lshrdi3.c moddi3.c muldi3.c negdi2.c notdi2.c qdivrem.c \
351.5Scgd	subdi3.c  ucmpdi2.c udivdi3.c umoddi3.c xordi3.c
361.19Scgd.endif
371.8Scgd
381.8Scgd# Other stuff
391.55SdebergSRCS+=	__cmsg_alignbytes.c inet_addr.c intoa.c md4c.c md5c.c sha1.c pmatch.c
401.27Sscottr
411.27Sscottr# Files to clean up
421.27SscottrCLEANFILES+= lib${LIB}.o lib${LIB}.po
431.5Scgd
441.38Scgd#
451.38Scgd# Special rules for certain objects
461.38Scgd#
471.38Scgd
481.11Scgd# mcount cannot be compiled with profiling
491.11Scgdmcount.po: mcount.o
501.11Scgd	cp mcount.o mcount.po
511.40Smycroft
521.46Sperry# XXX these stub builds should be cleaned up even further.
531.46Sperry
541.46Sperry# if no machine specific memcpy(3), build one out of bcopy(3) based stub.
551.40Smycroft.if empty(SRCS:Mmemcpy.S)
561.46SperrySRCS+=	memcpy.c
571.44Sperry.endif
581.44Sperry
591.46Sperry# if no machine specific memmove(3), build one out of bcopy(3) based stub.
601.44Sperry.if empty(SRCS:Mmemmove.S)
611.46SperrySRCS+=	memmove.c
621.40Smycroft.endif
631.38Scgd
641.46Sperry# if no machine specific strchr(3), build one out of index(3) based stub.
651.38Scgd.if empty(SRCS:Mstrchr.S)
661.46SperrySRCS+=	strchr.c
671.38Scgd.endif
681.38Scgd
691.46Sperry# if no machine specific strrchr(3), build one out of rindex(3) based stub.
701.38Scgd.if empty(SRCS:Mstrrchr.S)
711.46SperrySRCS+=	strrchr.c
721.38Scgd.endif
731.36Scjs
741.48SchsPOBJS+=	mcount.po
751.43Sdrochner
761.36Scjs# only needed during build
771.36Scjslibinstall::
781.1Scgd
791.1Scgd.include <bsd.lib.mk>
801.23Smycroft
811.23Smycroftlib${LIB}.o:: ${OBJS}
821.23Smycroft	@echo building standard ${LIB} library
831.23Smycroft	@rm -f lib${LIB}.o
841.37Sgwr	@${LD} -r -o lib${LIB}.o `NM=${NM} ${LORDER} ${OBJS} | ${TSORT}`
851.23Smycroft
861.23Smycroftlib${LIB}.po:: ${POBJS}
871.23Smycroft	@echo building profiled ${LIB} library
881.23Smycroft	@rm -f lib${LIB}.po
891.37Sgwr	@${LD} -r -o lib${LIB}.po `NM=${NM} ${LORDER} ${POBJS} | ${TSORT}`
90