.SILENT:

# clibc_16.lib Makefile
# Byron Young
# 2002

# NMAKE 1.20
# ML 6.14

# configurable parameters
DIRINCLUDE=c:\dev\sharedide\include
DIRLIB=c:\dev\sharedide\lib

# set DEBUG=1 for debug library, DEBUG=0 for release library
DEBUG=1

# rest of makefile
VERSION = 01
ZIPRELEASENAME=ilibc_$(VERSION).zip

!IF $(DEBUG)
INTDIR=debug
!ELSE
INTDIR=release
!ENDIF

SRCFILES =	isspace.asm\
		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\
		isalnum.asm\
		isalpha.asm\
		isascii.asm\
		iscntrl.asm\
		iscsym.asm\
		iscsymf.asm\
		isdigit.asm\
		islower.asm\
		isupper.asm\
		isxdigit.asm

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

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

ASM=ml.exe
AFLAGS_G  = /W2 /WX
AFLAGS_D  = /nologo /Cx /Sa /Sc /Fl /Zi
AFLAGS_R  = /nologo

LIBNAME=$(INTDIR)\clibc_16.lib
INCLUDENAME=clibc_16.h

clib_16.lib : $(OBJFILES)
	echo Creating $(LIBNAME)
	del $(LIBNAME)
	LIB /NOL @<<lib.lrf
$(LIBNAME) +$(?: = &^
+)
$(LIBNAME:.lib=.lst);
<<
	rename $(LIBNAME) $(LIBNAME)
	echo Copying $(LIBNAME) to $(DIRLIB)
	copy $(LIBNAME) $(DIRLIB)
	echo Copying $(INCLUDENAME) $(DIRINCLUDE)
	copy $(INCLUDENAME) $(DIRINCLUDE)
        echo Done


$(INTDIR)\strcpy.obj : strcpy.asm clibc_16.inc Makefile
!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 clibc_16.inc Makefile
!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)\isspace.obj : isspace.asm clibc_16.inc Makefile
!IF $(DEBUG)
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_D) /Fo$(INTDIR)\isspace.obj isspace.asm
!ELSE
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_R) /Fo$(INTDIR)\isspace.obj isspace.asm
!ENDIF

$(INTDIR)\skipsp.obj : skipsp.asm clibc_16.inc Makefile
!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 clibc_16.inc Makefile
!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 clibc_16.inc Makefile
!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 clibc_16.inc Makefile
!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 clibc_16.inc Makefile
!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 : strstr.asm clibc_16.inc Makefile
!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 clibc_16.inc Makefile
!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 clibc_16.inc Makefile
!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 clibc_16.inc Makefile
!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 clibc_16.inc Makefile
!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 clibc_16.inc Makefile
!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 clibc_16.inc Makefile
!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 clibc_16.inc Makefile
!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 clibc_16.inc Makefile
!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 clibc_16.inc Makefile
!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 clibc_16.inc Makefile
!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 clibc_16.inc Makefile
!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

$(INTDIR)\isalnum.obj : isalnum.asm clibc_16.inc Makefile
!IF $(DEBUG)
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_D) /Fo$(INTDIR)\isalnum.obj isalnum.asm
!ELSE
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_R) /Fo$(INTDIR)\isalnum.obj isalnum.asm
!ENDIF

$(INTDIR)\isalpha.obj : isalpha.asm clibc_16.inc Makefile
!IF $(DEBUG)
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_D) /Fo$(INTDIR)\isalpha.obj isalpha.asm
!ELSE
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_R) /Fo$(INTDIR)\isalpha.obj isalpha.asm
!ENDIF

$(INTDIR)\isascii.obj : isascii.asm clibc_16.inc Makefile
!IF $(DEBUG)
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_D) /Fo$(INTDIR)\isascii.obj isascii.asm
!ELSE
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_R) /Fo$(INTDIR)\isascii.obj isascii.asm
!ENDIF

$(INTDIR)\iscntrl.obj : iscntrl.asm clibc_16.inc Makefile
!IF $(DEBUG)
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_D) /Fo$(INTDIR)\iscntrl.obj iscntrl.asm
!ELSE
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_R) /Fo$(INTDIR)\iscntrl.obj iscntrl.asm
!ENDIF

$(INTDIR)\iscsym.obj : iscsym.asm clibc_16.inc Makefile
!IF $(DEBUG)
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_D) /Fo$(INTDIR)\iscsym.obj iscsym.asm
!ELSE
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_R) /Fo$(INTDIR)\iscsym.obj iscsym.asm
!ENDIF

$(INTDIR)\iscsymf.obj : iscsymf.asm clibc_16.inc Makefile
!IF $(DEBUG)
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_D) /Fo$(INTDIR)\iscsymf.obj iscsymf.asm
!ELSE
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_R) /Fo$(INTDIR)\iscsymf.obj iscsymf.asm
!ENDIF

$(INTDIR)\isdigit.obj : isdigit.asm clibc_16.inc Makefile
!IF $(DEBUG)
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_D) /Fo$(INTDIR)\isdigit.obj isdigit.asm
!ELSE
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_R) /Fo$(INTDIR)\isdigit.obj isdigit.asm
!ENDIF

$(INTDIR)\islower.obj : islower.asm clibc_16.inc Makefile
!IF $(DEBUG)
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_D) /Fo$(INTDIR)\islower.obj islower.asm
!ELSE
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_R) /Fo$(INTDIR)\islower.obj islower.asm
!ENDIF

$(INTDIR)\isupper.obj : isupper.asm clibc_16.inc Makefile
!IF $(DEBUG)
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_D) /Fo$(INTDIR)\isupper.obj isupper.asm
!ELSE
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_R) /Fo$(INTDIR)\isupper.obj isupper.asm
!ENDIF

$(INTDIR)\isxdigit.obj : isxdigit.asm clibc_16.inc Makefile
!IF $(DEBUG)
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_D) /Fo$(INTDIR)\isxdigit.obj isxdigit.asm
!ELSE
	$(ASM) /c $(AFLAGS_G) $(AFLAGS_R) /Fo$(INTDIR)\isxdigit.obj isxdigit.asm
!ENDIF

dist :
    echo Making distribution file
    mkdir clibc_16
    copy *.asm clibc_16
    copy Makefile clibc_16
    copy clibc_16.txt clibc_16
    copy clibc_16.h clibc_16
    copy clibc_16.inc clibc_16
    pkzip -rP clibc_16.zip clibc_16\*.*
    deltree /Y clibc_16
    move clibc_16.zip dist\$(ZIPRELEASENAME)
    echo Done.

clean :
    echo Cleaning up build directory
    echo Deleting debug directory
    deltree /Y debug
    echo Creating debug directory
    mkdir debug
    echo Deleting release directory
    deltree /Y release
    echo Creating release directory
    mkdir release
    echo Deleting dist directory
    deltree /Y dist
    echo Making dist directory
    mkdir dist
    echo Done.

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