- # test routines. Because they sometimes need to reach internal symbols that
- # aren't available through the shared library (at least on Linux, Solaris,
- # Windows and VMS, where the exported symbols are those listed in util/*.num),
- # these programs may be built on files directly picked from inside crypto/
- # or ssl/, to test using symbols that exist in those specific files. These
- # programs will also be linked with libcrypto / libssl, so we don't pick
- # out more specific files than necessary.
- # This might mean we have multiply defined symbols, but since linking is
- # ordered with object files first and libraries after, the symbols from the
- # object files will be chosen before those in the libraries. This is handled
- # properly by all linkers.
- # Note that when building with static libraries, none of those extra files
- # are needed, since all symbols are available anyway, regardless of what's
- # listed in util/*.num.
- PROGRAMS_NO_INST=asn1_internal_test modes_internal_test x509_internal_test
- IF[{- !$disabled{poly1305} -}]
- PROGRAMS_NO_INST=poly1305_internal_test
- ENDIF
+ # test routines. Some of them need to reach internal symbols that aren't
+ # available through the shared library (at least on Linux, Solaris, Windows
+ # and VMS, where the exported symbols are those listed in util/*.num), these
+ # programs are forcebly linked with the static libraries, where all symbols
+ # are always available. This excludes linking these programs natively on
+ # Windows when building shared libraries, since the static libraries share
+ # names with the DLL import libraries.
+ IF[{- $disabled{shared} || $target{build_scheme}->[1] ne 'windows' -}]
+ PROGRAMS_NO_INST=asn1_internal_test modes_internal_test x509_internal_test \
+ tls13encryptiontest wpackettest
+ IF[{- !$disabled{poly1305} -}]
+ PROGRAMS_NO_INST=poly1305_internal_test
+ ENDIF
+ IF[{- !$disabled{chacha} -}]
+ PROGRAMS_NO_INST=chacha_internal_test
+ ENDIF
+ IF[{- !$disabled{siphash} -}]
+ PROGRAMS_NO_INST=siphash_internal_test
+ ENDIF
+
+ SOURCE[poly1305_internal_test]=poly1305_internal_test.c testutil.c test_main_custom.c
+ INCLUDE[poly1305_internal_test]=.. ../include ../crypto/include
+ DEPEND[poly1305_internal_test]=../libcrypto.a
+
+ SOURCE[chacha_internal_test]=chacha_internal_test.c
+ INCLUDE[chacha_internal_test]=.. ../include ../crypto/include
+ DEPEND[chacha_internal_test]=../libcrypto.a
+
+ SOURCE[asn1_internal_test]=asn1_internal_test.c testutil.c test_main.c
+ INCLUDE[asn1_internal_test]=.. ../include ../crypto/include
+ DEPEND[asn1_internal_test]=../libcrypto.a
+
+ SOURCE[modes_internal_test]=modes_internal_test.c testutil.c test_main_custom.c
+ INCLUDE[modes_internal_test]=.. ../include
+ DEPEND[modes_internal_test]=../libcrypto.a
+
+ SOURCE[x509_internal_test]=x509_internal_test.c testutil.c test_main.c
+ INCLUDE[x509_internal_test]=.. ../include
+ DEPEND[x509_internal_test]=../libcrypto.a
+
+ SOURCE[tls13encryptiontest]=tls13encryptiontest.c testutil.c test_main.c
+ INCLUDE[tls13encryptiontest]=.. ../include
+ DEPEND[tls13encryptiontest]=../libcrypto ../libssl.a
+
+ SOURCE[wpackettest]=wpackettest.c testutil.c test_main_custom.c
+ INCLUDE[wpackettest]=../include
+ DEPEND[wpackettest]=../libcrypto ../libssl.a