

DJDIR   = c:/djgpp
GCC_OPT = -O3 -fno-strength-reduce -march=pentium\
	  -Wall -Wbad-function-cast -Werror -Wmissing-declarations\
	  -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes\
	  -Wwrite-strings -I. -I$(DJDIR)/include

.c.exe:
	gcc -o $@ $< -I. libC99cx.a -s

.c.o:
	-gcc $(GCC_OPT) -c $<

DBL_OBJECTS =   cabs.o\
		cacos.o\
		cacosh.o\
		carg.o\
		casin.o\
		casinh.o\
		catan.o\
		catanh.o\
		ccos.o\
		ccosh.o\
		ccot.o\
		cexp.o\
		cimag.o\
		clgamma.o\
		clog.o\
		conj.o\
		cpow.o\
		cproj.o\
		creal.o\
		csin.o\
		csinh.o\
		csqrt.o\
		ctan.o\
		ctanh.o\
		ctgamma.o


FLT_OBJECTS =	cabsf.o\
		cacosf.o\
		cacoshf.o\
		cargf.o\
		casinf.o\
		casinhf.o\
		catanf.o\
		catanhf.o\
		ccosf.o\
		ccoshf.o\
		ccotf.o\
		cexpf.o\
		cimagf.o\
		clgammaf.o\
		clogf.o\
		conjf.o\
		cpowf.o\
		cprojf.o\
		crealf.o\
		csinf.o\
		csinhf.o\
		csqrtf.o\
		ctanf.o\
		ctanhf.o\
		ctgammaf.o

LDBL_OBJECTS =  cabsl.o\
		cacoshl.o\
		cacosl.o\
		cargl.o\
		casinhl.o\
		casinl.o\
		catanhl.o\
		catanl.o\
		ccoshl.o\
		ccosl.o\
		ccotl.o\
		cexpl.o\
		cimagl.o\
		clgammal.o\
		clogl.o\
		conjl.o\
		cpowl.o\
		cprojl.o\
		creall.o\
		csinhl.o\
		csinl.o\
		csqrtl.o\
		ctanhl.o\
		ctanl.o\
		ctgammal.o

MATH_OBJECTS =	$(DBL_OBJECTS) $(FLT_OBJECTS) $(LDBL_OBJECTS)

OBJECTS =	$(MATH_OBJECTS)
SOURCES	=	$(OBJECTS:.o=.c)
		

lib:	libC99cx.a

libC99cx.a:	$(OBJECTS)
	rm -f $@
	ar crs $@ $^

elidemo.exe:	elidemo.c
	gcc -o $@ $< -I. -O3 demo.c libC99cx.a -lm -s

mtstl.exe:	mtstl.c   libC99cx.a
	gcc -o $@ $< -I. -O3 stubs.c libC99cx.a -lc99 -s

try.exe:	try.c
	gcc -o $@ $< -I. -O3 libC99cx.a -lc99 -lm -s

dccalc.exe:	dccalc.c libc99cx.a
	gcc -o $@ $< -Wall -I. -O3 stubs.c libC99cx.a -lc99 -lm -s

whitebx.exe:	whitebx.c cabs.o libc99cx.a
	gcc -o $@ $+ -Wall -I. -O3 libC99cx.a -lc99 -lm -s

whitebxf.exe:	whitebxf.c cabsf.o libc99cx.a
	gcc -o $@ $+ -Wall -I. -O3 libC99cx.a -lc99 -lm -s

whitebxl.exe:	whitebxl.c cabsl.o libc99cx.a
	gcc -o $@ $+ -Wall -I. -O3 libC99cx.a -lc99 -lm -s

cabs.o:		cabs.c\
		complex.h

cacos.o:	cacos.c\
		complex.h

cacosh.o:	cacosh.c\
		complex.h

carg.o:		carg.c\
		complex.h

casin.o:	casin.c\
		complex.h

casinh.o:	casinh.c\
		complex.h

