summaryrefslogtreecommitdiffstats
path: root/libtommath/helper.pl
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2024-03-27 20:54:34 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2024-03-27 20:54:34 (GMT)
commit471032ae680a0582e9d1475ae13079ce86e4ac34 (patch)
tree5e60564479598e0ad6b6320789acbfb39807e48c /libtommath/helper.pl
parentb31857f4b154b6ee2870deccbe42395fe4351b24 (diff)
downloadtcl-471032ae680a0582e9d1475ae13079ce86e4ac34.zip
tcl-471032ae680a0582e9d1475ae13079ce86e4ac34.tar.gz
tcl-471032ae680a0582e9d1475ae13079ce86e4ac34.tar.bz2
Libtommath 1.3
Diffstat (limited to 'libtommath/helper.pl')
-rwxr-xr-xlibtommath/helper.pl40
1 files changed, 35 insertions, 5 deletions
diff --git a/libtommath/helper.pl b/libtommath/helper.pl
index c624b7c..6366d04 100755
--- a/libtommath/helper.pl
+++ b/libtommath/helper.pl
@@ -51,7 +51,7 @@ sub check_source {
push @{$troubles->{tab}}, $lineno if $l =~ /\t/ && basename($file) !~ /^makefile/i;
push @{$troubles->{non_ascii_char}}, $lineno if $l =~ /[^[:ascii:]]/;
push @{$troubles->{cpp_comment}}, $lineno if $file =~ /\.(c|h)$/ && ($l =~ /\s\/\// || $l =~ /\/\/\s/);
- # we prefer using MP_MALLOC, MP_FREE, MP_REALLOC, MP_CALLOC ...
+ # we prefer using XMALLOC, XFREE, XREALLOC, XCALLOC ...
push @{$troubles->{unwanted_malloc}}, $lineno if $file =~ /^[^\/]+\.c$/ && $l =~ /\bmalloc\s*\(/;
push @{$troubles->{unwanted_realloc}}, $lineno if $file =~ /^[^\/]+\.c$/ && $l =~ /\brealloc\s*\(/;
push @{$troubles->{unwanted_calloc}}, $lineno if $file =~ /^[^\/]+\.c$/ && $l =~ /\bcalloc\s*\(/;
@@ -222,11 +222,32 @@ sub patch_file {
return $content;
}
+sub make_sources_cmake {
+ my ($src_ref, $hdr_ref) = @_;
+ my @sources = @{ $src_ref };
+ my @headers = @{ $hdr_ref };
+ my $output = "# SPDX-License-Identifier: Unlicense
+# Autogenerated File! Do not edit.
+
+set(SOURCES\n";
+ foreach my $sobj (sort @sources) {
+ $output .= $sobj . "\n";
+ }
+ $output .= ")\n\nset(HEADERS\n";
+ foreach my $hobj (sort @headers) {
+ $output .= $hobj . "\n";
+ }
+ $output .= ")\n";
+ return $output;
+}
+
sub process_makefiles {
my $write = shift;
my $changed_count = 0;
- my @o = map { my $x = $_; $x =~ s/\.c$/.o/; $x } bsd_glob("*.c");
- my @all = bsd_glob("*.{c,h}");
+ my @headers = bsd_glob("*.h");
+ my @sources = bsd_glob("*.c");
+ my @o = map { my $x = $_; $x =~ s/\.c$/.o/; $x } @sources;
+ my @all = sort(@sources, @headers);
my $var_o = prepare_variable("OBJECTS", @o);
(my $var_obj = $var_o) =~ s/\.o\b/.obj/sg;
@@ -245,10 +266,12 @@ sub process_makefiles {
}
# update OBJECTS + HEADERS in makefile*
- for my $m (qw/ makefile makefile.shared makefile_include.mk makefile.msvc makefile.unix makefile.mingw /) {
+ for my $m (qw/ makefile makefile.shared makefile_include.mk makefile.msvc makefile.unix makefile.mingw sources.cmake /) {
my $old = read_file($m);
my $new = $m eq 'makefile.msvc' ? patch_file($old, $var_obj)
- : patch_file($old, $var_o);
+ : $m eq 'sources.cmake' ? make_sources_cmake(\@sources, \@headers)
+ : patch_file($old, $var_o);
+
if ($old ne $new) {
write_file($m, $new) if $write;
warn "changed: $m\n";
@@ -389,6 +412,11 @@ EOS
push @deps, $a;
}
}
+ if ($filename =~ "BN_DEPRECATED") {
+ push(@deps, qw(BN_MP_GET_LL_C BN_MP_INIT_LL_C BN_MP_SET_LL_C));
+ push(@deps, qw(BN_MP_GET_MAG_ULL_C BN_MP_INIT_ULL_C BN_MP_SET_ULL_C));
+ push(@deps, qw(BN_MP_DIV_3_C BN_MP_EXPT_U32_C BN_MP_ROOT_U32_C BN_MP_LOG_U32_C));
+ }
@deps = sort(@deps);
foreach my $a (@deps) {
if ($list !~ /$a/) {
@@ -435,6 +463,8 @@ sub generate_def {
@files = grep(!/mp_radix_smap/, @files);
push(@files, qw(mp_set_int mp_set_long mp_set_long_long mp_get_int mp_get_long mp_get_long_long mp_init_set_int));
+ push(@files, qw(mp_get_ll mp_get_mag_ull mp_init_ll mp_set_ll mp_init_ull mp_set_ull));
+ push(@files, qw(mp_div_3 mp_expt_u32 mp_root_u32 mp_log_u32));
my $files = join("\n ", sort(grep(/^mp_/, @files)));
write_file "tommath.def", "; libtommath