comparison libtommath/Makefile.in @ 1692:1051e4eea25a

Update LibTomMath to 1.2.0 (#84) * update C files * update other files * update headers * update makefiles * remove mp_set/get_double() * use ltm 1.2.0 API * update ltm_desc * use bundled tommath if system-tommath is too old * XMALLOC etc. were changed to MP_MALLOC etc.
author Steffen Jaeckel <s@jaeckel.eu>
date Tue, 26 May 2020 17:36:47 +0200
parents f52919ffd3b1
children fc4c9ef61856
comparison
equal deleted inserted replaced
1691:2d3745d58843 1692:1051e4eea25a
5 VPATH=@srcdir@ 5 VPATH=@srcdir@
6 srcdir=@srcdir@ 6 srcdir=@srcdir@
7 7
8 # So that libtommath can include Dropbear headers for options and m_burn() 8 # So that libtommath can include Dropbear headers for options and m_burn()
9 CFLAGS += -I$(srcdir) -I../libtomcrypt/src/headers/ -I$(srcdir)/../libtomcrypt/src/headers/ -I../ -I$(srcdir)/../ 9 CFLAGS += -I$(srcdir) -I../libtomcrypt/src/headers/ -I$(srcdir)/../libtomcrypt/src/headers/ -I../ -I$(srcdir)/../
10 CFLAGS += -Wno-deprecated
11
12 V = 1
10 13
11 ifeq ($V,1) 14 ifeq ($V,1)
12 silent= 15 silent=
13 else 16 else
14 silent=@ 17 silent=@
21 24
22 coverage: LIBNAME:=-Wl,--whole-archive $(LIBNAME) -Wl,--no-whole-archive 25 coverage: LIBNAME:=-Wl,--whole-archive $(LIBNAME) -Wl,--no-whole-archive
23 26
24 include $(srcdir)/makefile_include.mk 27 include $(srcdir)/makefile_include.mk
25 28
26 %.o: %.c 29 %.o: %.c $(HEADERS)
27 ifneq ($V,1) 30 ifneq ($V,1)
28 @echo " * ${CC} $@" 31 @echo " * ${CC} $@"
29 endif 32 endif
30 ${silent} ${CC} -c ${CFLAGS} $< -o $@ 33 ${silent} ${CC} -c ${LTM_CFLAGS} $< -o $@
31 34
32 LCOV_ARGS=--directory . 35 LCOV_ARGS=--directory .
33 36
34 #START_INS 37 #START_INS
35 OBJECTS=bn_error.o bn_fast_mp_invmod.o bn_fast_mp_montgomery_reduce.o bn_fast_s_mp_mul_digs.o \ 38 OBJECTS=bn_cutoffs.o bn_deprecated.o bn_mp_2expt.o bn_mp_abs.o bn_mp_add.o bn_mp_add_d.o bn_mp_addmod.o \
36 bn_fast_s_mp_mul_high_digs.o bn_fast_s_mp_sqr.o bn_mp_2expt.o bn_mp_abs.o bn_mp_add.o bn_mp_add_d.o \ 39 bn_mp_and.o bn_mp_clamp.o bn_mp_clear.o bn_mp_clear_multi.o bn_mp_cmp.o bn_mp_cmp_d.o bn_mp_cmp_mag.o \
37 bn_mp_addmod.o bn_mp_and.o bn_mp_clamp.o bn_mp_clear.o bn_mp_clear_multi.o bn_mp_cmp.o bn_mp_cmp_d.o \ 40 bn_mp_cnt_lsb.o bn_mp_complement.o bn_mp_copy.o bn_mp_count_bits.o bn_mp_decr.o bn_mp_div.o bn_mp_div_2.o \
38 bn_mp_cmp_mag.o bn_mp_cnt_lsb.o bn_mp_complement.o bn_mp_copy.o bn_mp_count_bits.o bn_mp_div.o \ 41 bn_mp_div_2d.o bn_mp_div_3.o bn_mp_div_d.o bn_mp_dr_is_modulus.o bn_mp_dr_reduce.o bn_mp_dr_setup.o \
39 bn_mp_div_2.o bn_mp_div_2d.o bn_mp_div_3.o bn_mp_div_d.o bn_mp_dr_is_modulus.o bn_mp_dr_reduce.o \ 42 bn_mp_error_to_string.o bn_mp_exch.o bn_mp_expt_u32.o bn_mp_exptmod.o bn_mp_exteuclid.o bn_mp_fread.o \
40 bn_mp_dr_setup.o bn_mp_exch.o bn_mp_export.o bn_mp_expt_d.o bn_mp_expt_d_ex.o bn_mp_exptmod.o \ 43 bn_mp_from_sbin.o bn_mp_from_ubin.o bn_mp_fwrite.o bn_mp_gcd.o bn_mp_get_i32.o bn_mp_get_i64.o \
41 bn_mp_exptmod_fast.o bn_mp_exteuclid.o bn_mp_fread.o bn_mp_fwrite.o bn_mp_gcd.o bn_mp_get_bit.o \ 44 bn_mp_get_l.o bn_mp_get_ll.o bn_mp_get_mag_u32.o bn_mp_get_mag_u64.o bn_mp_get_mag_ul.o \
42 bn_mp_get_int.o bn_mp_get_long.o bn_mp_get_long_long.o bn_mp_grow.o bn_mp_import.o bn_mp_init.o \ 45 bn_mp_get_mag_ull.o bn_mp_grow.o bn_mp_incr.o bn_mp_init.o bn_mp_init_copy.o bn_mp_init_i32.o \
43 bn_mp_init_copy.o bn_mp_init_multi.o bn_mp_init_set.o bn_mp_init_set_int.o bn_mp_init_size.o \ 46 bn_mp_init_i64.o bn_mp_init_l.o bn_mp_init_ll.o bn_mp_init_multi.o bn_mp_init_set.o bn_mp_init_size.o \
44 bn_mp_invmod.o bn_mp_invmod_slow.o bn_mp_is_square.o bn_mp_jacobi.o bn_mp_karatsuba_mul.o \ 47 bn_mp_init_u32.o bn_mp_init_u64.o bn_mp_init_ul.o bn_mp_init_ull.o bn_mp_invmod.o bn_mp_is_square.o \
45 bn_mp_karatsuba_sqr.o bn_mp_kronecker.o bn_mp_lcm.o bn_mp_lshd.o bn_mp_mod.o bn_mp_mod_2d.o bn_mp_mod_d.o \ 48 bn_mp_iseven.o bn_mp_isodd.o bn_mp_kronecker.o bn_mp_lcm.o bn_mp_log_u32.o bn_mp_lshd.o bn_mp_mod.o \
46 bn_mp_montgomery_calc_normalization.o bn_mp_montgomery_reduce.o bn_mp_montgomery_setup.o bn_mp_mul.o \ 49 bn_mp_mod_2d.o bn_mp_mod_d.o bn_mp_montgomery_calc_normalization.o bn_mp_montgomery_reduce.o \
47 bn_mp_mul_2.o bn_mp_mul_2d.o bn_mp_mul_d.o bn_mp_mulmod.o bn_mp_n_root.o bn_mp_n_root_ex.o bn_mp_neg.o \ 50 bn_mp_montgomery_setup.o bn_mp_mul.o bn_mp_mul_2.o bn_mp_mul_2d.o bn_mp_mul_d.o bn_mp_mulmod.o bn_mp_neg.o \
48 bn_mp_or.o bn_mp_prime_fermat.o bn_mp_prime_frobenius_underwood.o bn_mp_prime_is_divisible.o \ 51 bn_mp_or.o bn_mp_pack.o bn_mp_pack_count.o bn_mp_prime_fermat.o bn_mp_prime_frobenius_underwood.o \
49 bn_mp_prime_is_prime.o bn_mp_prime_miller_rabin.o bn_mp_prime_next_prime.o \ 52 bn_mp_prime_is_prime.o bn_mp_prime_miller_rabin.o bn_mp_prime_next_prime.o \
50 bn_mp_prime_rabin_miller_trials.o bn_mp_prime_random_ex.o bn_mp_prime_strong_lucas_selfridge.o \ 53 bn_mp_prime_rabin_miller_trials.o bn_mp_prime_rand.o bn_mp_prime_strong_lucas_selfridge.o \
51 bn_mp_radix_size.o bn_mp_radix_smap.o bn_mp_rand.o bn_mp_read_radix.o bn_mp_read_signed_bin.o \ 54 bn_mp_radix_size.o bn_mp_radix_smap.o bn_mp_rand.o bn_mp_read_radix.o bn_mp_reduce.o bn_mp_reduce_2k.o \
52 bn_mp_read_unsigned_bin.o bn_mp_reduce.o bn_mp_reduce_2k.o bn_mp_reduce_2k_l.o bn_mp_reduce_2k_setup.o \ 55 bn_mp_reduce_2k_l.o bn_mp_reduce_2k_setup.o bn_mp_reduce_2k_setup_l.o bn_mp_reduce_is_2k.o \
53 bn_mp_reduce_2k_setup_l.o bn_mp_reduce_is_2k.o bn_mp_reduce_is_2k_l.o bn_mp_reduce_setup.o bn_mp_rshd.o \ 56 bn_mp_reduce_is_2k_l.o bn_mp_reduce_setup.o bn_mp_root_u32.o bn_mp_rshd.o bn_mp_sbin_size.o bn_mp_set.o \
54 bn_mp_set.o bn_mp_set_int.o bn_mp_set_long.o bn_mp_set_long_long.o bn_mp_shrink.o bn_mp_signed_bin_size.o \ 57 bn_mp_set_i32.o bn_mp_set_i64.o bn_mp_set_l.o bn_mp_set_ll.o bn_mp_set_u32.o bn_mp_set_u64.o \
55 bn_mp_sqr.o bn_mp_sqrmod.o bn_mp_sqrt.o bn_mp_sqrtmod_prime.o bn_mp_sub.o bn_mp_sub_d.o bn_mp_submod.o \ 58 bn_mp_set_ul.o bn_mp_set_ull.o bn_mp_shrink.o bn_mp_signed_rsh.o bn_mp_sqr.o bn_mp_sqrmod.o bn_mp_sqrt.o \
56 bn_mp_tc_and.o bn_mp_tc_div_2d.o bn_mp_tc_or.o bn_mp_tc_xor.o bn_mp_to_signed_bin.o \ 59 bn_mp_sqrtmod_prime.o bn_mp_sub.o bn_mp_sub_d.o bn_mp_submod.o bn_mp_to_radix.o bn_mp_to_sbin.o \
57 bn_mp_to_signed_bin_n.o bn_mp_to_unsigned_bin.o bn_mp_to_unsigned_bin_n.o bn_mp_toom_mul.o \ 60 bn_mp_to_ubin.o bn_mp_ubin_size.o bn_mp_unpack.o bn_mp_xor.o bn_mp_zero.o bn_prime_tab.o bn_s_mp_add.o \
58 bn_mp_toom_sqr.o bn_mp_toradix.o bn_mp_toradix_n.o bn_mp_unsigned_bin_size.o bn_mp_xor.o bn_mp_zero.o \ 61 bn_s_mp_balance_mul.o bn_s_mp_exptmod.o bn_s_mp_exptmod_fast.o bn_s_mp_get_bit.o bn_s_mp_invmod_fast.o \
59 bn_prime_tab.o bn_reverse.o bn_s_mp_add.o bn_s_mp_exptmod.o bn_s_mp_mul_digs.o bn_s_mp_mul_high_digs.o \ 62 bn_s_mp_invmod_slow.o bn_s_mp_karatsuba_mul.o bn_s_mp_karatsuba_sqr.o bn_s_mp_montgomery_reduce_fast.o \
60 bn_s_mp_sqr.o bn_s_mp_sub.o bncore.o 63 bn_s_mp_mul_digs.o bn_s_mp_mul_digs_fast.o bn_s_mp_mul_high_digs.o bn_s_mp_mul_high_digs_fast.o \
64 bn_s_mp_prime_is_divisible.o bn_s_mp_rand_jenkins.o bn_s_mp_rand_platform.o bn_s_mp_reverse.o \
65 bn_s_mp_sqr.o bn_s_mp_sqr_fast.o bn_s_mp_sub.o bn_s_mp_toom_mul.o bn_s_mp_toom_sqr.o
61 66
62 #END_INS 67 #END_INS
63
64 $(OBJECTS): $(HEADERS)
65 68
66 $(LIBNAME): $(OBJECTS) 69 $(LIBNAME): $(OBJECTS)
67 $(AR) $(ARFLAGS) $@ $(OBJECTS) 70 $(AR) $(ARFLAGS) $@ $(OBJECTS)
68 $(RANLIB) $@ 71 $(RANLIB) $@
69 72
80 make CFLAGS="$(CFLAGS) -fbranch-probabilities" 83 make CFLAGS="$(CFLAGS) -fbranch-probabilities"
81 84
82 #make a single object profiled library 85 #make a single object profiled library
83 profiled_single: 86 profiled_single:
84 perl gen.pl 87 perl gen.pl
85 $(CC) $(CFLAGS) -fprofile-arcs -DTESTING -c mpi.c -o mpi.o 88 $(CC) $(LTM_CFLAGS) -fprofile-arcs -DTESTING -c mpi.c -o mpi.o
86 $(CC) $(CFLAGS) -DTESTING -DTIMER demo/timing.c mpi.o -lgcov -o timing 89 $(CC) $(LTM_CFLAGS) -DTESTING -DTIMER demo/timing.c mpi.o -lgcov -o timing
87 ./timing 90 ./timing
88 rm -f *.o timing 91 rm -f *.o timing
89 $(CC) $(CFLAGS) -fbranch-probabilities -DTESTING -c mpi.c -o mpi.o 92 $(CC) $(LTM_CFLAGS) -fbranch-probabilities -DTESTING -c mpi.c -o mpi.o
90 $(AR) $(ARFLAGS) $(LIBNAME) mpi.o 93 $(AR) $(ARFLAGS) $(LIBNAME) mpi.o
91 ranlib $(LIBNAME) 94 ranlib $(LIBNAME)
92 95
93 install: $(LIBNAME) 96 install: $(LIBNAME)
94 install -d $(DESTDIR)$(LIBPATH) 97 install -d $(DESTDIR)$(LIBPATH)
98 101
99 uninstall: 102 uninstall:
100 rm $(DESTDIR)$(LIBPATH)/$(LIBNAME) 103 rm $(DESTDIR)$(LIBPATH)/$(LIBNAME)
101 rm $(HEADERS_PUB:%=$(DESTDIR)$(INCPATH)/%) 104 rm $(HEADERS_PUB:%=$(DESTDIR)$(INCPATH)/%)
102 105
103 test: $(LIBNAME) demo/demo.o 106 test_standalone: test
104 $(CC) $(CFLAGS) demo/demo.o $(LIBNAME) $(LFLAGS) -o test 107 @echo "test_standalone is deprecated, please use make-target 'test'"
105 108
106 test_standalone: $(LIBNAME) demo/demo.o 109 DEMOS=test mtest_opponent
107 $(CC) $(CFLAGS) demo/demo.o $(LIBNAME) $(LFLAGS) -o test 110
111 define DEMO_template
112 $(1): demo/$(1).o demo/shared.o $$(LIBNAME)
113 $$(CC) $$(LTM_CFLAGS) $$(LTM_LFLAGS) $$^ -o $$@
114 endef
115
116 $(foreach demo, $(strip $(DEMOS)), $(eval $(call DEMO_template,$(demo))))
108 117
109 .PHONY: mtest 118 .PHONY: mtest
110 mtest: 119 mtest:
111 cd mtest ; $(CC) $(CFLAGS) -O0 mtest.c $(LFLAGS) -o mtest 120 cd mtest ; $(CC) $(LTM_CFLAGS) -O0 mtest.c $(LTM_LFLAGS) -o mtest
112 121
113 timing: $(LIBNAME) demo/timing.c 122 timing: $(LIBNAME) demo/timing.c
114 $(CC) $(CFLAGS) -DTIMER demo/timing.c $(LIBNAME) $(LFLAGS) -o timing 123 $(CC) $(LTM_CFLAGS) -DTIMER demo/timing.c $(LIBNAME) $(LTM_LFLAGS) -o timing
124
125 tune: $(LIBNAME)
126 $(MAKE) -C etc tune CFLAGS="$(LTM_CFLAGS)"
127 $(MAKE)
115 128
116 # You have to create a file .coveralls.yml with the content "repo_token: <the token>" 129 # You have to create a file .coveralls.yml with the content "repo_token: <the token>"
117 # in the base folder to be able to submit to coveralls 130 # in the base folder to be able to submit to coveralls
118 coveralls: lcov 131 coveralls: lcov
119 coveralls-lcov 132 coveralls-lcov
120 133
121 docdvi poster docs mandvi manual: 134 docs manual:
122 $(MAKE) -C doc/ $@ V=$(V) 135 $(MAKE) -C doc/ $@ V=$(V)
123
124 pretty:
125 perl pretty.build
126 136
127 .PHONY: pre_gen 137 .PHONY: pre_gen
128 pre_gen: 138 pre_gen:
129 mkdir -p pre_gen 139 mkdir -p pre_gen
130 perl gen.pl 140 perl gen.pl
131 sed -e 's/[[:blank:]]*$$//' mpi.c > pre_gen/mpi.c 141 sed -e 's/[[:blank:]]*$$//' mpi.c > pre_gen/mpi.c
132 rm mpi.c 142 rm mpi.c
133 143
134 zipup: clean astyle new_file manual poster docs 144 zipup: clean astyle new_file docs
135 @# Update the index, so diff-index won't fail in case the pdf has been created. 145 @# Update the index, so diff-index won't fail in case the pdf has been created.
136 @# As the pdf creation modifies the tex files, git sometimes detects the 146 @# As the pdf creation modifies the tex files, git sometimes detects the
137 @# modified files, but misses that it's put back to its original version. 147 @# modified files, but misses that it's put back to its original version.
138 @git update-index --refresh 148 @git update-index --refresh
139 @git diff-index --quiet HEAD -- || ( echo "FAILURE: uncommited changes or not a git" && exit 1 ) 149 @git diff-index --quiet HEAD -- || ( echo "FAILURE: uncommited changes or not a git" && exit 1 )
141 @# files/dirs excluded from "git archive" are defined in .gitattributes 151 @# files/dirs excluded from "git archive" are defined in .gitattributes
142 git archive --format=tar --prefix=libtommath-$(VERSION)/ HEAD | tar x 152 git archive --format=tar --prefix=libtommath-$(VERSION)/ HEAD | tar x
143 @echo 'fixme check' 153 @echo 'fixme check'
144 -@(find libtommath-$(VERSION)/ -type f | xargs grep 'FIXM[E]') && echo '############## BEWARE: the "fixme" marker was found !!! ##############' || true 154 -@(find libtommath-$(VERSION)/ -type f | xargs grep 'FIXM[E]') && echo '############## BEWARE: the "fixme" marker was found !!! ##############' || true
145 mkdir -p libtommath-$(VERSION)/doc 155 mkdir -p libtommath-$(VERSION)/doc
146 cp doc/bn.pdf doc/tommath.pdf doc/poster.pdf libtommath-$(VERSION)/doc/ 156 cp doc/bn.pdf libtommath-$(VERSION)/doc/
147 $(MAKE) -C libtommath-$(VERSION)/ pre_gen 157 $(MAKE) -C libtommath-$(VERSION)/ pre_gen
148 tar -c libtommath-$(VERSION)/ | xz -6e -c - > ltm-$(VERSION).tar.xz 158 tar -c libtommath-$(VERSION)/ | xz -6e -c - > ltm-$(VERSION).tar.xz
149 zip -9rq ltm-$(VERSION).zip libtommath-$(VERSION) 159 zip -9rq ltm-$(VERSION).zip libtommath-$(VERSION)
150 cp doc/bn.pdf bn-$(VERSION).pdf 160 cp doc/bn.pdf bn-$(VERSION).pdf
151 cp doc/tommath.pdf tommath-$(VERSION).pdf
152 rm -rf libtommath-$(VERSION) 161 rm -rf libtommath-$(VERSION)
153 gpg -b -a ltm-$(VERSION).tar.xz 162 gpg -b -a ltm-$(VERSION).tar.xz
154 gpg -b -a ltm-$(VERSION).zip 163 gpg -b -a ltm-$(VERSION).zip
155 164
156 new_file: 165 new_file:
157 bash updatemakes.sh 166 perl helper.pl --update-files
158 perl dep.pl
159 167
160 perlcritic: 168 perlcritic:
161 perlcritic *.pl doc/*.pl 169 perlcritic *.pl doc/*.pl
162 170
163 astyle: 171 astyle:
164 astyle --options=astylerc $(OBJECTS:.o=.c) tommath*.h demo/*.c etc/*.c mtest/mtest.c 172 @echo " * run astyle on all sources"
173 @astyle --options=astylerc --formatted $(OBJECTS:.o=.c) tommath*.h demo/*.c etc/*.c mtest/mtest.c