# $Id$

#PARAMS		do not remove this line!

#MACH_PARAMS	do not remove this line!

SRC_DIR = $(SRC_HOME)/mach/$(MACH)/libfp
CDIR=$(SRC_HOME)/mach/proto/fp

EMFLAGS= -L -LIB -O -I$(SRC_DIR) -I$(CDIR) -m$(MACH)

LIST =		cff4.$(SUF) cff8.$(SUF)\
		cfu.$(SUF)\
		cmf4.$(SUF) cmf8.$(SUF)\
		cuf4.$(SUF) cuf8.$(SUF)\
		dvf4.$(SUF) dvf8.$(SUF)\
		fef4.$(SUF) fef8.$(SUF)\
		fif4.$(SUF) fif8.$(SUF)\
		cfi.$(SUF)\
		cif4.$(SUF) cif8.$(SUF)\
		mlf4.$(SUF) mlf8.$(SUF)\
		ngf4.$(SUF) ngf8.$(SUF)\
		sbf4.$(SUF) sbf8.$(SUF)\
		adf4.$(SUF) adf8.$(SUF)\
		zrf4.$(SUF) zrf8.$(SUF)\
		extend.$(SUF) compact.$(SUF)\
		add_ext.$(SUF) div_ext.$(SUF) mul_ext.$(SUF) nrm_ext.$(SUF)\
		sft_ext.$(SUF) sub_ext.$(SUF) zrf_ext.$(SUF)\
		adder.$(SUF) shifter.$(SUF) fptrp.$(SUF)
SLIST =		cff4.s cff8.s\
		cfu.s\
		cmf4.s cmf8.s\
		cuf4.s cuf8.s\
		dvf4.s dvf8.s\
		fef4.s fef8.s\
		fif4.s fif8.s\
		cfi.s\
		cif4.s cif8.s\
		mlf4.s mlf8.s\
		ngf4.s ngf8.s\
		sbf4.s sbf8.s\
		adf4.s adf8.s\
		zrf4.s zrf8.s\
		extend.s compact.s\
		add_ext.s div_ext.s mul_ext.s nrm_ext.s\
		sft_ext.s sub_ext.s zrf_ext.s\
		adder.s shifter.s fptrp.s

SRC =		$(CDIR)/FP_bias.h $(CDIR)/FP_shift.h $(CDIR)/FP_trap.h\
		$(CDIR)/FP_types.h $(CDIR)/get_put.h\
		$(CDIR)/cff4.c $(CDIR)/cff8.c\
		$(CDIR)/cfu.c\
		$(CDIR)/cmf4.c $(CDIR)/cmf8.c\
		$(CDIR)/cuf4.c $(CDIR)/cuf8.c\
		$(CDIR)/dvf4.c $(CDIR)/dvf8.c\
		$(CDIR)/fef4.c $(CDIR)/fef8.c\
		$(CDIR)/fif4.c $(CDIR)/fif8.c\
		$(CDIR)/cfi.c\
		$(CDIR)/cif4.c $(CDIR)/cif8.c\
		$(CDIR)/mlf4.c $(CDIR)/mlf8.c\
		$(CDIR)/ngf4.c $(CDIR)/ngf8.c\
		$(CDIR)/sbf4.c $(CDIR)/sbf8.c\
		$(CDIR)/adf4.c $(CDIR)/adf8.c\
		$(CDIR)/zrf4.c $(CDIR)/zrf8.c\
		$(CDIR)/extend.c $(CDIR)/compact.c\
		$(CDIR)/add_ext.c $(CDIR)/div_ext.c\
		$(CDIR)/mul_ext.c $(CDIR)/nrm_ext.c\
		$(CDIR)/sft_ext.c $(CDIR)/sub_ext.c $(CDIR)/zrf_ext.c\
		$(CDIR)/adder.c $(CDIR)/shifter.c $(CDIR)/fptrp.e

all:		FP_$(MACH).a

install:	tail_fp

tail_fp:	FP_$(MACH).a
		cp FP_$(MACH).a $(TARGET_HOME)/lib/$(MACH)/tail_fp
		$(RANLIB) $(TARGET_HOME)/lib/$(MACH)/tail_fp

clean:
	rm -f $(LIST) FP_$(MACH).a
	rm -f $(SLIST)

opr:
	make pr | opr

pr:
	@pr $(CDIR)/proto.make $(CDIR)/FP.script $(SRC)

FP_$(MACH).a:	$(LIST)
	$(ASAR) rv $@ $?
	$(RANLIB) FP_$(MACH).a

fptrp.$(SUF): $(CDIR)/fptrp.e
	ack $(EMFLAGS) -c $(CDIR)/fptrp.e

extend.$(SUF) compact.$(SUF): $(SRC_DIR)/byte_order.h $(CDIR)/get_put.h

