#
# /emx/src/lib/math/makefile
#
.INCLUDE: /emx/src/lib/libc.mak

local: ;

%l.o: %.s
	$(GCC) -DLONG_DOUBLE -c -x assembler-with-cpp -o $@ $<

%f.o: %.s
	$(GCC) -DFLOAT -c -x assembler-with-cpp -o $@ $<

copysig.o: copysig.s $(ASM386H)
copysigf.o: copysig.s $(ASM386H)
copysigl.o: copysig.s $(ASM386H)

fpclass.o: fpclass.s $(ASM386H)
fpclassf.o: fpclass.s $(ASM386H)
fpclassl.o: fpclass.s $(ASM386H)

isfin.o: isfin.s $(ASM386H)
isfinf.o: isfin.s $(ASM386H)
isfinl.o: isfin.s $(ASM386H)

isnan.o: isnan.s $(ASM386H)
isnanf.o: isnan.s $(ASM386H)
isnanl.o: isnan.s $(ASM386H)

isnorm.o: isnorm.s $(ASM386H)
isnormf.o: isnorm.s $(ASM386H)
isnorml.o: isnorm.s $(ASM386H)

nextaft.o: nextaft.s $(ASM386H)
nextaftf.o: nextaft.s $(ASM386H)
nextaftl.o: nextaft.s $(ASM386H)

signbit.o: signbit.s $(ASM386H)
signbitf.o: signbit.s $(ASM386H)
signbitl.o: signbit.s $(ASM386H)

acos.o: acos.s $(ASM386H)
asin.o: asin.s $(ASM386H)
atan.o: atan.s $(ASM386H)
atan2.o: atan2.s $(ASM386H)
cbrt.o: cbrt.c $(I)math.h
ceil.o: ceil.s $(ASM386H)
clear.o: clear.s $(ASM386H)
consts.o: consts.s
control.o: control.s $(ASM386H)
cos.o: cos.s $(ASM386H)
cosh.o: cosh.s $(ASM386H)
exp.o: exp.s $(ASM386H)
fabs.o: fabs.s $(ASM386H)
floor.o: floor.s $(ASM386H)
fmod.o: fmod.s $(ASM386H)
fpreset.o: fpreset.s $(ASM386H)
frexp.o: frexp.s $(ASM386H)
fxam.o: fxam.s $(ASM386H)
hypot.o: hypot.s $(ASM386H)
ldexp.o: ldexp.s $(ASM386H)
log.o: log.s $(ASM386H)
log10.o: log10.s $(ASM386H)
modf.o: modf.s $(ASM386H)
pow.o: pow.s $(ASM386H)
rint.o: rint.s $(ASM386H)
sin.o: sin.s $(ASM386H)
sinh.o: sinh.s $(ASM386H)
sqrt.o: sqrt.s $(ASM386H)
status.o: status.s $(ASM386H)
tan.o: tan.s $(ASM386H)
tanh.o: tanh.s $(ASM386H)
trunc.o: trunc.s $(ASM386H)

acosl.o: acos.s $(ASM386H)
asinl.o: asin.s $(ASM386H)
atanl.o: atan.s $(ASM386H)
atan2l.o: atan2.s $(ASM386H)
cbrtl.o: cbrtl.c $(I)math.h
cosl.o: cos.s $(ASM386H)
coshl.o: cosh.s $(ASM386H)
expl.o: exp.s $(ASM386H)
fabsl.o: fabs.s $(ASM386H)
floorl.o: floor.s $(ASM386H)
fmodl.o: fmod.s $(ASM386H)
frexpl.o: frexp.s $(ASM386H)
fxaml.o: fxam.s $(ASM386H)
hypotl.o: hypot.s $(ASM386H)
ldexpl.o: ldexp.s $(ASM386H)
logl.o: log.s $(ASM386H)
log10l.o: log10.s $(ASM386H)
modfl.o: modf.s $(ASM386H)
powl.o: pow.s $(ASM386H)
rintl.o: rint.s $(ASM386H)
sinl.o: sin.s $(ASM386H)
sinhl.o: sinh.s $(ASM386H)
sqrtl.o: sqrt.s $(ASM386H)
tanl.o: tan.s $(ASM386H)
tanhl.o: tanh.s $(ASM386H)
truncl.o: trunc.s $(ASM386H)

# `ceill' ends with two `l's -- we have to handle that specially
ceill.o: ../$(CPU)/ceil.s $(ASM386H)
	$(GCC) -DLONG_DOUBLE -c -x assembler-with-cpp -o ceill.o ../$(CPU)/ceil.s

$(DSTLIB): copysig.o copysigf.o copysigl.o \
    fpclass.o fpclassf.o fpclassl.o \
    isfin.o isfinf.o isfinl.o \
    isnan.o isnanf.o isnanl.o \
    isnorm.o isnormf.o isnorml.o \
    nextaft.o nextaftf.o nextaftl.o \
    signbit.o signbitf.o signbitl.o \
    acos.o asin.o atan.o atan2.o cbrt.o ceil.o clear.o consts.o \
    control.o cos.o cosh.o exp.o fabs.o floor.o fmod.o \
    fpreset.o frexp.o fxam.o hypot.o ldexp.o log.o log10.o modf.o pow.o \
    rint.o sin.o sinh.o sqrt.o status.o tan.o tanh.o trunc.o \
    acosl.o asinl.o atanl.o atan2l.o cbrtl.o ceill.o \
    cosl.o coshl.o expl.o fabsl.o floorl.o fmodl.o frexpl.o \
    fxaml.o hypotl.o ldexpl.o logl.o log10l.o modfl.o powl.o rintl.o sinl.o \
    sinhl.o sqrtl.o tanl.o tanhl.o truncl.o
	$(AR) r $(DSTLIB) *.o