catan.o:	catan.c\
		complex.h\
		redupi.c

catanh.o:	catanh.c\
		complex.h

ccos.o:		ccos.c\
		complex.h\
		cchsh.c

ccosh.o:	ccosh.c\
		complex.h

ccot.o:		ccot.c\
		complex.h\
		redupi.c\
		ctans.c

cexp.o:		cexp.c\
		complex.h

cimag.o:	cimag.c\
		complex.h

clgamma.o:	clgamma.c\
		complex.h

clog.o:		clog.c\
		complex.h

conj.o:		conj.c\
		complex.h		

cpow.o:		cpow.c\
		complex.h

cproj.o:	cproj.c\
		complex.h

creal.o:	creal.c\
		complex.h

csin.o:		csin.c\
		complex.h\
		cchsh.c

csinh.o:	csinh.c\
		complex.h

csqrt.o:	csqrt.c\
		complex.h

ctan.o:		ctan.c\
		complex.h\
		redupi.c\
		ctans.c

ctanh.o:	ctanh.c\
		complex.h

ctgamma.o:	ctgamma.c\
		complex.h

cabsf.o:	cabsf.c\
		complex.h

cacosf.o:	cacosf.c\
		complex.h

cacoshf.o:	cacoshf.c\
		complex.h

cargf.o:	cargf.c\
		complex.h

casinf.o:	casinf.c\
		complex.h

casinhf.o:	casinhf.c\
		complex.h

catanf.o:	catanf.c\
		complex.h\
		redupif.c

catanhf.o:	catanhf.c\
		complex.h

ccosf.o:	ccosf.c\
		complex.h\
		cchshf.c

ccoshf.o:	ccoshf.c\
		complex.h

ccotf.o:	ccotf.c\
		complex.h\
		redupif.c\
		ctansf.c

cexpf.o:	cexpf.c\
		complex.h

cimagf.o:	cimagf.c\
		complex.h

clgammaf.o:	clgammaf.c\
		complex.h

clogf.o:	clogf.c\
		complex.h

conjf.o:	conjf.c\
		complex.h

cpowf.o:	cpowf.c\
		complex.h

cprojf.o:	cprojf.c\
		complex.h

crealf.o:	crealf.c\
		complex.h

csinf.o:	csinf.c\
		complex.h\
		cchshf.c

csinhf.o:	csinhf.c\
		complex.h

csqrtf.o:	csqrtf.c\
		complex.h

ctanf.o:	ctanf.c\
		complex.h\
		redupif.c\
		ctansf.c

ctanhf.o:	ctanhf.c\
		complex.h

ctgammaf.o:	ctgammaf.c\
		complex.h

cabsl.o:	cabsl.c\
		complex.h

cacoshl.o:	cacoshl.c\
		complex.h

cacosl.o:	cacosl.c\
		complex.h

cargl.o:	cargl.c\
		complex.h

casinhl.o:	casinhl.c\
		complex.h

casinl.o:	casinl.c\
		complex.h

catanhl.o:	catanhl.c\
		complex.h

catanl.o:	catanl.c\
		complex.h\
		redupil.c

ccoshl.o:	ccoshl.c\
		complex.h

ccosl.o:	ccosl.c\
		complex.h\
		cchshl.c

ccotl.o:	ccotl.c\
		complex.h\
		redupil.c\
		ctansl.c

cexpl.o:	cexpl.c\
		complex.h

cimagl.o:	cimagl.c\
		complex.h

clgammal.o:	clgammal.c\
		complex.h

clogl.o:	clogl.c\
		complex.h

conjl.o:	conjl.c\
		complex.h

cpowl.o:	cpowl.c\
		complex.h

cprojl.o:	cprojl.c\
		complex.h

creall.o:	creall.c\
		complex.h

csinhl.o:	csinhl.c\
		complex.h

csinl.o:	csinl.c\
		complex.h\
		cchshl.c

csqrtl.o:	csqrtl.c\
		complex.h

