.SILENT:

# string\string.lib (clibc_16.lib) Makefile
# Byron Young
# 2002

# NMAKE 1.20
# ML 6.14

!IFNDEF DIR_PROJ
DIR_PROJ=..
!ENDIF

!INCLUDE $(DIR_PROJ)\Makefile.g

# Macros passed to Makefile via Makefile.g
#       DEBUG       0 = release, 1 = debug
#       ASM         assembler to use
#       AFLAGS_G    global assembler flags
#       AFLAGS_D    debug assembler flags
#       AFLAGS_R    release assembler flags
#	DIR_C_INCLUDE
#	DIR_ASM_INCLUDE
#	DIRLIB

# Macros passed to Makefile via command line
#	DIR_PROJ    project root directory

SRCFILES =      strcpy.asm\
		strlen.asm\
		skipsp.asm\
		skiptosp.asm\
		strcat.asm\
		strcmp.asm\
		strchr.asm\
		strstr.asm\
		strrchr.asm\
		stricmp.asm\
		skipspr.asm\
		skiptosr.asm\
		strlwr.asm\
		strupr.asm\
		strncpy.asm\
		strncat.asm\
		memmove.asm\
		memset.asm\
		memcmp.asm\

OBJFILESA=$(SRCFILES:.asm=.obj)

!IF $(DEBUG)
OBJFILES=..\debug\string\$(OBJFILESA: = ..\debug\string\)
INTDIR=..\debug\string
!ELSE
OBJFILES=..\release\string\$(OBJFILESA: = ..\release\string\)
INTDIR=..\release\string
!ENDIF


LIBNAME=$(INTDIR)\string.lib

STRING_DEPEND = Makefile string.h string.inc

$(LIBNAME) : $(OBJFILES)
        echo Creating $(LIBNAME)
        del $(LIBNAME)
	LIB /NOL @<<lib.lrf
$(LIBNAME) +$(?: = &^
+)
$(LIBNAME:.lib=.lst);
<<
	rename $(LIBNAME) string.lib
	echo Copying $(@B).h to $(DIR_C_INCLUDE)
	copy $(@B).h $(DIR_C_INCLUDE)
	echo Copying $(@B).inc to $(DIR_ASM_INCLUDE)
	copy $(@B).inc $(DIR_ASM_INCLUDE)


$(INTDIR)\strcpy.obj : strcpy.asm $(STRING_DEPEND)
!IF $(DEBUG)
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_D) /Fo$(INTDIR)\strcpy.obj strcpy.asm
!ELSE
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_R) /Fo$(INTDIR)\strcpy.obj strcpy.asm
!ENDIF

$(INTDIR)\strlen.obj : strlen.asm  $(STRING_DEPEND)
!IF $(DEBUG)
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_D) /Fo$(INTDIR)\strlen.obj strlen.asm
!ELSE
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_R) /Fo$(INTDIR)\strlen.obj strlen.asm
!ENDIF

$(INTDIR)\skipsp.obj : skipsp.asm  $(STRING_DEPEND)
!IF $(DEBUG)
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_D) /Fo$(INTDIR)\skipsp.obj skipsp.asm
!ELSE
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_R) /Fo$(INTDIR)\skipsp.obj skipsp.asm
!ENDIF

$(INTDIR)\skiptosp.obj : skiptosp.asm  $(STRING_DEPEND)
!IF $(DEBUG)
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_D) /Fo$(INTDIR)\skiptosp.obj skiptosp.asm
!ELSE
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_R) /Fo$(INTDIR)\skiptosp.obj skiptosp.asm
!ENDIF

$(INTDIR)\strcat.obj : strcat.asm  $(STRING_DEPEND)
!IF $(DEBUG)
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_D) /Fo$(INTDIR)\strcat.obj strcat.asm
!ELSE
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_R) /Fo$(INTDIR)\strcat.obj strcat.asm
!ENDIF

$(INTDIR)\strcmp.obj : strcmp.asm  $(STRING_DEPEND)
!IF $(DEBUG)
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_D) /Fo$(INTDIR)\strcmp.obj strcmp.asm
!ELSE
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_R) /Fo$(INTDIR)\strcmp.obj strcmp.asm
!ENDIF

