#
# makefile for extended math tests
#

.SUFFIXES:
.SUFFIXES: .exe .obj .cx .cxp .c

.c.obj:
	$(CC) $(CFLAGS) $<

.cx.obj:
	$(CC) $(CFLAGS) $<

.cxp.obj:
	$(CC) $(CPFLAGS) $<

.obj.exe:
	cl -nologo $<  /link extended $(OLIB) $(LFLAGS)

.cx.exe:
	$(CC) $(CFLAGS) $<
	cl -nologo $*  /link extended xtst $(LFLAGS)
	rm $*.obj

.cxp.exe:
	$(CC) $(CPFLAGS) $<
	cl -nologo $*  /link extended xtst $(LFLAGS)
	rm $*.obj

CC	= cl -c
BCC	= bcc -c
BFLAGS	= -d -I. -I..\qfloat -D__PROTO__

GFLAGS	= -nologo $(OPTIMIZ) -I. -I..\qfloat -W3 -D__PROTO__\
		-Op $(TEST)

CFLAGS	= $(GFLAGS) -Tc
CPFLAGS = $(GFLAGS) -Tp

LFLAGS	= /NOI /E /PACKC /F /ST:10240
LINK	= /link $(LFLAGS) xtst

OPTIMIZ = -Od -Gs -Gy#-Oselg #-Oset #-qc

HEADERS = machars.h getmachx.h xverfun.h qfloat.h xtstdefs.h

ALL =	xvacoshd.obj	xvacoshf.obj	xvacoshl.obj\
	xvasind.obj	xvasinf.obj	xvasinl.obj\
	xvasinhd.obj	xvasinhf.obj	xvasinhl.obj\
	xvatand.obj	xvatanf.obj	xvatanl.obj\
	xvatanhd.obj	xvatanhf.obj	xvatanhl.obj\
	xvcbrtd.obj	xvcbrtf.obj	xvcbrtl.obj\
	xvexpd.obj	xvexpf.obj	xvexpl.obj\
	xvjnd.obj	xvjnf.obj	xvjnl.obj\
	xvlogd.obj	xvlogf.obj	xvlogl.obj\
	xvpowd.obj	xvpowf.obj	xvpowl.obj\
	xvsind.obj	xvsinf.obj	xvsinl.obj\
	xvsinhd.obj	xvsinhf.obj	xvsinhl.obj\
	xvsqrtd.obj	xvsqrtf.obj	xvsqrtl.obj\
	xvtand.obj	xvtanf.obj	xvtanl.obj\
	xvtanctd.obj	xvtanctf.obj	xvtanctl.obj\
	xvtanhd.obj	xvtanhf.obj	xvtanhl.obj\
	xvynd.obj	xvynf.obj	xvynl.obj\
	extended.lib

all:	$(ALL)

xvacoshd.obj xvacoshf.obj xvacoshl.obj: xvacosh.h  $(HEADERS)
xvasind.obj  xvasinf.obj  xvasinl.obj:	xvasin.h   $(HEADERS)
xvasinhd.obj xvasinhf.obj xvasinhl.obj: xvasinh.h  $(HEADERS)
xvatand.obj  xvatanf.obj  xvatanl.obj:	xvatan.h   $(HEADERS) xverfun2.h
xvatanhd.obj xvatanhf.obj xvatanhl.obj: xvatanh.h  $(HEADERS)
xvcbrtd.obj  xvcbrtf.obj  xvcbrtl.obj:	xvcbrt.h   $(HEADERS)
xvexpd.obj   xvexpf.obj   xvexpl.obj:	xvexp.h    $(HEADERS)
xvjnd.obj    xvjnf.obj	  xvjnl.obj:	xvjn.h	   $(HEADERS)
xvlogd.obj   xvlogf.obj   xvlogl.obj:	xvlog.h    $(HEADERS)
xvpowd.obj   xvpowf.obj   xvpowl.obj:	xvpow.h    $(HEADERS) xverfun2.h
xvsind.obj   xvsinf.obj   xvsinl.obj:	xvsin.h    $(HEADERS)
xvsinhd.obj  xvsinhf.obj  xvsinhl.obj:	xvsinh.h   $(HEADERS)
xvsqrtd.obj  xvsqrtf.obj  xvsqrtl.obj:	xvsqrt.h   $(HEADERS)
xvtand.obj   xvtanf.obj   xvtanl.obj:	xvtan.h    $(HEADERS)
xvtanhd.obj  xvtanhf.obj  xvtanhl.obj:	xvtanh.h   $(HEADERS)
xvynd.obj    xvynf.obj	  xvynl.obj:	xvyn.h	   $(HEADERS)