ctanhl.o:	ctanhl.c\
		complex.h

ctanl.o:	ctanl.c\
		complex.h\
		redupil.c\
		ctansl.c

ctgammal.o:	ctgammal.c\
		complex.h

clear_math_objects:
	$(DJDIR)/bin/rm $(MATH_OBJECTS)

copylib:
	@$(UBIN)/cp -dmv libC99cx.a $(DJL)/libC99cx.a

echo:
	@djecho $(SOURCES)

indent_all:
	@djecho "#!/bin/sh" > indntall.sh
	@djecho $(DJB)/indent $(OBJECTS:.o=.c) >> indntall.sh
	@indntall.sh

	
list:
	@djecho "#!/bin/sh" > listall.sh
#	@djecho ls -C $(OBJECTS:.o=.c) >> listall.sh
	@djecho ls -C $(DBL_OBJECTS:.o=.c) >> listall.sh
	@listall.sh

listldbl:
	@djecho "#!/bin/sh" > listall.sh
	@djecho ls -C $(LDBL_OBJECTS:.o=.c) >> listall.sh
	@listall.sh

mkprot:
	@djecho "#!/bin/sh" > mknewprot.sh
	@djecho c:/bat/mkprot $(OBJECTS:.o=.c) >> mknewprot.sh
	@mknewprot.sh

math_prot:
	@djecho "#!/bin/sh" > mknewprot.sh
	@djecho c:/bat/mkprot $(MATH_OBJECTS:.o=.c) >> mknewprot.sh
	@mknewprot.sh

mkdep:
	@djecho "#!/bin/sh" > mknewdep.sh
	@djecho c:/bat/mkdep  $(OBJECTS:.o=.c) >> mknewdep.sh
	@mknewdep.sh

mkdep1:
	@djecho "#!/bin/sh" > mknewdep.sh
	@djecho c:/bat/mkdep1  $(OBJECTS:.o=.c) >> mknewdep.sh
	@mknewdep.sh

env_save:
	-zip32 -9 -ll fenvsrce fenv.h $(ENV_OBJECTS:.o=.c) \
					$(ENV_OBJECTS:.o=.txh)
dlvr:
	-zip32 -9 -ll cx99srce $(SOURCES)
	-zip32 -9 -ll cx99docs *.txh

scansrce:
	@djecho "#!/bin/sh" > scansrce.sh
	@djecho $(DJB)/egrep -l "NANL" $(MATH_OBJECTS:.o=.c) >> scansrce.sh
	@scansece.sh

listmath:
	@djecho "#!/bin/sh" > listmath.sh
	@djecho ls $(MATH_OBJECTS:.o=.c) >> listmath.sh

finderrno:
	@djecho "#!/bin/sh" > finderrno.sh
	@djecho fgrep -l \"errno =\" $(MATH_OBJECTS:.o=.c) >> finderrno.sh

freshen:
	-zip32 -9 -ll -f cx99srce
	-zip32 -9 -ll -f cx99docs
	-zip32 -9 -ll -f cxchkout
	@djecho Error 12 occurs when zip32 has nothing to save

keep_all:	keep	keepdocs

keep:
	-zip32 -9 -u -ll cx99srce $(SOURCES) makefile complex.h \
			cchsh*.c ctans*.c redupi*.c
	-zip32 -9 -u -ll cxchkout whitebx.c whitebxf.c whitebxl.c \
			dccalc.c mtst.c mtstf.c mtstl.c stubs.c \
			celefunt.mak celefunt.h tablat.c celefunf.h\
			celefund.h complex.h tcabs.c tcexp.c tclog.c\
			tcpow.c tcsin.c tcsqrt.c
	@djecho Error 12 occurs when zip32 has nothing to save

keepdocs:
	@djecho *.txh > savelist
	-zip32 -9 -ll -u cx99docs @savelist
	@djecho Error 12 occurs when zip32 has nothing to save

clean:
	$(DJB)/rm -f $(MATH_OBJECTS)