cff4.$(SUF):	$(CDIR)/cff4.c
	ack -c.s $(EMFLAGS) $(CDIR)/cff4.c
	ed -s cff4.s <$(CDIR)/FP.script 
	ack -c $(EMFLAGS) cff4.s

cff8.$(SUF):	$(CDIR)/cff8.c
	ack -c.s $(EMFLAGS) $(CDIR)/cff8.c
	ed -s cff8.s <$(CDIR)/FP.script 
	ack -c $(EMFLAGS) cff8.s

cfu.$(SUF):	$(CDIR)/cfu.c
	ack -c.s $(EMFLAGS) $(CDIR)/cfu.c
	ed -s cfu.s <$(CDIR)/FP.script 
	ack -c $(EMFLAGS) cfu.s

cmf4.$(SUF):	$(CDIR)/cmf4.c
	ack -c.s $(EMFLAGS) $(CDIR)/cmf4.c
	ed -s cmf4.s <$(CDIR)/FP.script 
	ack -c $(EMFLAGS) cmf4.s

cmf8.$(SUF):	$(CDIR)/cmf8.c
	ack -c.s $(EMFLAGS) $(CDIR)/cmf8.c
	ed -s cmf8.s <$(CDIR)/FP.script 
	ack -c $(EMFLAGS) cmf8.s

cuf4.$(SUF):	$(CDIR)/cuf4.c
	ack -c.s $(EMFLAGS) $(CDIR)/cuf4.c
	ed -s cuf4.s <$(CDIR)/FP.script 
	ack -c $(EMFLAGS) cuf4.s

cuf8.$(SUF):	$(CDIR)/cuf8.c
	ack -c.s $(EMFLAGS) $(CDIR)/cuf8.c
	ed -s cuf8.s <$(CDIR)/FP.script 
	ack -c $(EMFLAGS) cuf8.s

dvf4.$(SUF):	$(CDIR)/dvf4.c
	ack -c.s $(EMFLAGS) $(CDIR)/dvf4.c
	ed -s dvf4.s <$(CDIR)/FP.script 
	ack -c $(EMFLAGS) dvf4.s

dvf8.$(SUF):	$(CDIR)/dvf8.c
	ack -c.s $(EMFLAGS) $(CDIR)/dvf8.c
	ed -s dvf8.s <$(CDIR)/FP.script 
	ack -c $(EMFLAGS) dvf8.s

fef4.$(SUF):	$(CDIR)/fef4.c
	ack -c.s $(EMFLAGS) $(CDIR)/fef4.c
	ed -s fef4.s <$(CDIR)/FP.script 
	ack -c $(EMFLAGS) fef4.s

fef8.$(SUF):	$(CDIR)/fef8.c
	ack -c.s $(EMFLAGS) $(CDIR)/fef8.c
	ed -s fef8.s <$(CDIR)/FP.script 
	ack -c $(EMFLAGS) fef8.s

fif4.$(SUF):	$(CDIR)/fif4.c
	ack -c.s $(EMFLAGS) $(CDIR)/fif4.c
	ed -s fif4.s <$(CDIR)/FP.script 
	ack -c $(EMFLAGS) fif4.s

fif8.$(SUF):	$(CDIR)/fif8.c
	ack -c.s $(EMFLAGS) $(CDIR)/fif8.c
	ed -s fif8.s <$(CDIR)/FP.script 
	ack -c $(EMFLAGS) fif8.s

cfi.$(SUF):	$(CDIR)/cfi.c
	ack -c.s $(EMFLAGS) $(CDIR)/cfi.c
	ed -s cfi.s <$(CDIR)/FP.script 
	ack -c $(EMFLAGS) cfi.s

cif4.$(SUF):	$(CDIR)/cif4.c
	ack -c.s $(EMFLAGS) $(CDIR)/cif4.c
	ed -s cif4.s <$(CDIR)/FP.script 
	ack -c $(EMFLAGS) cif4.s

cif8.$(SUF):	$(CDIR)/cif8.c
	ack -c.s $(EMFLAGS) $(CDIR)/cif8.c
	ed -s cif8.s <$(CDIR)/FP.script 
	ack -c $(EMFLAGS) cif8.s

mlf4.$(SUF):	$(CDIR)/mlf4.c
	ack -c.s $(EMFLAGS) $(CDIR)/mlf4.c
	ed -s mlf4.s <$(CDIR)/FP.script 
	ack -c $(EMFLAGS) mlf4.s

mlf8.$(SUF):	$(CDIR)/mlf8.c
	ack -c.s $(EMFLAGS) $(CDIR)/mlf8.c
	ed -s mlf8.s <$(CDIR)/FP.script 
	ack -c $(EMFLAGS) mlf8.s

ngf4.$(SUF):	$(CDIR)/ngf4.c
	ack -c.s $(EMFLAGS) $(CDIR)/ngf4.c
	ed -s ngf4.s <$(CDIR)/FP.script 
	ack -c $(EMFLAGS) ngf4.s

