# This is GNU Make control file
# You need Hitech-C compiler and GNU sh-utils installed.
.SUFFIXES: .as .s .obj .lib .doc
EXPORT = .
DESTDIR = ..
SCRIPTS = ..
LIB = ..
INC = -I..

CPP = cpp -traditional

.PHONY: clean clean-all all doc export

OUT = string.lib string.inc

OBJS = 	isalnum.obj isalpha.obj isascii.obj isblank.obj isdigit.obj islower.obj isprint.obj ispunct.obj isspace.obj isupper.obj isxdigit.obj  \
	memcmp.obj memmove.obj \
	strglob.obj strstr.obj \
	strlcpy.obj strlcat.obj strcat.obj strcpy.obj strncpy.obj strncat.obj strlen.obj \
	strchr.obj strcmp.obj strcmpi.obj \
	strrev.obj strlower.obj strupper.obj \
	strcspn.obj strpbrk.obj strrchr.obj strrpbrk.obj strrspnp.obj \
	strsep.obj strspn.obj strspnp.obj strrbrkh.obj strfbrkh.obj \
	swab.obj \
	tolower.obj toupper.obj \
	atow.obj htoa.obj wtoa.obj ltoa.obj

SRCS = $(OBJS:.obj=.as)

.as.s:
	$(CPP) -DEXPORT= -DEXPEND= $(INC) $< $@

.s.obj:
	sh -c 'zas -o$@ $< 2>&1'


all: $(OUT) $(OBJS) 

#string.lib: $(patsubst %,string.lib(%),$(OBJS))
	
#string.lib(%.obj): %.obj
#	libr r $@ $%

string.lib: $(OBJS) $(SCRIPTS)/export.sed
	sh -c 'echo r $@ \\; for o in $(OBJS); do echo $$o \\; done' | libr

string.inc: $(SRCS) $(SCRIPTS)/export.sed
	sh -c '{ for a in $(SRCS); do sed -f $(SCRIPTS)/export.sed < $$a; done;} >$@'


.as.doc:
	$(CPP) -C -P -DMAKE_DOC $< > $@
	
string.txt: $(SRCS:.as=.doc)
	cat contents.txt $(SRCS:.as=.doc) > $@
	rm $(SRCS:.as=.doc)

doc: string.txt


.PHONY: export-zasm export-alasm

$(EXPORT)/zasm/%.asm: %.as $(EXPORT)/zasm $(SCRIPTS)/zasm.sed
	$(CPP) -C -P -DZASM $< | sed -f $(SCRIPTS)/zasm.sed > $@

$(EXPORT)/alasm/%.asm: %.as $(EXPORT)/alasm $(SCRIPTS)/alasm.sed
	$(CPP) -C -P -DALASM $< | sed -f $(SCRIPTS)/alasm.sed > $@


$(EXPORT)/zasm/string.asm: $(SRCS:%.as=$(EXPORT)/zasm/%.asm)
	cat $(SRCS:%.as=$(EXPORT)/zasm/%.asm) > $@
	rm $(SRCS:%.as=$(EXPORT)/zasm/%.asm)

$(EXPORT)/alasm/string.asm: $(SRCS:%.as=$(EXPORT)/alasm/%.asm)
	cat $(SRCS:%.as=$(EXPORT)/alasm/%.asm) > $@
	rm $(SRCS:%.as=$(EXPORT)/alasm/%.asm)

$(EXPORT)/zasm $(EXPORT)/alasm:
	mkdir -p $@

export-zasm: $(EXPORT)/zasm/string.asm

export-alasm: $(EXPORT)/alasm/string.asm

export: export-zasm export-alasm
	

install: $(OUT)
ifdef DESTDIR
	cp -f $(OUT) $(DESTDIR)
endif

uninstall:
ifdef DESTDIR
	rm -f $(OUT:%=$(DESTDIR)/%)
endif

clean:
	rm -f *.obj *.s

clean-all: clean
	rm -f $(OUT)

