#################################################
#						#
# Makefile for CLIB\STRING directory		#
#						#
# Routines contained in this directory are:	#
#	strcat.asm				#
#	strchr.asm				#
#	strcmp.asm				#
#	stricmp.asm				#
#	strcoll.c				#
#	strcpy.asm				#
#	strcspn.asm				#
#	strdup.asm				#
#	strlen.asm				#
#	strlwr.asm				#
#	strncat.asm				#
#	strncmp.asm				#
#	strnicmp.asm				#
#	strncpy.asm				#
#	strnset.asm				#
#	strpbrk.asm				#
#	strrchr.asm				#
#	strrev.asm				#
#	strset.asm				#
#	strspn.asm				#
#	strstr.asm				#
#	strtok.asm				#
#	strupr.asm				#
#	strxfrm.c				#
#						#
#################################################

#########################################
#					#
# Object lists				#
#					#
#########################################

# Common objects
COMM_O= $(LIBC)\memccpy.obj \
	$(LIBC)\memchr.obj \
	$(LIBC)\memicmp.obj \
	$(LIBC)\memcmp.obj \
	$(LIBC)\memcpy.obj \
	$(LIBC)\strchr.obj \
	$(LIBC)\stricmp.obj \
	$(LIBC)\strncat.obj \
	$(LIBC)\strncmp.obj \
	$(LIBC)\strnicmp.obj \
	$(LIBC)\strncpy.obj \
	$(LIBC)\strnset.obj \
	$(LIBC)\strrchr.obj \
	$(LIBC)\strrev.obj \
	$(LIBC)\strset.obj \
	$(LIBC)\strlwr.obj \
	$(LIBC)\strupr.obj \
	$(LIBC)\strlen.obj \
	$(LIBC)\strcmp.obj \
	$(LIBC)\strcpy.obj \
	$(LIBC)\strcat.obj \
	$(LIBC)\strlen.obj \
	$(LIBC)\memset.obj \
	$(LIBC)\strcspn.obj \
	$(LIBC)\strpbrk.obj \
	$(LIBC)\strspn.obj \
	$(LIBC)\strtok.obj \
	$(LIBC)\strstr.obj \
	$(LIBC)\memmove.obj \
	$(LIBC)\strcoll.obj \
	$(LIBC)\strdup.obj \
	$(LIBC)\nstrdup.obj \
	$(LIBC)\fstrdup.obj \
	$(LIBC)\strxfrm.obj

LIBH_O= $(LIBC)\fmemchr.obj \
	$(LIBC)\fmemicmp.obj \
	$(LIBC)\fmemcmp.obj \
	$(LIBC)\fstrchr.obj \
	$(LIBC)\fstricmp.obj \
	$(LIBC)\fstrncat.obj \
	$(LIBC)\fstrncmp.obj \
	$(LIBC)\fstrnicm.obj \
	$(LIBC)\fstrncpy.obj \
	$(LIBC)\fstrnset.obj \
	$(LIBC)\fstrrchr.obj \
	$(LIBC)\fstrrev.obj \
	$(LIBC)\fstrset.obj \
	$(LIBC)\fstrlwr.obj \
	$(LIBC)\fstrupr.obj \
	$(LIBC)\fstrlen.obj \
	$(LIBC)\fstrcmp.obj \
	$(LIBC)\fstrcpy.obj \
	$(LIBC)\fstrcat.obj \
	$(LIBC)\fstrlen.obj \
	$(LIBC)\fmemset.obj \
	$(LIBC)\fstrcspn.obj \
	$(LIBC)\fstrpbrk.obj \
	$(LIBC)\fstrspn.obj \
	$(LIBC)\fstrtok.obj \
	$(LIBC)\fstrstr.obj

# Model-Independent Objects not specially built for libhcrt
MI_O= \
	$(LIBC)\fmemccpy.obj \
	$(LIBC)\fmemcpy.obj \
	$(LIBC)\fmemmove.obj


# DOS objects
DOS_O=



# Windows objects
WIN_O= \
	$(LIBC)\strcoll.obj \
	$(LIBC)\strdup.obj \
	$(LIBC)\nstrdup.obj \
	$(LIBC)\fstrdup.obj \
	$(LIBC)\strxfrm.obj

WINDLL_O=


#########################################
#					#
# Target Dependency listings		#
#					#
#########################################

libc: $(COMM_O) $(DOS_O)

# HACK ALERT!
# libh: $(LIBH_O) $(DOS_O) $(MI_O)
libh: $(LIBH_O) $(MI_O)


libhcrt: $(LIBH_O)



libcw: $(WIN_O)

libcwdll:  $(WINDLL_O)


#########################################################
#							#
#   Dependencies and rules for making local objects	#
#							#
#########################################################

$(LIBC)\$(F)strcat.obj: strcat.asm $(ASMSTD)
	$(MM) -Fo$(LIBC)\$(F)strcat.obj strcat.asm

