1# $OpenBSD: Makefile.inc,v 1.24 2011/04/04 18:16:24 stsp Exp $ 2 3# string sources 4.PATH: ${LIBCSRCDIR}/arch/${MACHINE_CPU}/string ${LIBCSRCDIR}/string 5 6SRCS+= bm.c memccpy.c memrchr.c strcasecmp.c strcasestr.c strcoll.c strdup.c \ 7 strerror.c strerror_r.c strlcat.c strmode.c strndup.c strnlen.c \ 8 strsignal.c strtok.c strxfrm.c \ 9 wcscat.c wcschr.c wcscmp.c wcscpy.c wcscspn.c wcslcat.c wcslcpy.c \ 10 wcslen.c wcsncat.c wcsncmp.c wcsncpy.c wcspbrk.c wcsrchr.c wcsspn.c \ 11 wcsstr.c wcstok.c wcswcs.c wcswidth.c wmemchr.c wmemcmp.c wmemcpy.c \ 12 wmemmove.c wmemset.c \ 13 timingsafe_bcmp.c 14 15# machine-dependent net sources 16# m-d Makefile.inc must include sources for: 17# bcmp() bcopy() bzero() ffs() index() memchr() memcmp() memset() 18# rindex() strcat() strcmp() strcpy() strcspn() strlen() strlcpy() 19# strncat() strncmp() strncpy() strpbrk() strsep() 20# strspn() strstr() swav() 21# m-d Makefile.inc may include sources for: 22# memcpy() memmove() strchr() strrchr() 23 24.include "${LIBCSRCDIR}/arch/${MACHINE_CPU}/string/Makefile.inc" 25 26# if no machine specific memmove(3), build one out of bcopy(3). 27.if empty(SRCS:Mmemmove.S) 28OBJS+= memmove.o 29memmove.o: bcopy.c 30 ${CC} -DMEMMOVE ${CFLAGS} ${CPPFLAGS} -c ${.ALLSRC} -o ${.TARGET} 31 @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 32 @mv ${.TARGET}.tmp ${.TARGET} 33 34memmove.go: bcopy.c 35 ${CC} -g -DMEMMOVE ${CFLAGS} ${CPPFLAGS} -c ${.ALLSRC} -o ${.TARGET} 36 @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 37 @mv ${.TARGET}.tmp ${.TARGET} 38 39memmove.po: bcopy.c 40 ${CC} -DMEMMOVE ${CFLAGS} ${CPPFLAGS} -c -p ${.ALLSRC} -o ${.TARGET} 41 @${LD} -o ${.TARGET}.tmp -X -r ${.TARGET} 42 @mv ${.TARGET}.tmp ${.TARGET} 43 44memmove.so: bcopy.c 45 ${CC} ${PICFLAG} -DPIC -DMEMMOVE ${CFLAGS} ${CPPFLAGS} -c ${.ALLSRC} \ 46 -o ${.TARGET} 47.endif 48 49# if no machine specific memcpy(3), build one out of bcopy(3). 50# if there is a machine specific memmove(3), we'll assume it aliases 51# memcpy(3). 52.if empty(SRCS:Mmemcpy.S) 53.if empty(SRCS:Mmemmove.S) 54OBJS+= memcpy.o 55memcpy.o: bcopy.c 56 ${CC} -DMEMCOPY ${CFLAGS} ${CPPFLAGS} -c ${.ALLSRC} -o ${.TARGET} 57 @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 58 @mv ${.TARGET}.tmp ${.TARGET} 59 60memcpy.go: bcopy.c 61 ${CC} -g -DMEMCOPY ${CFLAGS} ${CPPFLAGS} -c ${.ALLSRC} -o ${.TARGET} 62 @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 63 @mv ${.TARGET}.tmp ${.TARGET} 64 65memcpy.po: bcopy.c 66 ${CC} -DMEMCOPY ${CFLAGS} ${CPPFLAGS} -c -p ${.ALLSRC} -o ${.TARGET} 67 @${LD} -o ${.TARGET}.tmp -X -r ${.TARGET} 68 @mv ${.TARGET}.tmp ${.TARGET} 69 70memcpy.so: bcopy.c 71 ${CC} ${PICFLAG} -DPIC -DMEMCOPY ${CFLAGS} ${CPPFLAGS} -c ${.ALLSRC} \ 72 -o ${.TARGET} 73.endif 74.endif 75 76# if no machine specific strchr(3), build one out of index(3). 77.if empty(SRCS:Mstrchr.S) 78OBJS+= strchr.o 79strchr.o: index.c 80 ${CC} -DSTRCHR ${CFLAGS} ${CPPFLAGS} -c ${.ALLSRC} -o ${.TARGET} 81 @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 82 @mv ${.TARGET}.tmp ${.TARGET} 83 84strchr.go: index.c 85 ${CC} -g -DSTRCHR ${CFLAGS} ${CPPFLAGS} -c ${.ALLSRC} -o ${.TARGET} 86 @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 87 @mv ${.TARGET}.tmp ${.TARGET} 88 89strchr.po: index.c 90 ${CC} -DSTRCHR ${CFLAGS} ${CPPFLAGS} -c -p ${.ALLSRC} -o ${.TARGET} 91 @${LD} -o ${.TARGET}.tmp -X -r ${.TARGET} 92 @mv ${.TARGET}.tmp ${.TARGET} 93 94strchr.so: index.c 95 ${CC} ${PICFLAG} -DPIC -DSTRCHR ${CFLAGS} ${CPPFLAGS} -c ${.ALLSRC} \ 96 -o ${.TARGET} 97.endif 98 99# if no machine specific strrchr(3), build one out of rindex(3). 100.if empty(SRCS:Mstrrchr.S) 101OBJS+= strrchr.o 102strrchr.o: rindex.c 103 ${CC} -DSTRRCHR ${CFLAGS} ${CPPFLAGS} -c ${.ALLSRC} -o ${.TARGET} 104 @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 105 @mv ${.TARGET}.tmp ${.TARGET} 106 107strrchr.go: rindex.c 108 ${CC} -g -DSTRRCHR ${CFLAGS} ${CPPFLAGS} -c ${.ALLSRC} -o ${.TARGET} 109 @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 110 @mv ${.TARGET}.tmp ${.TARGET} 111 112strrchr.po: rindex.c 113 ${CC} -DSTRRCHR ${CFLAGS} ${CPPFLAGS} -c -p ${.ALLSRC} -o ${.TARGET} 114 @${LD} -o ${.TARGET}.tmp -X -r ${.TARGET} 115 @mv ${.TARGET}.tmp ${.TARGET} 116 117strrchr.so: rindex.c 118 ${CC} ${PICFLAG} -DPIC -DSTRRCHR ${CFLAGS} ${CPPFLAGS} -c ${.ALLSRC} \ 119 -o ${.TARGET} 120.endif 121 122# build .ln files for memmove, memcpy, strchr and strrchr always from 123# bcopy, index, and rindex 124LOBJS+= memmove.ln memcpy.ln strchr.ln strrchr.ln 125 126memmove.ln: bcopy.c 127 lint ${LINTFLAGS} -DMEMMOVE ${CFLAGS:M-[IDU]*} -i -o ${.TARGET} \ 128 ${LIBCSRCDIR}/string/bcopy.c 129 130memcpy.ln: bcopy.c 131 lint ${LINTFLAGS} -DMEMCOPY ${CFLAGS:M-[IDU]*} -i -o ${.TARGET} \ 132 ${LIBCSRCDIR}/string/bcopy.c 133 134strchr.ln: index.c 135 lint ${LINTFLAGS} -DSTRCHR ${CFLAGS:M-[IDU]*} -i -o ${.TARGET} \ 136 ${LIBCSRCDIR}/string/index.c 137 138strrchr.ln: rindex.c 139 lint ${LINTFLAGS} -DSTRRCHR ${CFLAGS:M-[IDU]*} -i -o ${.TARGET} \ 140 ${LIBCSRCDIR}/string/rindex.c 141 142MAN+= bm.3 bcmp.3 bcopy.3 bstring.3 bzero.3 ffs.3 memccpy.3 memchr.3 \ 143 memcmp.3 memcpy.3 memmove.3 memset.3 strcasecmp.3 strcat.3 \ 144 strchr.3 strcmp.3 strcoll.3 strcpy.3 strcspn.3 strerror.3 \ 145 string.3 strlen.3 strmode.3 strdup.3 strpbrk.3 strrchr.3 strsep.3 \ 146 strsignal.3 strspn.3 strstr.3 strtok.3 strxfrm.3 swab.3 strlcpy.3 \ 147 wcstok.3 wmemchr.3 wcswidth.3 148 149MLINKS+=bm.3 bm_comp.3 bm.3 bm_exec.3 bm.3 bm_free.3 150MLINKS+=memchr.3 memrchr.3 151MLINKS+=strchr.3 index.3 152MLINKS+=strrchr.3 rindex.3 153MLINKS+=strcasecmp.3 strncasecmp.3 154MLINKS+=strcat.3 strncat.3 155MLINKS+=strcmp.3 strncmp.3 156MLINKS+=strcpy.3 strncpy.3 157MLINKS+=strdup.3 strndup.3 158MLINKS+=strlcpy.3 strlcat.3 159MLINKS+=strlen.3 strnlen.3 160MLINKS+=strstr.3 strcasestr.3 161MLINKS+=strtok.3 strtok_r.3 162MLINKS+=strerror.3 strerror_r.3 163MLINKS+=wmemchr.3 wmemcmp.3 164MLINKS+=wmemchr.3 wmemcpy.3 165MLINKS+=wmemchr.3 wmemmove.3 166MLINKS+=wmemchr.3 wmemset.3 167MLINKS+=wmemchr.3 wcscat.3 168MLINKS+=wmemchr.3 wcschr.3 169MLINKS+=wmemchr.3 wcscmp.3 170MLINKS+=wmemchr.3 wcscpy.3 171MLINKS+=wmemchr.3 wcscspn.3 172MLINKS+=wmemchr.3 wcslcat.3 173MLINKS+=wmemchr.3 wcslcpy.3 174MLINKS+=wmemchr.3 wcslen.3 175MLINKS+=wmemchr.3 wcsncat.3 176MLINKS+=wmemchr.3 wcsncmp.3 177MLINKS+=wmemchr.3 wcsncpy.3 178MLINKS+=wmemchr.3 wcspbrk.3 179MLINKS+=wmemchr.3 wcsrchr.3 180MLINKS+=wmemchr.3 wcsspn.3 181MLINKS+=wmemchr.3 wcsstr.3 182MLINKS+=bcmp.3 timingsafe_bcmp.3 183