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

OUT = math.lib math.inc

OBJS = amul.obj crc16.obj crc16f.obj div.obj flatcher.obj i2bcd.obj \
	l2bcd.obj labs.obj ldiv.obj lmax.obj lmin.obj lmul.obj lshl.obj \
	lshr.obj max.obj min.obj mul.obj neg.obj rand.obj shl.obj shr.obj \
	sqrti.obj
# icmp.obj -- TODO
#

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

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

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


all: $(OUT) $(OBJS)

#math.lib(%.obj): %.obj
#	libr r math.lib $%

#math.lib: $(OBJS) $(patsubst %,math.lib(%),$(OBJS))

math.lib: $(OBJS)
	sh -c 'echo r $@ \\; for o in $(OBJS); do echo $$o \\; done' | libr

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


mathlib.txt: $(SRCS)
	cat $(SRCS) > mathlib.txt
	wcl386 -pc -zq mathlib.txt > $@
	rm mathlib.txt

CPP = /usr/lib/gcc-lib/i386-linux/2.95.4/cpp0
mathsect.xml: $(SRCS)
	( echo '<?xml version="1.0" encoding="CP866" ?>' ; \
	for each in $^; do \
		$(CPP) -P -C -DMAKE_DOC $$each ; \
	done ) > $@

XSLTPROC = env XML_CATALOG_FILES="catalog.xml" xsltproc --nonet
mathlib.html: mathlib.xml mathsect.xml mathlib.xsl
	$(XSLTPROC) -o $@ mathlib.xsl $<
		

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

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

clean:
	rm -f *.obj *.s $(OBJS:.obj=.doc)

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