# compile and test Ada 95 math library # these files are set up for gnat # 'lib' needs syspriv all: real integer complex poly eigen precise fftg math test \ prescribed fft runfft # compile gnatmath and build gnatmathlib.a (DOS and Unix) real: echo building and testing gnatmath gcc -c mathematical_constants.ads gcc -c array_exceptions.ads echo ===real_arrays gcc -c -gnatc generic_real_arrays.ads gcc -c generic_real_arrays.adb gcc -c -gnatc real_arrays_io.ads gcc -c real_arrays_io.adb gcc -c -gnatc test_generic_real_arrays.ads gcc -c test_generic_real_arrays.adb gcc -c test_generic_real_arrays_1.adb gnatbl test_generic_real_arrays_1.ali gcc -c real_arrays.ads gcc -c test_real_arrays_1.ads gnatbl test_real_arrays_1.ali gcc -c long_real_arrays.ads gcc -c test_long_real_arrays_1.ads gnatbl test_long_real_arrays_1.ali gcc -c test_real_arrays_io.adb gnatbl test_real_arrays_io.ali touch real integer: echo ===integer_arrays gcc -c -gnatc generic_integer_arrays.ads gcc -c generic_integer_arrays.adb gcc -c -gnatc integer_arrays_io.ads gcc -c integer_arrays_io.adb gcc -c -gnatc test_generic_integer_arrays.ads gcc -c test_generic_integer_arrays.adb gcc -c test_generic_integer_arrays_1.adb gnatbl test_generic_integer_arrays_1.ali gcc -c integer_arrays.ads gcc -c test_integer_arrays_1.adb gnatbl test_integer_arrays_1.ali gcc -c long_integer_arrays.ads gcc -c test_long_integer_arrays_1.adb gnatbl test_long_integer_arrays_1.ali gcc -c test_integer_arrays_io.adb gnatbl test_integer_arrays_io.ali touch integer complex: echo ===complex_arrays gcc -c test_generic_complex_types.adb gnatbl test_generic_complex_types.ali gcc -c -gnatc generic_complex_arrays.ads gcc -c generic_complex_arrays.adb gcc -c -gnatc complex_arrays_io.ads gcc -c complex_arrays_io.adb gcc -c -gnatc test_generic_complex_arrays.ads gcc -c test_generic_complex_arrays.adb gcc -c test_generic_complex_arrays_1.adb gnatbl test_generic_complex_arrays_1.ali gcc -c complex_types.ads gcc -c complex_arrays.ads gcc -c test_complex_arrays_1.ads gnatbl test_complex_arrays_1.ali gcc -c long_complex_arrays.ads gcc -c test_long_complex_arrays_1.ads gnatbl test_long_complex_arrays_1.ali gcc -c test_complex_arrays_io.adb gnatbl test_complex_arrays_io.ali echo ===linear_equations gcc -c -gnatc generic_real_linear_equations.ads gcc -c generic_real_linear_equations.adb gcc -c test_generic_real_linear_equations.adb gnatbl test_generic_real_linear_equations.ali gcc -c -gnatc generic_complex_linear_equations.ads touch complex # gcc -c generic_complex_linear_equations.adb # gcc -c test_generic_complex_linear_equations.adb # gnatbl test_generic_complex_linear_equations.ali poly: gcc -c -gnatc generic_real_polynomials.ads gcc -c generic_real_polynomials.adb gcc -c test_generic_real_polynomials.adb gnatbl test_generic_real_polynomials.ali gcc -c -gnatc complex_polynomials_io.ads gcc -c complex_polynomials_io.adb gcc -c -gnatc generic_complex_polynomials.ads gcc -c generic_complex_polynomials.adb touch poly # got compiler bug message # gcc -c test_generic_complex_polynomials.adb # gnatbl test_generic_complex_polynomials.ali eigen: echo ===eigenvalues gcc -c -gnatc generic_complex_eigen_check.ads gcc -c generic_complex_eigen_check.adb gcc -c complex_eigen_check.ads gcc -c long_complex_eigen_check.ads gcc -c -gnatc generic_complex_eigenvalues.ads gcc -c generic_complex_eigenvalues.adb gcc -c complex_eigenvalues.ads gcc -c long_complex_eigenvalues.ads gcc -c test_generic_complex_eigenvalues.adb gnatbl test_generic_complex_eigenvalues.ali touch eigen math: echo ===math gcc -c -gnatc nderiv.ads gcc -c nderiv.adb gcc -c test_nderiv.adb gnatbl test_nderiv.ali gcc -c prob3.adb gnatbl prob3.ali gcc -c prob7.adb gnatbl prob7.ali gcc -c prob7a.adb gnatbl prob7a.ali gcc -c prob7b.adb gnatbl prob7b.ali touch math fftg: echo ===fast_fourier gcc -c -gnatc generic_complex_fast_fourier_transform.ads gcc -c generic_complex_fast_fourier_transform.adb gcc -c complex_fast_fourier_transform.ads gcc -c long_complex_fast_fourier_transform.ads gcc -c test_long_complex_fast_fourier_transform.adb gnatbl test_long_complex_fast_fourier_transform.ali touch fftg precise: echo ===precise_types gcc -c -gnatc precise_types.ads gcc -c precise_types.adb gcc -c -gnatc precise_io.ads gcc -c precise_io.adb gcc -c test_precise_types.adb gnatbl test_precise_types.ali touch precise lib: ar -cr gnatmathlib.a *.o # build gnatmathlib.a cp gnatmathlib.a /usr/lib echo built /usr/lib/gnatmathlib.a touch lib test: echo === now execute the tests test_generic_real_arrays_1 > test_generic_real_arrays_1.out test_real_arrays_1 > test_real_arrays_1.out test_long_real_arrays_1 > test_long_real_arrays_1.out test_real_arrays_io > test_real_arrays_io.out test_generic_integer_arrays_1 > test_generic_integer_arrays_1.out test_integer_arrays_1 > test_integer_arrays_1.out test_long_integer_arrays_1 > test_long_integer_arrays_1.out test_integer_arrays_io > test_integer_arrays_io.out test_generic_complex_types > test_generic_complex_types.out test_generic_complex_arrays_1 > test_generic_complex_arrays_1.out test_complex_arrays_1 > test_complex_arrays_1.out test_long_complex_arrays_1 > test_long_complex_arrays_1.out test_complex_arrays_io > test_complex_arrays_io.out test_generic_complex_linear_equations > test_generic_complex_linear_equations.out test_generic_real_linear_equations > test_generic_real_linear_equations.out test_long_complex_fast_fourier_transform > test_long_complex_fast_fourier_transform.out test_precise_types > test_precise_types.out test_generic_complex_eigenvalues < test_generic_complex_eigenvalues.dat > test_generic_complex_eigenvalues.out test_nderiv > test_nderiv.out prob3 > prob3.out prob7 > prob7.out prob7a > prob7a.out prob7b > prob7b.out echo === done tests touch test prescribed: echo ===prescribed gcc -c -gnatc test_math_lt_constants.ads gcc -c test_math_lt_constants.adb gcc -c test_gef_variables.ads gcc -c -gnatc test_gef_utilities.ads gcc -c test_gef_utilities.adb gcc -c -gnatc test_generic_prescribed_arccos.ads gcc -c test_generic_prescribed_arccos.adb gcc -c -gnatc test_generic_prescribed_arccosh.ads gcc -c test_generic_prescribed_arccosh.adb gcc -c -gnatc test_generic_prescribed_arccot.ads gcc -c test_generic_prescribed_arccot.adb gcc -c -gnatc test_generic_prescribed_arccoth.ads gcc -c test_generic_prescribed_arccoth.adb gcc -c -gnatc test_generic_prescribed_arcsin.ads gcc -c test_generic_prescribed_arcsin.adb gcc -c -gnatc test_generic_prescribed_arcsinh.ads gcc -c test_generic_prescribed_arcsinh.adb gcc -c -gnatc test_generic_prescribed_arctan.ads gcc -c test_generic_prescribed_arctan.adb gcc -c -gnatc test_generic_prescribed_arctanh.ads gcc -c test_generic_prescribed_arctanh.adb gcc -c -gnatc test_generic_prescribed_cos.ads gcc -c test_generic_prescribed_cos.adb gcc -c -gnatc test_generic_prescribed_cosh.ads gcc -c test_generic_prescribed_cosh.adb gcc -c -gnatc test_generic_prescribed_cot.ads gcc -c test_generic_prescribed_cot.adb gcc -c -gnatc test_generic_prescribed_coth.ads gcc -c test_generic_prescribed_coth.adb gcc -c -gnatc test_generic_prescribed_exp.ads gcc -c test_generic_prescribed_exp.adb gcc -c -gnatc test_generic_prescribed_log.ads gcc -c test_generic_prescribed_log.adb gcc -c -gnatc test_generic_prescribed_pwr.ads gcc -c test_generic_prescribed_pwr.adb gcc -c -gnatc test_generic_prescribed_sin.ads gcc -c test_generic_prescribed_sin.adb gcc -c -gnatc test_generic_prescribed_sinh.ads gcc -c test_generic_prescribed_sinh.adb gcc -c -gnatc test_generic_prescribed_sqrt.ads gcc -c test_generic_prescribed_sqrt.adb gcc -c -gnatc test_generic_prescribed_tan.ads gcc -c test_generic_prescribed_tan.adb gcc -c -gnatc test_generic_prescribed_tanh.ads gcc -c test_generic_prescribed_tanh.adb gcc -c -gnatc test_generic_prescribed_elementary.ads gcc -c test_generic_prescribed_elementary.adb # gcc -c -gnatc test_complex_prescribed.ads # gcc -c -gnatc test_generic_complex_prescribed.ads # gcc -c -gnatc test_long_complex_prescribed.ads # gcc -c test_generic_complex_prescribed.adb gcc -c test_prescribed_elementary.ads gnatbl test_prescribed_elementary.ali test_prescribed_elementary > test_prescribed_elementary.out gcc -c test_long_prescribed_elementary.ads gnatbl test_long_prescribed_elementary.ali test_long_prescribed_elementary > test_long_prescribed_elementary.out echo === end prescribed touch prescribed # build fft timing test fft: # gcc -c array_exceptions.ads # gcc -c -gnatc generic_integer_arrays.ads # gcc -c generic_integer_arrays.adb # gcc -c -gnatc integer_arrays.ads # gcc -c -gnatc generic_real_arrays.ads # gcc -c generic_real_arrays.adb # gcc -c real_arrays.ads # gcc -c -gnatc generic_complex_arrays.ads # gcc -c generic_complex_arrays.adb # gcc -c complex_types.ads # gcc -c complex_arrays.ads gcc -O2 -c fft16.adb gcc -O2 -c ifft16.adb gcc -O2 -c fft32.adb gcc -O2 -c ifft32.adb gcc -O2 -c fft64.adb gcc -O2 -c ifft64.adb gcc -O2 -c fft128.adb gcc -O2 -c ifft128.adb gcc -O2 -c fft256.adb gcc -O2 -c ifft256.adb gcc -O2 -c fft512.adb gcc -O2 -c ifft512.adb gcc -O2 -c fft1024.adb gcc -O2 -c ifft1024.adb gcc -O2 -c fft2048.adb gcc -O2 -c ifft2048.adb gcc -O2 -c fft4096.adb gcc -O2 -c ifft4096.adb gcc -O2 -c fft_time.adb gnatbl -O2 fft_time.ali touch fft runfft: fft_time > fft_time.out # runs a long time touch runfft clean: rm -f *.o rm -f *.ali rm -f *.log rm -f *.a rm -f real # Makefile dependents rm -f integer rm -f complex rm -f poly rm -f eigen rm -f precise rm -f math rm -f test rm -f fft rm -f runfft rm -f fftg rm -f test_generic_complex_types rm -f test_complex_arrays_1 rm -f test_complex_arrays_io rm -f test_generic_complex_arrays_1 rm -f test_generic_complex_eigenvalues rm -f test_generic_complex_linear_equations rm -f test_generic_integer_arrays_1 rm -f test_generic_real_arrays_1 rm -f test_generic_real_polynomials rm -f test_generic_complex_polynomials rm -f test_integer_arrays_1 rm -f test_integer_arrays_io rm -f test_long_complex_arrays_1 rm -f test_long_complex_fast_fourier_transform rm -f test_long_integer_arrays_1 rm -f test_long_real_arrays_1 rm -f test_precise_types rm -f test_real_arrays_1 rm -f test_real_arrays_io rm -f fft_time rm -f test_generic_real_linear_equations rm -f test_nderiv rm -f prob3 rm -f prob7 rm -f prob7a rm -f prob7b rm -f test_prescribed_elementary rm -f test_long_prescribed_elementary