summary refs log tree commit diff
path: root/math
diff options
context:
space:
mode:
Diffstat (limited to 'math')
-rw-r--r--math/Makefile7
-rw-r--r--math/README.libm-test2
-rwxr-xr-xmath/gen-libm-test.pl39
3 files changed, 27 insertions, 21 deletions
diff --git a/math/Makefile b/math/Makefile
index dd3b05ab48..bbee8f3c58 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -217,7 +217,9 @@ $(addprefix $(objpfx), $(libm-tests-generated)): $(objpfx)libm-test.stmp
 $(objpfx)libm-test.stmp: $(ulps-file) libm-test.inc gen-libm-test.pl \
 			 gen-libm-have-vector-test.sh auto-libm-test-out
 	$(make-target-directory)
-	$(PERL) gen-libm-test.pl -u $< -o "$(objpfx)"
+	$(PERL) gen-libm-test.pl -u $< -H "$(objpfx)libm-test-ulps.h"
+	$(PERL) gen-libm-test.pl -c libm-test.inc -a auto-libm-test-out \
+				 -C "$(objpfx)libm-test.c"
 	$(SHELL) gen-libm-have-vector-test.sh > $(objpfx)libm-have-vector-test.h
 	@echo > $@
 endif
@@ -353,7 +355,8 @@ regen-ulps: $(addprefix $(objpfx),$(libm-tests))
 	  cat $(objpfx)ULPs >> $(objpfx)libm-test-ulps; \
 	  rm $(objpfx)ULPs; \
 	done; \
-	$(PERL) gen-libm-test.pl -o $(objpfx) -n -u $(objpfx)libm-test-ulps; \
+	$(PERL) gen-libm-test.pl -n $(objpfx)NewUlps \
+				 -u $(objpfx)libm-test-ulps; \
 	echo "Automatic regeneration of ULPs complete."; \
 	echo "Difference between the current baseline and the new baseline is:";\
 	diff -urN $(ulps-file) $(objpfx)NewUlps; \
diff --git a/math/README.libm-test b/math/README.libm-test
index 69e2d3f1b6..d0a528ee34 100644
--- a/math/README.libm-test
+++ b/math/README.libm-test
@@ -81,7 +81,7 @@ generate the ULPs for all other formats, the tests will be appending the
 data to the "ULPs" file.  As final step run "gen-libm-test.pl" with the
 file as input and ask to generate a pretty printed output in the file
 "NewUlps":
-  gen-libm-test.pl -u ULPs -n
+  gen-libm-test.pl -u ULPs -n NewUlps
 Copy "NewUlps" to "libm-test-ulps" in the appropriate machine sysdep
 directory.
 
diff --git a/math/gen-libm-test.pl b/math/gen-libm-test.pl
index a58194dfd6..a931bc542f 100755
--- a/math/gen-libm-test.pl
+++ b/math/gen-libm-test.pl
@@ -40,7 +40,7 @@ use strict;
 use vars qw ($input $output $auto_input);
 use vars qw (%results);
 use vars qw (%beautify @all_floats %all_floats_pfx);
-use vars qw ($output_dir $ulps_file $srcdir);
+use vars qw ($ulps_file);
 use vars qw (%auto_tests);
 
 # all_floats is sorted and contains all recognised float types
@@ -73,38 +73,41 @@ use vars qw (%auto_tests);
 
 # get Options
 # Options:
+# a: auto-libm-test-out input file
+# c: .inc input file
 # u: ulps-file
+# n: new ulps file
+# C: libm-test.c output file
+# H: libm-test-ulps.h output file
 # h: help
-# o: output-directory
-# n: generate new ulps file
-use vars qw($opt_u $opt_h $opt_o $opt_n);
-getopts('u:o:nh');
+use vars qw($opt_a $opt_c $opt_u $opt_n $opt_C $opt_H $opt_h);
+getopts('a:c:u:n:C:H:h');
 
 $ulps_file = 'libm-test-ulps';
-$output_dir = '';
-($srcdir = $0) =~ s{[^/]*$}{};
 
 if ($opt_h) {
   print "Usage: gen-libm-test.pl [OPTIONS]\n";
   print " -h         print this help, then exit\n";
-  print " -o DIR     directory where generated files will be placed\n";
-  print " -n         only generate sorted file NewUlps from libm-test-ulps\n";
+  print " -a FILE    input file with automatically generated tests\n";
+  print " -c FILE    input file .inc file with tests\n";
   print " -u FILE    input file with ulps\n";
+  print " -n FILE    generate sorted file FILE from libm-test-ulps\n";
+  print " -C FILE    generate output C file FILE from libm-test.inc\n";
+  print " -H FILE    generate output ulps header FILE from libm-test-ulps\n";
   exit 0;
 }
 
 $ulps_file = $opt_u if ($opt_u);
-$output_dir = $opt_o if ($opt_o);
 
-$input = "libm-test.inc";
-$auto_input = "${srcdir}auto-libm-test-out";
-$output = "${output_dir}libm-test.c";
+$input = $opt_c if ($opt_c);
+$auto_input = $opt_a if ($opt_a);
+$output = $opt_C if ($opt_C);
 
-&parse_ulps ($ulps_file);
-&parse_auto_input ($auto_input);
-&generate_testfile ($input, $output) unless ($opt_n);
-&output_ulps ("${output_dir}libm-test-ulps.h", $ulps_file) unless ($opt_n);
-&print_ulps_file ("${output_dir}NewUlps") if ($opt_n);
+&parse_ulps ($ulps_file) if ($opt_H || $opt_n);
+&parse_auto_input ($auto_input) if ($opt_C);
+&generate_testfile ($input, $output) if ($opt_C);
+&output_ulps ($opt_H, $ulps_file) if ($opt_H);
+&print_ulps_file ($opt_n) if ($opt_n);
 
 # Return a nicer representation
 sub beautify {