@@ -222,16 +222,6 @@ sub patch_file {
222
222
return $content ;
223
223
}
224
224
225
- sub version_from_tomcrypt_h {
226
- my $h = read_file(shift );
227
- if ($h =~ / \n #define\s *SCRYPT\s *"([0-9]+)\. ([0-9]+)\. ([0-9]+)(.*)"/s ) {
228
- return " VERSION_PC=$1 .$2 .$3 " , " VERSION_LT=1:1" , " VERSION=$1 .$2 .$3$4 " , " PROJECT_NUMBER=$1 .$2 .$3$4 " ;
229
- }
230
- else {
231
- die " #define SCRYPT not found in tomcrypt.h" ;
232
- }
233
- }
234
-
235
225
sub process_makefiles {
236
226
my $write = shift ;
237
227
my $changed_count = 0;
@@ -308,6 +298,7 @@ sub update_dep
308
298
/* SPDX-License-Identifier: Unlicense */
309
299
310
300
#if !(defined(LTM1) && defined(LTM2) && defined(LTM3))
301
+ #define LTM_INSIDE
311
302
#if defined(LTM2)
312
303
# define LTM3
313
304
#endif
@@ -323,12 +314,10 @@ sub update_dep
323
314
324
315
print " Processing $filename \n " ;
325
316
326
- # convert filename to upper case so we can use it as a define
317
+ # convert filename to upper case so we can use it as a define
327
318
$define =~ tr / [a-z]/ [A-Z]/ ;
328
319
$define =~ tr / \./ _/ ;
329
- print {$class } << "EOS" ;
330
- # define $define
331
- EOS
320
+ print {$class } " # define $define \n " ;
332
321
333
322
# now copy text and apply #ifdef as required
334
323
my $apply = 0;
@@ -350,68 +339,71 @@ sub update_dep
350
339
$apply = 1;
351
340
}
352
341
while (<$src >) {
353
- if (!( $_ = ~ / tommath\. h/ ) ) {
342
+ if ($_ ! ~ / tommath\. h/ ) {
354
343
print {$out } $_ ;
355
344
}
356
345
}
357
346
if ($apply == 1) {
358
- print {$out } << 'EOS' ;
359
- #endif
360
- EOS
347
+ print {$out } " #endif\n " ;
361
348
}
362
349
close $src ;
363
350
close $out ;
364
351
365
352
unlink $filename ;
366
353
rename ' tmp' , $filename ;
367
354
}
368
- print {$class } << 'EOS' ;
369
- #endif
370
- EOS
355
+ print {$class } " #endif\n #endif\n " ;
371
356
372
357
# now do classes
373
358
my %depmap ;
374
359
foreach my $filename (glob ' bn*.c' ) {
375
- open (my $src , ' <' , $filename ) or die " Can't open source file!\n " ;
376
- read $src , my $content , -s $src ;
377
- close $src ;
360
+ my $content ;
361
+ if ($filename =~ " bn_deprecated.c" ) {
362
+ open (my $src , ' <' , $filename ) or die " Can't open source file!\n " ;
363
+ read $src , $content , -s $src ;
364
+ close $src ;
365
+ } else {
366
+ my $cc = $ENV {' CC' } || ' gcc' ;
367
+ $content = ` $cc -E -x c -DLTM_ALL $filename ` ;
368
+ $content =~ s / ^# 1 "$filename".*?^# 2 "$filename"// ms ;
369
+ }
378
370
379
371
# convert filename to upper case so we can use it as a define
380
372
$filename =~ tr / [a-z]/ [A-Z]/ ;
381
373
$filename =~ tr / \./ _/ ;
382
374
383
- print {$class } << "EOS" ;
384
- #if defined($filename )
385
- EOS
375
+ print {$class } " #if defined($filename )\n " ;
386
376
my $list = $filename ;
387
377
388
378
# strip comments
389
379
$content =~ s { /\* .*?\* /} {} gs ;
390
380
391
381
# scan for mp_* and make classes
382
+ my @deps = ();
392
383
foreach my $line (split /\n/, $content ) {
393
384
while ($line =~ / (fast_)?(s_)?mp\_ [a-z_0-9]*(?=\( )|(?<=\( )mp\_ [a-z_0-9]*(?=,)/g ) {
394
385
my $a = $& ;
395
386
next if $a eq " mp_err" ;
396
387
$a =~ tr / [a-z]/ [A-Z]/ ;
397
388
$a = ' BN_' . $a . ' _C' ;
398
- if (!($list =~ / $a / )) {
399
- print {$class } << "EOS" ;
400
- # define $a
401
- EOS
402
- }
403
- $list = $list . ' ,' . $a ;
389
+ push @deps , $a ;
404
390
}
405
391
}
392
+ @deps = sort (@deps );
393
+ foreach my $a (@deps ) {
394
+ if ($list !~ / $a / ) {
395
+ print {$class } " # define $a \n " ;
396
+ }
397
+ $list = $list . ' ,' . $a ;
398
+ }
406
399
$depmap {$filename } = $list ;
407
400
408
- print {$class } << 'EOS' ;
409
- #endif
410
-
411
- EOS
401
+ print {$class } " #endif\n\n " ;
412
402
}
413
403
414
404
print {$class } << 'EOS' ;
405
+ #ifdef LTM_INSIDE
406
+ #undef LTM_INSIDE
415
407
#ifdef LTM3
416
408
# define LTM_LAST
417
409
#endif
@@ -442,8 +434,7 @@ sub generate_def {
442
434
@files = map { my $x = $_ ; $x =~ s / ^bn_|\. c$// g ; $x ; } @files ;
443
435
@files = grep (!/mp_radix_smap/, @files );
444
436
445
- @files = grep (!/conversion/, @files );
446
- push (@files , qw( mp_set_i32 mp_set_i64 mp_set_u32 mp_set_u64 mp_set_int mp_set_long mp_set_long_long mp_get_i32 mp_get_i64 mp_get_mag32 mp_get_mag64 mp_get_int mp_get_long mp_get_long_long mp_init_i32 mp_init_i64 mp_init_u32 mp_init_u64 mp_init_set_int) );
437
+ 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) );
447
438
448
439
my $files = join (" \n " , sort (grep (/ ^mp_/ , @files )));
449
440
write_file " tommath.def" , " ; libtommath
0 commit comments