$(INTDIR)\strchr.obj : strchr.asm  $(STRING_DEPEND)
!IF $(DEBUG)
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_D) /Fo$(INTDIR)\strchr.obj strchr.asm
!ELSE
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_R) /Fo$(INTDIR)\strchr.obj strchr.asm
!ENDIF

$(INTDIR)\strstr.obj : strcpy.asm  $(STRING_DEPEND)
!IF $(DEBUG)
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_D) /Fo$(INTDIR)\strstr.obj strstr.asm
!ELSE
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_R) /Fo$(INTDIR)\strstr.obj strstr.asm
!ENDIF

$(INTDIR)\strrchr.obj : strrchr.asm  $(STRING_DEPEND)
!IF $(DEBUG)
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_D) /Fo$(INTDIR)\strrchr.obj strrchr.asm
!ELSE
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_R) /Fo$(INTDIR)\strrchr.obj strrchr.asm
!ENDIF

$(INTDIR)\stricmp.obj : stricmp.asm  $(STRING_DEPEND)
!IF $(DEBUG)
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_D) /Fo$(INTDIR)\stricmp.obj stricmp.asm
!ELSE
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_R) /Fo$(INTDIR)\stricmp.obj stricmp.asm
!ENDIF

$(INTDIR)\skipspr.obj : skipspr.asm  $(STRING_DEPEND)
!IF $(DEBUG)
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_D) /Fo$(INTDIR)\skipspr.obj skipspr.asm
!ELSE
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_R) /Fo$(INTDIR)\skipspr.obj skipspr.asm
!ENDIF

$(INTDIR)\skiptosr.obj : skiptosr.asm  $(STRING_DEPEND)
!IF $(DEBUG)
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_D) /Fo$(INTDIR)\skiptosr.obj skiptosr.asm
!ELSE
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_R) /Fo$(INTDIR)\skiptosr.obj skiptosr.asm
!ENDIF

$(INTDIR)\strlwr.obj : strlwr.asm  $(STRING_DEPEND)
!IF $(DEBUG)
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_D) /Fo$(INTDIR)\strlwr.obj strlwr.asm
!ELSE
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_R) /Fo$(INTDIR)\strlwr.obj strlwr.asm
!ENDIF

$(INTDIR)\strupr.obj : strupr.asm  $(STRING_DEPEND)
!IF $(DEBUG)
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_D) /Fo$(INTDIR)\strupr.obj strupr.asm
!ELSE
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_R) /Fo$(INTDIR)\strupr.obj strupr.asm
!ENDIF

$(INTDIR)\strncpy.obj : strncpy.asm  $(STRING_DEPEND)
!IF $(DEBUG)
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_D) /Fo$(INTDIR)\strncpy.obj strncpy.asm
!ELSE
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_R) /Fo$(INTDIR)\strncpy.obj strncpy.asm
!ENDIF

$(INTDIR)\strncat.obj : strncat.asm  $(STRING_DEPEND)
!IF $(DEBUG)
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_D) /Fo$(INTDIR)\strncat.obj strncat.asm
!ELSE
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_R) /Fo$(INTDIR)\strncat.obj strncat.asm
!ENDIF

$(INTDIR)\memmove.obj : memmove.asm  $(STRING_DEPEND)
!IF $(DEBUG)
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_D) /Fo$(INTDIR)\memmove.obj memmove.asm
!ELSE
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_R) /Fo$(INTDIR)\memmove.obj memmove.asm
!ENDIF

$(INTDIR)\memset.obj : memset.asm  $(STRING_DEPEND)
!IF $(DEBUG)
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_D) /Fo$(INTDIR)\memset.obj memset.asm
!ELSE
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_R) /Fo$(INTDIR)\memset.obj memset.asm
!ENDIF

$(INTDIR)\memcmp.obj : memcmp.asm  $(STRING_DEPEND)
!IF $(DEBUG)
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_D) /Fo$(INTDIR)\memcmp.obj memcmp.asm
!ELSE
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_R) /Fo$(INTDIR)\memcmp.obj memcmp.asm
!ENDIF

clean:
    @echo Making string directories
    @mkdir ..\release\string
    @mkdir ..\debug\string
    @erase *.obj
    @erase *.lst
    @erase *.bak
    @erase *.dbg
    @erase *.exe

# misc notes
# to add a source file:
#    add the .asm name to SRCFILES
#    add the corresponding entry from *.MAK