ngf8.$(SUF):	$(CDIR)/ngf8.c
	ack -c.s $(EMFLAGS) $(CDIR)/ngf8.c
	ed -s ngf8.s <$(CDIR)/FP.script 
	ack -c $(EMFLAGS) ngf8.s

sbf4.$(SUF):	$(CDIR)/sbf4.c
	ack -c.s $(EMFLAGS) $(CDIR)/sbf4.c
	ed -s sbf4.s <$(CDIR)/FP.script 
	ack -c $(EMFLAGS) sbf4.s

sbf8.$(SUF):	$(CDIR)/sbf8.c
	ack -c.s $(EMFLAGS) $(CDIR)/sbf8.c
	ed -s sbf8.s <$(CDIR)/FP.script 
	ack -c $(EMFLAGS) sbf8.s

adf4.$(SUF):	$(CDIR)/adf4.c
	ack -c.s $(EMFLAGS) $(CDIR)/adf4.c
	ed -s adf4.s <$(CDIR)/FP.script 
	ack -c $(EMFLAGS) adf4.s

adf8.$(SUF):	$(CDIR)/adf8.c
	ack -c.s $(EMFLAGS) $(CDIR)/adf8.c
	ed -s adf8.s <$(CDIR)/FP.script 
	ack -c $(EMFLAGS) adf8.s

zrf4.$(SUF):	$(CDIR)/zrf4.c
	ack -c.s $(EMFLAGS) $(CDIR)/zrf4.c
	ed -s zrf4.s <$(CDIR)/FP.script 
	ack -c $(EMFLAGS) zrf4.s

zrf8.$(SUF):	$(CDIR)/zrf8.c
	ack -c.s $(EMFLAGS) $(CDIR)/zrf8.c
	ed -s zrf8.s <$(CDIR)/FP.script 
	ack -c $(EMFLAGS) zrf8.s

extend.$(SUF):	$(CDIR)/extend.c
	ack -c.s $(EMFLAGS) $(CDIR)/extend.c
	ed -s extend.s <$(CDIR)/FP.script 
	ack -c $(EMFLAGS) extend.s

compact.$(SUF):	$(CDIR)/compact.c
	ack -c.s $(EMFLAGS) $(CDIR)/compact.c
	ed -s compact.s <$(CDIR)/FP.script 
	ack -c $(EMFLAGS) compact.s

add_ext.$(SUF):	$(CDIR)/add_ext.c
	ack -c.s $(EMFLAGS) $(CDIR)/add_ext.c
	ed -s add_ext.s <$(CDIR)/FP.script 
	ack -c $(EMFLAGS) add_ext.s

div_ext.$(SUF):	$(CDIR)/div_ext.c
	ack -c.s $(EMFLAGS) $(CDIR)/div_ext.c
	ed -s div_ext.s <$(CDIR)/FP.script 
	ack -c $(EMFLAGS) div_ext.s

mul_ext.$(SUF):	$(CDIR)/mul_ext.c
	ack -c.s $(EMFLAGS) $(CDIR)/mul_ext.c
	ed -s mul_ext.s <$(CDIR)/FP.script 
	ack -c $(EMFLAGS) mul_ext.s

nrm_ext.$(SUF):	$(CDIR)/nrm_ext.c
	ack -c.s $(EMFLAGS) $(CDIR)/nrm_ext.c
	ed -s nrm_ext.s <$(CDIR)/FP.script 
	ack -c $(EMFLAGS) nrm_ext.s

sft_ext.$(SUF):	$(CDIR)/sft_ext.c
	ack -c.s $(EMFLAGS) $(CDIR)/sft_ext.c
	ed -s sft_ext.s <$(CDIR)/FP.script 
	ack -c $(EMFLAGS) sft_ext.s

sub_ext.$(SUF):	$(CDIR)/sub_ext.c
	ack -c.s $(EMFLAGS) $(CDIR)/sub_ext.c
	ed -s sub_ext.s <$(CDIR)/FP.script 
	ack -c $(EMFLAGS) sub_ext.s

zrf_ext.$(SUF):	$(CDIR)/zrf_ext.c
	ack -c.s $(EMFLAGS) $(CDIR)/zrf_ext.c
	ed -s zrf_ext.s <$(CDIR)/FP.script 
	ack -c $(EMFLAGS) zrf_ext.s

adder.$(SUF):	$(CDIR)/adder.c
	ack -c.s $(EMFLAGS) $(CDIR)/adder.c
	ed -s adder.s <$(CDIR)/FP.script 
	ack -c $(EMFLAGS) adder.s

shifter.$(SUF):	$(CDIR)/shifter.c
	ack -c.s $(EMFLAGS) $(CDIR)/shifter.c
	ed -s shifter.s <$(CDIR)/FP.script 
	ack -c $(EMFLAGS) shifter.s