xvacoshd.obj  xvatanhd.obj  xvlogd.obj   xvsqrtd.obj\
xvasind.obj   xvcbrtd.obj   xvpowd.obj   xvtand.obj \
xvasinhd.obj  xvexpd.obj    xvsind.obj   xvtanhd.obj\
xvatand.obj   xvjnd.obj     xvsinhd.obj  xvynd.obj:	dprotos.h

xvacoshf.obj  xvatanhf.obj  xvlogf.obj   xvsqrtf.obj\
xvasinf.obj   xvcbrtf.obj   xvpowf.obj   xvtanf.obj \
xvasinhf.obj  xvexpf.obj    xvsinf.obj   xvtanhf.obj\
xvatanf.obj   xvjnf.obj     xvsinhf.obj  xvynf.obj:	fprotos.h

xvacoshl.obj  xvatanhl.obj  xvlogl.obj   xvsqrtl.obj\
xvasinl.obj   xvcbrtl.obj   xvpowl.obj   xvtanl.obj \
xvasinhl.obj  xvexpl.obj    xvsinl.obj   xvtanhl.obj\
xvatanl.obj   xvjnl.obj     xvsinhl.obj  xvynl.obj:	lprotos.h

#
# For tan functions that also house cotan functions
#
xvtanctd.obj:	xvtand.cxp	xvtan.h    $(HEADERS)
	$(CC) -DCOTAN	-Fo$* $(CPFLAGS)   xvtand.cxp

xvtanctf.obj:	xvtanf.cxp	xvtan.h    $(HEADERS)
	$(CC) -DCOTAN	-Fo$* $(CPFLAGS)   xvtanf.cxp

xvtanctl.obj:	xvtanl.cxp	xvtan.h    $(HEADERS)
	$(CC) -DCOTAN	-Fo$* $(CPFLAGS)   xvtanl.cxp

extended.lib:	../qfloat/qfloatf.lib isatty.obj ldrand.obj
	@-mv extended.lib extended.old
#	-rm  -f extended.lib
#	copy	..\qfloat\qfloatf.lib  extended.lib
	lib	/nologo ..\qfloat\qfloatf\
			+ldrand +isatty, ,extended;

getmachx.obj:	machars.h
	cl -c -nologo -Od -I. -W4 -D__PROTO__ $(TEST) -Tc $*.h

tstmachd.exe:	getmachx.h  machars.h
	cl -c -nologo -Od -I. -W4 -D__PROTO__ -DTEST_MACHX -DDBL\
		-Fo$*.obj -Tc getmachx.h
	cl -nologo $* /link $(LFLAGS)
	rm $*.obj

tstmachf.exe:	getmachx.h  machars.h
	cl -c -nologo -Od -I. -W4 -D__PROTO__ -DTEST_MACHX -DFLT\
		-Fo$*.obj $(TEST) -Tc getmachx.h
	cl -nologo $* /link $(LFLAGS)
	rm $*.obj

tstmachl.exe:	getmachx.h  machars.h
	cl -c -nologo -Od -I. -W4 -D__PROTO__ -DTEST_MACHX\
		-Fo$*.obj $(TEST) -Tc getmachx.h
	cl -nologo $* /link $(LFLAGS)
	rm $*.obj

mkdep:
	mkdep $(ALL:.exe=.cxp)

copy:
	cp $(HEADERS) e:

save:
	-pkzip -u -ex -xjunk*.* -x*.bak b:testmath makefile\
		  *.c* *.h *.inp inp*.* *.doc *.awk *.mak

xcg:
	$(CC) /EP /P $(CFLAGS) xtsqrt.cx
	xcg main xtsqrt.i | awk -f $(HOME)/extlist.awk | sed s/^........// |\
		sed "s/ [.[]..*]$$//" | cat -n > spectral.xcg
	del xtsqrt.i
