Mercurial > dropbear
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 |