$(LIBC)\$(F)strchr.obj: strchr.asm $(ASMSTD)
	$(MM) -Fo$(LIBC)\$(F)strchr.obj strchr.asm

$(LIBC)\$(F)strcmp.obj: strcmp.asm $(ASMSTD)
	$(MM) -Fo$(LIBC)\$(F)strcmp.obj strcmp.asm

$(LIBC)\strcoll.obj: strcoll.c $(INCLUDE)\string.h
	$(CC) $(MEM) -Fo$(LIBC)\strcoll.obj strcoll.c

$(LIBC)\$(F)stricmp.obj: stricmp.asm $(ASMSTD)
	$(MM) -Fo$(LIBC)\$(F)stricmp.obj stricmp.asm

$(LIBC)\$(F)strcpy.obj: strcpy.asm $(ASMSTD)
	$(MM) -Fo$(LIBC)\$(F)strcpy.obj strcpy.asm

$(LIBC)\$(F)strcspn.obj: strcspn.asm $(ASMSTD)
	$(MM) -Fo$(LIBC)\$(F)strcspn.obj strcspn.asm

$(LIBC)\strdup.obj: strdup.asm $(ASMSTD) $(ASMINC)\model.inc
	$(MM) -Fo$(LIBC)\$(F)strdup.obj strdup.asm

$(LIBC)\nstrdup.obj: strdup.asm $(ASMSTD) $(ASMINC)\model.inc
	$(MM) -DMODELINDEP -DNEARMODELINDEP -Fo$(LIBC)\nstrdup.obj strdup.asm

$(LIBC)\fstrdup.obj: strdup.asm $(ASMSTD) $(ASMINC)\model.inc
	$(MM) -DMODELINDEP -Fo$(LIBC)\fstrdup.obj strdup.asm

$(LIBC)\$(F)strlen.obj: strlen.asm $(ASMSTD)
	$(MM) -Fo$(LIBC)\$(F)strlen.obj strlen.asm

$(LIBC)\$(F)strlwr.obj: strlwr.asm $(ASMSTD)
	$(MM) -Fo$(LIBC)\$(F)strlwr.obj strlwr.asm

$(LIBC)\$(F)strncat.obj: strncat.asm $(ASMSTD)
	$(MM) -Fo$(LIBC)\$(F)strncat.obj strncat.asm

$(LIBC)\$(F)strncmp.obj: strncmp.asm $(ASMSTD)
	$(MM) -Fo$(LIBC)\$(F)strncmp.obj strncmp.asm

$(LIBC)\$(F)strnicmp.obj: strnicmp.asm $(ASMSTD)
	$(MM) -Fo$(LIBC)\$(F)strnicmp.obj strnicmp.asm

# The following rule is here to get around 8.3 naming limits
# Otherwise it would be covered by the previous rule for *strnicmp.obj

$(LIBC)\$(F)strnicm.obj: strnicmp.asm $(ASMSTD)
	$(MM) -Fo$(LIBC)\$(F)strnicm.obj strnicmp.asm

$(LIBC)\$(F)strncpy.obj: strncpy.asm $(ASMSTD)
	$(MM) -Fo$(LIBC)\$(F)strncpy.obj strncpy.asm

$(LIBC)\$(F)strnset.obj: strnset.asm $(ASMSTD)
	$(MM) -Fo$(LIBC)\$(F)strnset.obj strnset.asm

$(LIBC)\$(F)strpbrk.obj: strpbrk.asm $(ASMSTD)
	$(MM) -Fo$(LIBC)\$(F)strpbrk.obj strpbrk.asm

$(LIBC)\$(F)strrchr.obj: strrchr.asm $(ASMSTD)
	$(MM) -Fo$(LIBC)\$(F)strrchr.obj strrchr.asm

$(LIBC)\$(F)strrev.obj: strrev.asm $(ASMSTD)
	$(MM) -Fo$(LIBC)\$(F)strrev.obj strrev.asm

$(LIBC)\$(F)strset.obj: strset.asm $(ASMSTD)
	$(MM) -Fo$(LIBC)\$(F)strset.obj strset.asm

$(LIBC)\$(F)strspn.obj: strspn.asm $(ASMSTD)
	$(MM) -Fo$(LIBC)\$(F)strspn.obj strspn.asm

$(LIBC)\$(F)strstr.obj: strstr.asm $(ASMSTD)
	$(MM) -Fo$(LIBC)\$(F)strstr.obj strstr.asm

$(LIBC)\$(F)strtok.obj: strtok.asm $(ASMSTD)
	$(MM) -Fo$(LIBC)\$(F)strtok.obj strtok.asm

$(LIBC)\$(F)strupr.obj: strupr.asm $(ASMSTD)
	$(MM) -Fo$(LIBC)\$(F)strupr.obj strupr.asm

$(LIBC)\strxfrm.obj: strxfrm.c $(INCLUDE)\string.h
	$(CC) $(MEM) -Fo$(LIBC)\strxfrm.obj strxfrm.c

