Makefile revision 146324
178527Sassar# $FreeBSD: head/lib/libstand/Makefile 146324 2005-05-17 16:22:54Z obrien $
278527Sassar# Originally from	$NetBSD: Makefile,v 1.21 1997/10/26 22:08:38 lukem Exp $
378527Sassar#
478527Sassar# Notes:
578527Sassar# - We don't use the libc strerror/sys_errlist because the string table is
678527Sassar#   quite large.
778527Sassar#
878527Sassar
978527SassarLIB=		stand
1078527SassarNO_PROFILE=
1178527SassarNO_PIC=
1278527SassarINCS=		stand.h
1378527SassarMAN=		libstand.3
1478527Sassar
1578527SassarCFLAGS+= -ffreestanding -Wformat
1678527SassarCFLAGS+= -I${.CURDIR}
1778527Sassar
1878527Sassar.if ${MACHINE_ARCH} == "alpha"
1978527SassarCFLAGS+=	-mno-fp-regs
2078527Sassar.endif
2178527Sassar.if ${MACHINE_ARCH} == "i386"
2278527SassarCFLAGS+=	-mpreferred-stack-boundary=2
2378527Sassar.endif
2478527Sassar.if ${MACHINE_ARCH} == "powerpc"
2578527SassarCFLAGS+=	-msoft-float -D_STANDALONE
2678527Sassar.endif
2778527Sassar.if ${MACHINE_ARCH} == "amd64"
2878527SassarCFLAGS+=	-m32
2978527Sassar.endif
3078527Sassar
3178527Sassar# standalone components and stuff we have modified locally
3278527SassarSRCS+=	zutil.h __main.c assert.c bcd.c bswap.c environment.c getopt.c gets.c \
3378527Sassar	globals.c pager.c printf.c strdup.c strerror.c strtol.c random.c \
3478527Sassar	sbrk.c twiddle.c zalloc.c zalloc_malloc.c
3578527Sassar
3678527Sassar# private (pruned) versions of libc string functions
3778527SassarSRCS+=	strcasecmp.c
3878527Sassar
3978527Sassar# byte order functions from libc
4078527Sassar.if ${MACHINE_ARCH} != "amd64"
4178527Sassar.PATH: ${.CURDIR}/../libc/${MACHINE_ARCH}/net
4278527Sassar.else
4378527Sassar.PATH: ${.CURDIR}/../libc/i386/net
4478527Sassar.endif
4578527SassarSRCS+= htons.S ntohs.S htonl.S ntohl.S
4678527Sassar
4778527Sassar# string functions from libc
4878527Sassar.PATH: ${.CURDIR}/../libc/string
4978527Sassar.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "powerpc" || \
5078527Sassar	${MACHINE_ARCH} == "sparc64" || ${MACHINE_ARCH} == "amd64"
5178527SassarSRCS+=	bcmp.c bcopy.c bzero.c ffs.c index.c memccpy.c memchr.c memcmp.c \
5278527Sassar        memcpy.c memmove.c memset.c qdivrem.c rindex.c strcat.c strchr.c \
5378527Sassar        strcmp.c strcpy.c strcspn.c strlen.c strncat.c strncmp.c strncpy.c \
5478527Sassar	strpbrk.c strrchr.c strsep.c strspn.c strstr.c strtok.c swab.c
5578527Sassar.endif
5678527Sassar.if ${MACHINE_ARCH} == "alpha"
5778527Sassar.PATH: ${.CURDIR}/../libc/alpha/string
5878527SassarSRCS+=	bcmp.c bcopy.S bzero.S ffs.S index.c memccpy.c memchr.c memcmp.c \
5978527Sassar	memcpy.S memmove.S memset.c rindex.c strcat.c strchr.c \
6078527Sassar	strcmp.c strcpy.c strcspn.c strlen.c \
6178527Sassar	strncat.c strncmp.c strncpy.c strpbrk.c strrchr.c strsep.c \
6278527Sassar	strspn.c strstr.c strtok.c swab.c
6378527Sassar
6478527SassarSRCS+= __divqu.S __divq.S __divlu.S __divl.S
6578527SassarSRCS+= __remqu.S __remq.S __remlu.S __reml.S
6678527Sassar
6778527SassarCLEANFILES+=   __divqu.S __divq.S __divlu.S __divl.S
6878527SassarCLEANFILES+=   __remqu.S __remq.S __remlu.S __reml.S
6978527Sassar
7078527Sassar
7178527Sassar__divqu.S: ${.CURDIR}/../libc/alpha/gen/divrem.m4
7278527Sassar	m4 -DNAME=__divqu -DOP=div -DS=false -DWORDSIZE=64 \
7378527Sassar		${.ALLSRC} > ${.TARGET}
7478527Sassar
7578527Sassar__divq.S: ${.CURDIR}/../libc/alpha/gen/divrem.m4
7678527Sassar	m4 -DNAME=__divq -DOP=div -DS=true -DWORDSIZE=64 \
7778527Sassar		${.ALLSRC} > ${.TARGET}
7878527Sassar
7978527Sassar__divlu.S: ${.CURDIR}/../libc/alpha/gen/divrem.m4
8078527Sassar	m4 -DNAME=__divlu -DOP=div -DS=false -DWORDSIZE=32 \
8178527Sassar		${.ALLSRC} > ${.TARGET}
8278527Sassar
8378527Sassar__divl.S: ${.CURDIR}/../libc/alpha/gen/divrem.m4
8478527Sassar	m4 -DNAME=__divl -DOP=div -DS=true -DWORDSIZE=32 \
8578527Sassar		${.ALLSRC} > ${.TARGET}
8678527Sassar
8778527Sassar__remqu.S: ${.CURDIR}/../libc/alpha/gen/divrem.m4
8878527Sassar	m4 -DNAME=__remqu -DOP=rem -DS=false -DWORDSIZE=64 \
8978527Sassar		${.ALLSRC} > ${.TARGET}
9078527Sassar
9178527Sassar__remq.S: ${.CURDIR}/../libc/alpha/gen/divrem.m4
9278527Sassar	m4 -DNAME=__remq -DOP=rem -DS=true -DWORDSIZE=64 \
9378527Sassar		${.ALLSRC} > ${.TARGET}
9478527Sassar
9578527Sassar__remlu.S: ${.CURDIR}/../libc/alpha/gen/divrem.m4
9678527Sassar	m4 -DNAME=__remlu -DOP=rem -DS=false -DWORDSIZE=32 \
9778527Sassar		${.ALLSRC} > ${.TARGET}
9878527Sassar
9978527Sassar__reml.S: ${.CURDIR}/../libc/alpha/gen/divrem.m4
10078527Sassar	m4 -DNAME=__reml -DOP=rem -DS=true -DWORDSIZE=32 \
10178527Sassar		${.ALLSRC} > ${.TARGET}
10278527Sassar.endif
10378527Sassar.if ${MACHINE_ARCH} == "ia64"
10478527Sassar.PATH: ${.CURDIR}/../libc/ia64/string
10578527SassarSRCS+=	bcmp.c bcopy.S bzero.S ffs.S index.c memccpy.c memchr.c memcmp.c \
10678527Sassar	memcpy.S memmove.S memset.c rindex.c strcat.c strchr.c \
10778527Sassar	strcmp.c strcpy.c strcspn.c strlen.c \
10878527Sassar	strncat.c strncmp.c strncpy.c strpbrk.c strrchr.c strsep.c \
10978527Sassar	strspn.c strstr.c strtok.c swab.c
11078527Sassar
11178527Sassar.PATH: ${.CURDIR}/../libc/ia64/gen
11278527SassarSRCS+= __divdi3.S __divsi3.S __moddi3.S __modsi3.S
11378527SassarSRCS+= __udivdi3.S __udivsi3.S __umoddi3.S __umodsi3.S
11478527Sassar.endif
11578527Sassar.if ${MACHINE_ARCH} == "powerpc"
116.PATH: ${.CURDIR}/../libc/quad
117SRCS+=	ashldi3.c ashrdi3.c
118.PATH: ${.CURDIR}/../libc/powerpc/gen
119SRCS+=	syncicache.c
120.endif
121
122# _setjmp/_longjmp
123.if ${MACHINE_ARCH} == "amd64"
124.PATH: ${.CURDIR}/i386
125.else
126.PATH: ${.CURDIR}/${MACHINE_ARCH}
127.endif
128SRCS+=	_setjmp.S
129
130# decompression functionality from libz
131.PATH: ${.CURDIR}/../../contrib/bzip2
132CFLAGS+= -DBZ_NO_STDIO
133SRCS+=	bzlib.c crctable.c decompress.c huffman.c randtable.c
134
135# decompression functionality from libz
136.PATH: ${.CURDIR}/../libz
137CFLAGS+=-DHAVE_MEMCPY -I${.CURDIR}/../libz
138SRCS+=	adler32.c crc32.c _infback.c _inffast.c _inflate.c \
139	_inftrees.c _zutil.c _zutil.h
140
141# aargh
142.for file in zutil.h
143CLEANFILES+=	_${file} _${file}.orig
144
145_${file}: ${file} ${file}.diff
146	patch -s -b .orig -o ${.TARGET} < ${.ALLSRC:M*.diff} ${.ALLSRC:M*.[ch]}
147.endfor
148
149.for file in infback.c inffast.c inflate.c inftrees.c zutil.c
150CLEANFILES+=	_${file}
151
152_${file}: ${file}
153	sed "s|zutil\.h|_zutil.h|" ${.ALLSRC} > ${.TARGET}
154.endfor
155
156# io routines
157SRCS+=	closeall.c dev.c ioctl.c nullfs.c stat.c \
158	fstat.c close.c lseek.c open.c read.c write.c readdir.c
159
160# network routines
161SRCS+=	arp.c ether.c inet_ntoa.c in_cksum.c net.c udp.c netif.c rpc.c
162
163# network info services:
164SRCS+=	bootp.c rarp.c bootparam.c
165
166# boot filesystems
167SRCS+=	ufs.c nfs.c cd9660.c tftp.c gzipfs.c bzipfs.c
168SRCS+=	dosfs.c ext2fs.c
169SRCS+=	splitfs.c
170
171.include <bsd.lib.mk>
172
173.if ${MACHINE_ARCH} == "amd64"
174${SRCS:M*.c:R:S/$/.o/g}:	machine
175
176beforedepend:	machine
177
178machine:
179	ln -s ${.CURDIR}/../../sys/i386/include machine
180.endif
181