Makefile revision 91394
150477Speter# $FreeBSD: head/lib/libstand/Makefile 91394 2002-02-27 17:16:18Z tmm $
233548Sjkh#
32893Sdfr# Originally from	$NetBSD: Makefile,v 1.21 1997/10/26 22:08:38 lukem Exp $
42893Sdfr#
533548Sjkh# Notes:
633548Sjkh# - We don't use the libc strerror/sys_errlist because the string table is
72893Sdfr#   quite large.
82893Sdfr#
92893Sdfr
102893SdfrLIB=		stand
112893SdfrNOPROFILE=	YES
122893SdfrNOPIC=		YES
132893SdfrMAN=		libstand.3
142893Sdfr
152893Sdfr# Mostly OK, some of the libc imports are a bit noisy
162893SdfrCFLAGS+=	-Wall
172893Sdfr
182893Sdfr.if ${MACHINE_ARCH} == "alpha"
192893SdfrCFLAGS+=	-mno-fp-regs
202893Sdfr.endif
212893Sdfr.if ${MACHINE_ARCH} == "i386"
222893SdfrCFLAGS+=	-mpreferred-stack-boundary=2
232893Sdfr.endif
242893Sdfr.if ${MACHINE_ARCH} == "powerpc"
252893SdfrCFLAGS+=	-msoft-float
262893Sdfr.endif
272893Sdfr
282893Sdfr# standalone components and stuff we have modified locally
292893SdfrSRCS+=	__main.c assert.c bcd.c bswap.c environment.c getopt.c gets.c \
302893Sdfr	globals.c pager.c printf.c strdup.c strerror.c strtol.c random.c \
312893Sdfr	sbrk.c twiddle.c zalloc.c zalloc_malloc.c
322893Sdfr
332893Sdfr# private (pruned) versions of libc string functions
342893SdfrSRCS+=	strcasecmp.c
35139776Simp
362893Sdfr# byte order functions from libc
378876Srgrimes.PATH: ${.CURDIR}/../libc/${MACHINE_ARCH}/net
382893SdfrSRCS+= htons.S ntohs.S htonl.S ntohl.S
392893Sdfr
408876Srgrimes# string functions from libc
412893Sdfr.PATH:	${.CURDIR}/../libc/string
428876Srgrimes.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "powerpc" || \
432893Sdfr	${MACHINE_ARCH} == "sparc64"
442893SdfrSRCS+=	bcmp.c bcopy.c bzero.c ffs.c index.c memccpy.c memchr.c memcmp.c \
452893Sdfr        memcpy.c memmove.c memset.c qdivrem.c rindex.c strcat.c strchr.c \
462893Sdfr        strcmp.c strcpy.c strcspn.c strlen.c strncat.c strncmp.c strncpy.c \
478876Srgrimes	strpbrk.c strrchr.c strsep.c strspn.c strstr.c strtok.c swab.c
482893Sdfr.endif
492893Sdfr.if ${MACHINE_ARCH} == "alpha"
502893Sdfr.PATH: ${.CURDIR}/../libc/alpha/string
512893SdfrSRCS+=	bcmp.c bcopy.S bzero.S ffs.S index.c memccpy.c memchr.c memcmp.c \
522893Sdfr	memcpy.S memmove.S memset.c rindex.c strcat.c strchr.c \
53171754Sbde	strcmp.c strcpy.c strcspn.c strlen.c \
5440651Sbde	strncat.c strncmp.c strncpy.c strpbrk.c strrchr.c strsep.c \
55171754Sbde	strspn.c strstr.c strtok.c swab.c
56171754Sbde
57171748SbdeSRCS+= __divqu.S __divq.S __divlu.S __divl.S
58171754SbdeSRCS+= __remqu.S __remq.S __remlu.S __reml.S
59171754Sbde
60171748SbdeCLEANFILES+=   __divqu.S __divq.S __divlu.S __divl.S
612893SdfrCLEANFILES+=   __remqu.S __remq.S __remlu.S __reml.S
62164033Srwatson
632893Sdfr
64171754Sbde__divqu.S: ${.CURDIR}/../libc/alpha/gen/divrem.m4
652893Sdfr	m4 -DNAME=__divqu -DOP=div -DS=false -DWORDSIZE=64 \
662893Sdfr		${.ALLSRC} > ${.TARGET}
67171754Sbde
68171754Sbde__divq.S: ${.CURDIR}/../libc/alpha/gen/divrem.m4
69171754Sbde	m4 -DNAME=__divq -DOP=div -DS=true -DWORDSIZE=64 \
70171754Sbde		${.ALLSRC} > ${.TARGET}
7177162Sru
7277162Sru__divlu.S: ${.CURDIR}/../libc/alpha/gen/divrem.m4
7377162Sru	m4 -DNAME=__divlu -DOP=div -DS=false -DWORDSIZE=32 \
7477162Sru		${.ALLSRC} > ${.TARGET}
75171754Sbde
762893Sdfr__divl.S: ${.CURDIR}/../libc/alpha/gen/divrem.m4
77172757Sbde	m4 -DNAME=__divl -DOP=div -DS=true -DWORDSIZE=32 \
78138471Sphk		${.ALLSRC} > ${.TARGET}
79172757Sbde
80172757Sbde__remqu.S: ${.CURDIR}/../libc/alpha/gen/divrem.m4
81172757Sbde	m4 -DNAME=__remqu -DOP=rem -DS=false -DWORDSIZE=64 \
82172757Sbde		${.ALLSRC} > ${.TARGET}
83172757Sbde
84172757Sbde__remq.S: ${.CURDIR}/../libc/alpha/gen/divrem.m4
85138471Sphk	m4 -DNAME=__remq -DOP=rem -DS=true -DWORDSIZE=64 \
86138471Sphk		${.ALLSRC} > ${.TARGET}
87138471Sphk
8856674Snyan__remlu.S: ${.CURDIR}/../libc/alpha/gen/divrem.m4
8956674Snyan	m4 -DNAME=__remlu -DOP=rem -DS=false -DWORDSIZE=32 \
9056674Snyan		${.ALLSRC} > ${.TARGET}
9156674Snyan
9256674Snyan__reml.S: ${.CURDIR}/../libc/alpha/gen/divrem.m4
9356674Snyan	m4 -DNAME=__reml -DOP=rem -DS=true -DWORDSIZE=32 \
9456674Snyan		${.ALLSRC} > ${.TARGET}
9556674Snyan.endif
9656674Snyan.if ${MACHINE_ARCH} == "ia64"
9756674Snyan.PATH: ${.CURDIR}/../libc/ia64/string
9856674SnyanSRCS+=	bcmp.c bcopy.S bzero.S ffs.S index.c memccpy.c memchr.c memcmp.c \
99151897Srwatson	memcpy.S memmove.S memset.c rindex.c strcat.c strchr.c \
100151897Srwatson	strcmp.c strcpy.c strcspn.c strlen.c \
10130309Sphk	strncat.c strncmp.c strncpy.c strpbrk.c strrchr.c strsep.c \
102171757Sbde	strspn.c strstr.c strtok.c swab.c
103120492Sfjoe
104138471Sphk.PATH: ${.CURDIR}/../libc/ia64/gen
105138471SphkSRCS+= __divdi3.S __divsi3.S __moddi3.S __modsi3.S
106132023SalfredSRCS+= __udivdi3.S __udivsi3.S __umoddi3.S __umodsi3.S
107170188Strhodes.endif
108138471Sphk
109101777Sphk.if ${MACHINE_ARCH} != "sparc64"
110101777Sphk# _setjmp/_longjmp
111101777Sphk.PATH:	${.CURDIR}/${MACHINE_ARCH}
112101777SphkSRCS+=	_setjmp.S
11312338Sbde.endif
114134345Stjr
115134345Stjr# decompression functionality from libbz2
116134345Stjr.PATH:	${.CURDIR}/../../contrib/bzip2
11733548SjkhCFLAGS+=-I. -DBZ_NO_STDIO -DBZ_NO_COMPRESS
118166558SrodrigcSRCS+=	_bzlib.c _crctable.c _decompress.c _huffman.c _randtable.c _bzlib.h \
11933548Sjkh	_bzlib_private.h
12033548Sjkh
121138471Sphk# check your belt - ugly bzip2 stuff ahead
122138471Sphk.for file in bzlib.c bzlib.h bzlib_private.h
12333548SjkhCLEANFILES+=   _${file} _${file}.orig
124138471Sphk
125138471Sphk_${file}: ${file} ${file}.diff
126138471Sphk	patch -s -b .orig -o ${.TARGET} < ${.ALLSRC:M*.diff} ${.ALLSRC:M*.[ch]}
127138471Sphk.endfor
128138471Sphk
129138471Sphk.for file in crctable.c decompress.c huffman.c randtable.c
130138471SphkCLEANFILES+=    _${file}
131138471Sphk
132138471Sphk_${file}: ${file}
133138471Sphk	sed "s|bzlib_private\.h|_bzlib_private.h|" ${.ALLSRC} > ${.TARGET}
134138471Sphk.endfor
135138471Sphk
136138471Sphk# decompression functionality from libz
137138471Sphk.PATH:	${.CURDIR}/../libz
138138471SphkCFLAGS+=-DHAVE_MEMCPY
139138471SphkSRCS+=	adler32.c crc32.c infblock.c infcodes.c inffast.c inflate.c \
140134345Stjr	inftrees.c infutil.c zutil.c 
141134345Stjr
142134345Stjr# io routines
143134345StjrSRCS+=	closeall.c dev.c ioctl.c nullfs.c stat.c \
144134345Stjr	fstat.c close.c lseek.c open.c read.c write.c readdir.c
145134345Stjr
146134345Stjr# network routines
147134345StjrSRCS+=	arp.c ether.c inet_ntoa.c in_cksum.c net.c udp.c netif.c rpc.c
148134345Stjr
149134345Stjr# network info services:
150138471SphkSRCS+=	bootp.c rarp.c bootparam.c
151138471Sphk
152138471Sphk# boot filesystems
153138471SphkSRCS+=	ufs.c nfs.c cd9660.c tftp.c zipfs.c bzipfs.c
154138471SphkSRCS+=	netif.c nfs.c
155138471SphkSRCS+=	dosfs.c ext2fs.c
156138471Sphk
157138471Sphkbeforeinstall:
158138471Sphk	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 ${.CURDIR}/stand.h \
159138471Sphk		${DESTDIR}/usr/include
160152595Srodrigc
161152595Srodrigc.include <bsd.lib.mk>
162138471Sphk