# Makefile for debug.lib

# Compiler name
CC=SC
LD=SLink
PROGNAME=debug
PROJNAME=$(PROGNAME).lib
DOCNAME=$(PROGNAME)_lib.doc
CLIBNAME=INCLUDE:clib/$(PROGNAME)_protos.h
TESTNAME=TestDebugLib

# Compiler flags
CFLAGS= 	GST=$(PROGNAME).gst
AFLAGS=		GST=$(PROGNAME).gst
GSTFLAGS= MAKEGST=$(PROGNAME).gst NOOBJNAME NOOPT NOLINK NODEBUG
TESTFLAGS=MODIFIED LINK PROGRAMNAME=$(TESTNAME) NOSTARTUP LIB LIB:$(PROJNAME)

# Trasher
DEL=Delete
DELFLAGS=QUIET

# Source files
SOURCES=	init.c kcmpstr.a kgetchar.a kmaygetchar.a kputchar.a\
					kputstr.a kdofmt.a kprintf.a
HEADERS=	$(PROGNAME).gst.c $(PROGNAME).gst.h $(PROGNAME).rev.h
MISCS=		SMakeFile SCOptions
ALL_SOURCES=	$(SOURCES) $(HEADERS) $(MISCS)

# Object files
OBJECTS=	init.o kcmpstr.o kgetchar.o kmaygetchar.o kputchar.o\
					kputstr.o kdofmt.o kprintf.o

# Build library
All: $(PROGNAME).gst $(PROJNAME) $(DOCNAME)

# Build test program
Test:	$(TESTNAME)

# Make GST
$(PROGNAME).gst:	$(HEADERS)
	@Echo "****** Building GST"
	$(CC) $(PROGNAME).gst.c $(GSTFLAGS)

# Support.lib
$(PROJNAME):	$(OBJECTS)
	@Echo "****** Building library"
	$(CC) $(OBJECTS) OBJLIB=$(PROJNAME)
	@-Protect $(PROJNAME) -e
	@-Copy $(PROJNAME) LIB:

# AutoDocs
$(PROGNAME).doc:	$(SOURCES)
	@Echo "****** Building AutoDoc"
	@ADoc -I -l77 -o$(DOCNAME) $(SOURCES)
	@-Protect $(DOCNAME) -e

$(TESTNAME):	$(TESTNAME).c $(PROJNAME)
	$(CC) $(TESTNAME).c $(TESTFLAGS)

# Default rules
.a.o:
	$(CC) $*.a $(AFLAGS)

.c.o:
	$(CC) $*.c $(CFLAGS)

DelObj:
	@-$(DEL) $(OBJECTS) $(DELFLAGS)

DelBak:
	@-$(DEL) \#?.bak $(DELFLAGS)

Clean:
	@-$(DEL) \#?.o \#?.gst \#?.map \#?.s \#?.p \#?.lnk \#?.bak $(DELFLAGS)

CleanAll:	Clean
	@-$(DEL) $(PROJNAME) $(DOCNAME) $(TESTNAME) $(DELFLAGS)

# Prepare distribution files
PrepDist:	$(PROJNAME) $(DOCNAME)
	Copy $(ALL_SOURCES) Distr/Src/
	Copy $(PROJNAME) Distr/Lib/
	Copy $(DOCNAME) Distr/AutoDocs/
	Copy $(CLIBNAME) Distr/Include/clib/
