Handle machine-dependent (m-d) (string) sources more automatically.

The names of m-d variants are now added (manually) to MDSRCS instead
of to SRCS, and the names of all machine-independent (m-i) variants
that can reasonably be replaced by an m-d variant are now added
(manually) to MISRCS instead of to SRCS, so that a simple substitution
can be used to discard the unused m-i variants.  MISRCS is potentially
all m-i sources, but the substitution is too simple to be fast, so
MISRCS should be kept reasonably small.

libc/Makefile.inc:
Do the substitution.

libc/i386/string/Makefile.inc:
Add to MDSRCS instead of to SRCS.  Add the names of all sources in this
directory, but no others.

libc/string/Makefile.inc
Add to MISRCS instead of to SRCS.  Add the names of all sources in this
directory.  Don't use (broken) explicit rules for special cases.
This commit is contained in:
Bruce Evans 1997-10-16 13:46:50 +00:00
parent 74dcc37aef
commit ae80efa54f
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=30481
3 changed files with 23 additions and 80 deletions

View file

@ -1,4 +1,4 @@
# $Id: Makefile.inc,v 1.1 1997/05/03 03:49:51 jb Exp $
# $Id: Makefile.inc,v 1.2 1997/10/15 16:29:08 bde Exp $
#
# This file contains make rules that are shared by libc and libc_r.
#
@ -22,3 +22,14 @@
CFLAGS+= -DYP
.include "${.CURDIR}/../libc/yp/Makefile.inc"
.endif
# Append machine-dependent sources, then append machine-independent sources
# for which there is no machine-dependent variant.
.if !empty(MDSRCS)
SRCS+= ${MDSRCS}
.for _src in ${MISRCS}
.if ${MDSRCS:R:M${_src:R}} == ""
SRCS+= ${_src}
.endif
.endfor
.endif

View file

@ -1,8 +1,6 @@
# @(#)Makefile.inc 8.1 (Berkeley) 6/4/93
# $Id: Makefile.inc,v 1.6 1997/02/22 14:59:02 peter Exp $
# $Id: Makefile.inc,v 1.7 1997/04/20 12:46:11 bde Exp $
SRCS+= bcmp.S bcopy.S bzero.S ffs.S index.S memchr.S memcmp.S \
memmove.S memcpy.S memset.S \
rindex.S strcat.S strchr.S strcmp.S strcpy.S strcspn.c \
strlen.S strncat.c strncmp.S strncpy.c strpbrk.c strsep.c \
strspn.c strrchr.S strstr.c swab.S
MDSRCS+=bcmp.S bcopy.S bzero.S ffs.S index.S memchr.S memcmp.S memcpy.S \
memmove.S memset.S rindex.S strcat.S strchr.S strcmp.S strcpy.S \
strlen.S strncmp.S strrchr.S swab.S

View file

@ -1,86 +1,20 @@
# @(#)Makefile.inc 8.1 (Berkeley) 6/4/93
# $Id: Makefile.inc,v 1.10 1997/05/03 03:50:05 jb Exp $
# $Id: Makefile.inc,v 1.11 1997/10/15 16:16:26 bde Exp $
.PATH: ${.CURDIR}/../libc/${MACHINE}/string ${.CURDIR}/../libc/string
CFLAGS += -I${.CURDIR}/../libc/locale
# machine-independent string sources
SRCS+= memccpy.c strcasecmp.c strcoll.c strdup.c strerror.c \
strmode.c strtok.c strxfrm.c
MISRCS+=bcmp.c bcopy.c bzero.c ffs.c index.c memccpy.c memchr.c memcmp.c \
memcpy.c memmove.c memset.c rindex.c strcasecmp.c strcat.c strchr.c \
strcmp.c strcoll.c strcpy.c strcspn.c strdup.c strerror.c strlen.c \
strmode.c strncat.c strncmp.c strncpy.c strpbrk.c strrchr.c strsep.c \
strspn.c strstr.c strtok.c strxfrm.c swab.c
# machine-dependent string sources
.include "${.CURDIR}/../libc/${MACHINE}/string/Makefile.inc"
# If no machine specific bzero(3), build one out of memset(3).
.if empty(SRCS:Mbzero.S)
OBJS+= bzero.o
bzero.o: memset.c
${CC} -DBZERO ${CFLAGS} -c ${.ALLSRC} -o ${.TARGET}
@${LD} -x -r ${.TARGET}
@mv -f a.out ${.TARGET}
bzero.po: memset.c
${CC} -DBZERO ${CFLAGS} -c -p ${.ALLSRC} -o ${.TARGET}
@${LD} -X -r ${.TARGET}
@mv -f a.out ${.TARGET}
.endif
# If no machine specific memmove(3), build one out of bcopy(3).
.if empty(SRCS:Mmemmove.S)
OBJS+= memmove.o
memmove.o: bcopy.c
${CC} -DMEMMOVE ${CFLAGS} -c ${.ALLSRC} -o ${.TARGET}
@${LD} -x -r ${.TARGET}
@mv -f a.out ${.TARGET}
memmove.po: bcopy.c
${CC} -DMEMMOVE ${CFLAGS} -c -p ${.ALLSRC} -o ${.TARGET}
@${LD} -X -r ${.TARGET}
@mv -f a.out ${.TARGET}
.endif
# If no machine specific memcpy(3), build one out of bcopy(3).
.if empty(SRCS:Mmemmove.S)
OBJS+= memcpy.o
memcpy.o: bcopy.c
${CC} -DMEMCOPY ${CFLAGS} -c ${.ALLSRC} -o ${.TARGET}
@${LD} -x -r ${.TARGET}
@mv -f a.out ${.TARGET}
memcpy.po: bcopy.c
${CC} -DMEMCOPY ${CFLAGS} -c -p ${.ALLSRC} -o ${.TARGET}
@${LD} -X -r ${.TARGET}
@mv -f a.out ${.TARGET}
.endif
# If no machine specific strchr(3), build one out of index(3).
.if empty(SRCS:Mstrchr.S)
OBJS+= strchr.o
strchr.o: index.c
${CC} -DSTRCHR ${CFLAGS} -c ${.ALLSRC} -o ${.TARGET}
@${LD} -x -r ${.TARGET}
@mv -f a.out ${.TARGET}
strchr.po: index.c
${CC} -DSTRCHR ${CFLAGS} -c -p ${.ALLSRC} -o ${.TARGET}
@${LD} -X -r ${.TARGET}
@mv -f a.out ${.TARGET}
.endif
# If no machine specific strrchr(3), build one out of rindex(3).
.if empty(SRCS:Mstrrchr.S)
OBJS+= strrchr.o
strrchr.o: rindex.c
${CC} -DSTRRCHR ${CFLAGS} -c ${.ALLSRC} -o ${.TARGET}
@${LD} -x -r ${.TARGET}
@mv -f a.out ${.TARGET}
strrchr.po: rindex.c
${CC} -DSTRRCHR ${CFLAGS} -c -p ${.ALLSRC} -o ${.TARGET}
@${LD} -X -r ${.TARGET}
@mv -f a.out ${.TARGET}
.endif
#
.if ${LIB} == "c"
MAN3+= bcmp.3 bcopy.3 bstring.3 bzero.3 ffs.3 index.3 memccpy.3 memchr.3 \
memcmp.3 memcpy.3 memmove.3 memset.3 rindex.3 strcasecmp.3 strcat.3 \