blob: fad0955343c2241470da08f3bbbaf37fa9df5977 [file]
SRCDIR = ..
INC = -I$(SRCDIR)
CC = @CC@
LD = @CC@
AR = @AR@
MPD_WARN = @MPD_WARN@
MPD_CONFIG = @MPD_CONFIG@
MPD_CCOV = @MPD_CCOV@
CONFIGURE_CFLAGS = @CONFIGURE_CFLAGS@
CFLAGS ?= $(CONFIGURE_CFLAGS)
GMPDEPS = @GMPDEPS@
GMPPATH = @GMPPATH@
ifneq ($(strip $(GMPPATH)),)
INC += -I$(GMPPATH)/include -L$(GMPPATH)/lib
ifeq ($(CC), suncc)
INC += -R$(GMPPATH)/lib
endif
endif
default: runtest cov fntcov test_transpose ppro_mulmod
extended: default karatsuba_fnt karatsuba_fnt2 $(GMPDEPS)
build_libcoverage: CFLAGS = $(MPD_WARN) $(MPD_CONFIG) $(MPD_CCOV)
build_libcoverage: default
# dectest
runtest:\
runtest.c $(SRCDIR)/io.h $(SRCDIR)/mpdecimal.h $(SRCDIR)/memory.h \
$(SRCDIR)/mptest.h $(SRCDIR)/mptypes.h $(SRCDIR)/libmpdec.a \
malloc_fail.c malloc_fail.h
$(CC) $(INC) $(CFLAGS) -o runtest runtest.c malloc_fail.c $(SRCDIR)/libmpdec.a -lm
cov:\
cov.c $(SRCDIR)/mpdecimal.h $(SRCDIR)/mptypes.h $(SRCDIR)/libmpdec.a \
malloc_fail.c malloc_fail.h
$(CC) $(INC) $(CFLAGS) -o cov cov.c malloc_fail.c $(SRCDIR)/libmpdec.a -lm
fntcov:\
fntcov.c $(SRCDIR)/mpdecimal.h $(SRCDIR)/mptypes.h $(SRCDIR)/libmpdec.a \
malloc_fail.c malloc_fail.h
$(CC) $(INC) $(CFLAGS) -o fntcov fntcov.c malloc_fail.c $(SRCDIR)/libmpdec.a -lm
# extended tests
karatsuba_fnt:\
karatsuba_fnt.c $(SRCDIR)/mpdecimal.h $(SRCDIR)/mptypes.h $(SRCDIR)/libmpdec.a
$(CC) $(INC) $(CFLAGS) -o karatsuba_fnt karatsuba_fnt.c $(SRCDIR)/libmpdec.a -lm
karatsuba_fnt2:\
karatsuba_fnt2.c $(SRCDIR)/mpdecimal.h $(SRCDIR)/mptypes.h $(SRCDIR)/libmpdec.a
$(CC) $(INC) $(CFLAGS) -o karatsuba_fnt2 karatsuba_fnt2.c $(SRCDIR)/libmpdec.a -lm
ppro_mulmod:\
ppro_mulmod.c $(SRCDIR)/mpdecimal.h $(SRCDIR)/constants.h \
$(SRCDIR)/numbertheory.h $(SRCDIR)/mptypes.h \
$(SRCDIR)/mptest.h $(SRCDIR)/umodarith.h \
$(SRCDIR)/typearith.h $(SRCDIR)/libmpdec.a
$(CC) $(INC) $(CFLAGS) -o ppro_mulmod ppro_mulmod.c $(SRCDIR)/libmpdec.a -lm
test_transpose:\
test_transpose.c $(SRCDIR)/bits.h $(SRCDIR)/mpdecimal.h \
$(SRCDIR)/constants.h $(SRCDIR)/mptypes.h \
$(SRCDIR)/mptest.h $(SRCDIR)/typearith.h \
$(SRCDIR)/transpose.h $(SRCDIR)/libmpdec.a
$(CC) $(INC) $(CFLAGS) -o test_transpose test_transpose.c $(SRCDIR)/libmpdec.a -lm
# tests against gmp
mpd_mpz_add:\
mpd_mpz_add.c $(SRCDIR)/mpdecimal.h $(SRCDIR)/mptypes.h $(SRCDIR)/libmpdec.a
$(CC) $(INC) $(CFLAGS) -o mpd_mpz_add mpd_mpz_add.c $(SRCDIR)/libmpdec.a -lm -lgmp
mpd_mpz_divmod:\
mpd_mpz_divmod.c $(SRCDIR)/mpdecimal.h $(SRCDIR)/mptypes.h $(SRCDIR)/libmpdec.a
$(CC) $(INC) $(CFLAGS) -o mpd_mpz_divmod mpd_mpz_divmod.c $(SRCDIR)/libmpdec.a -lm -lgmp
mpd_mpz_mul:\
mpd_mpz_mul.c $(SRCDIR)/mpdecimal.h $(SRCDIR)/mptypes.h $(SRCDIR)/libmpdec.a
$(CC) $(INC) $(CFLAGS) -o mpd_mpz_mul mpd_mpz_mul.c $(SRCDIR)/libmpdec.a -lm -lgmp
mpd_mpz_sub:\
mpd_mpz_sub.c $(SRCDIR)/mpdecimal.h $(SRCDIR)/mptypes.h $(SRCDIR)/libmpdec.a
$(CC) $(INC) $(CFLAGS) -o mpd_mpz_sub mpd_mpz_sub.c $(SRCDIR)/libmpdec.a -lm -lgmp
# tests against decNumber
deccheck:\
deccheck.c $(SRCDIR)/io.h $(SRCDIR)/mpdecimal.h $(SRCDIR)/memory.h \
$(SRCDIR)/mptest.h $(SRCDIR)/mptypes.h $(SRCDIR)/libmpdec.a
$(CC) $(INC) -IdecNumber $(CFLAGS) -o deccheck deccheck.c \
decNumber/decNumber.c decNumber/decContext.c $(SRCDIR)/libmpdec.a -lm
FORCE:
clean: FORCE
rm -f *.o *.gch *.gcda *.gcno *.gcov *.dyn *.dpi *.lock \
runtest cov fntcov karatsuba_fnt karatsuba_fnt2 ppro_mulmod \
test_transpose mpd_mpz_add mpd_mpz_divmod mpd_mpz_mul mpd_mpz_sub
distclean: FORCE
$(MAKE) clean
rm -rf Makefile deccheck dectest.zip testdata decNumber*