| {- | 
 |      use File::Spec::Functions; | 
 |      sub rebase_files | 
 |      { | 
 |          my ($base, $files) = @_; | 
 |          return join(" ", map { "$base/$_" } split(/\s+/, $files)); | 
 |      } | 
 |      our $apps_extra = | 
 |          $config{target} =~ /^vms-/ ? "../apps/vms_term_sock.c" : ""; | 
 |      "" | 
 | -} | 
 | IF[{- !$disabled{tests} -}] | 
 |   PROGRAMS_NO_INST=\ | 
 |           aborttest \ | 
 |           sanitytest exdatatest bntest \ | 
 |           ectest ecdsatest ecdhtest gmdifftest pbelutest ideatest \ | 
 |           md2test \ | 
 |           hmactest \ | 
 |           rc2test rc4test rc5test \ | 
 |           destest sha1test sha256t sha512t \ | 
 |           mdc2test \ | 
 |           randtest dhtest enginetest casttest \ | 
 |           bftest ssltest_old dsatest exptest rsa_test \ | 
 |           evp_test evp_extra_test igetest v3nametest v3ext \ | 
 |           crltest danetest bad_dtls_test \ | 
 |           constant_time_test verify_extra_test clienthellotest \ | 
 |           packettest asynctest secmemtest srptest memleaktest \ | 
 |           dtlsv1listentest ct_test threadstest afalgtest d2i_test \ | 
 |           ssl_test_ctx_test ssl_test x509aux cipherlist_test asynciotest \ | 
 |           bioprinttest sslapitest dtlstest sslcorrupttest bio_enc_test \ | 
 |           pkey_meth_test uitest cipherbytes_test x509_time_test | 
 |  | 
 |   SOURCE[aborttest]=aborttest.c | 
 |   INCLUDE[aborttest]=../include | 
 |   DEPEND[aborttest]=../libcrypto | 
 |  | 
 |   SOURCE[sanitytest]=sanitytest.c | 
 |   INCLUDE[sanitytest]=../include | 
 |   DEPEND[sanitytest]=../libcrypto | 
 |  | 
 |   SOURCE[exdatatest]=exdatatest.c | 
 |   INCLUDE[exdatatest]=../include | 
 |   DEPEND[exdatatest]=../libcrypto | 
 |  | 
 |   SOURCE[bntest]=bntest.c testutil.c test_main_custom.c | 
 |   INCLUDE[bntest]=.. ../crypto/include ../include | 
 |   DEPEND[bntest]=../libcrypto | 
 |  | 
 |   SOURCE[ectest]=ectest.c | 
 |   INCLUDE[ectest]=.. ../include | 
 |   DEPEND[ectest]=../libcrypto | 
 |  | 
 |   SOURCE[ecdsatest]=ecdsatest.c | 
 |   INCLUDE[ecdsatest]=../include | 
 |   DEPEND[ecdsatest]=../libcrypto | 
 |  | 
 |   SOURCE[ecdhtest]=ecdhtest.c | 
 |   INCLUDE[ecdhtest]=../include | 
 |   DEPEND[ecdhtest]=../libcrypto | 
 |  | 
 |   SOURCE[gmdifftest]=gmdifftest.c | 
 |   INCLUDE[gmdifftest]=../include | 
 |   DEPEND[gmdifftest]=../libcrypto | 
 |  | 
 |   SOURCE[pbelutest]=pbelutest.c | 
 |   INCLUDE[pbelutest]=../include | 
 |   DEPEND[pbelutest]=../libcrypto | 
 |  | 
 |   SOURCE[ideatest]=ideatest.c | 
 |   INCLUDE[ideatest]=../include | 
 |   DEPEND[ideatest]=../libcrypto | 
 |  | 
 |   SOURCE[md2test]=md2test.c | 
 |   INCLUDE[md2test]=../include | 
 |   DEPEND[md2test]=../libcrypto | 
 |  | 
 |   SOURCE[hmactest]=hmactest.c | 
 |   INCLUDE[hmactest]=../include | 
 |   DEPEND[hmactest]=../libcrypto | 
 |  | 
 |   SOURCE[rc2test]=rc2test.c | 
 |   INCLUDE[rc2test]=../include | 
 |   DEPEND[rc2test]=../libcrypto | 
 |  | 
 |   SOURCE[rc4test]=rc4test.c | 
 |   INCLUDE[rc4test]=../include | 
 |   DEPEND[rc4test]=../libcrypto | 
 |  | 
 |   SOURCE[rc5test]=rc5test.c | 
 |   INCLUDE[rc5test]=../include | 
 |   DEPEND[rc5test]=../libcrypto | 
 |  | 
 |   SOURCE[destest]=destest.c | 
 |   INCLUDE[destest]=../include | 
 |   DEPEND[destest]=../libcrypto | 
 |  | 
 |   SOURCE[sha1test]=sha1test.c | 
 |   INCLUDE[sha1test]=../include | 
 |   DEPEND[sha1test]=../libcrypto | 
 |  | 
 |   SOURCE[sha256t]=sha256t.c | 
 |   INCLUDE[sha256t]=../include | 
 |   DEPEND[sha256t]=../libcrypto | 
 |  | 
 |   SOURCE[sha512t]=sha512t.c | 
 |   INCLUDE[sha512t]=../include | 
 |   DEPEND[sha512t]=../libcrypto | 
 |  | 
 |   SOURCE[mdc2test]=mdc2test.c | 
 |   INCLUDE[mdc2test]=../include | 
 |   DEPEND[mdc2test]=../libcrypto | 
 |  | 
 |   SOURCE[randtest]=randtest.c | 
 |   INCLUDE[randtest]=../include | 
 |   DEPEND[randtest]=../libcrypto | 
 |  | 
 |   SOURCE[dhtest]=dhtest.c | 
 |   INCLUDE[dhtest]=../include | 
 |   DEPEND[dhtest]=../libcrypto | 
 |  | 
 |   SOURCE[enginetest]=enginetest.c | 
 |   INCLUDE[enginetest]=../include | 
 |   DEPEND[enginetest]=../libcrypto | 
 |  | 
 |   SOURCE[casttest]=casttest.c | 
 |   INCLUDE[casttest]=../include | 
 |   DEPEND[casttest]=../libcrypto | 
 |  | 
 |   SOURCE[bftest]=bftest.c | 
 |   INCLUDE[bftest]=../include | 
 |   DEPEND[bftest]=../libcrypto | 
 |  | 
 |   SOURCE[ssltest_old]=ssltest_old.c | 
 |   INCLUDE[ssltest_old]=.. ../include | 
 |   DEPEND[ssltest_old]=../libcrypto ../libssl | 
 |  | 
 |   SOURCE[dsatest]=dsatest.c | 
 |   INCLUDE[dsatest]=../include | 
 |   DEPEND[dsatest]=../libcrypto | 
 |  | 
 |   SOURCE[exptest]=exptest.c | 
 |   INCLUDE[exptest]=../include | 
 |   DEPEND[exptest]=../libcrypto | 
 |  | 
 |   SOURCE[rsa_test]=rsa_test.c | 
 |   INCLUDE[rsa_test]=.. ../include | 
 |   DEPEND[rsa_test]=../libcrypto | 
 |  | 
 |   SOURCE[evp_test]=evp_test.c | 
 |   INCLUDE[evp_test]=../include | 
 |   DEPEND[evp_test]=../libcrypto | 
 |  | 
 |   SOURCE[evp_extra_test]=evp_extra_test.c | 
 |   INCLUDE[evp_extra_test]=../include | 
 |   DEPEND[evp_extra_test]=../libcrypto | 
 |  | 
 |   SOURCE[igetest]=igetest.c | 
 |   INCLUDE[igetest]=.. ../include | 
 |   DEPEND[igetest]=../libcrypto | 
 |  | 
 |   SOURCE[v3nametest]=v3nametest.c | 
 |   INCLUDE[v3nametest]=../include | 
 |   DEPEND[v3nametest]=../libcrypto | 
 |  | 
 |   SOURCE[crltest]=crltest.c testutil.c test_main.c | 
 |   INCLUDE[crltest]=../include | 
 |   DEPEND[crltest]=../libcrypto | 
 |  | 
 |   SOURCE[v3ext]=v3ext.c | 
 |   INCLUDE[v3ext]=../include | 
 |   DEPEND[v3ext]=../libcrypto | 
 |  | 
 |   SOURCE[danetest]=danetest.c | 
 |   INCLUDE[danetest]=../include | 
 |   DEPEND[danetest]=../libcrypto ../libssl | 
 |  | 
 |   SOURCE[constant_time_test]=constant_time_test.c | 
 |   INCLUDE[constant_time_test]=.. ../include | 
 |   DEPEND[constant_time_test]=../libcrypto | 
 |  | 
 |   SOURCE[verify_extra_test]=verify_extra_test.c | 
 |   INCLUDE[verify_extra_test]=../include | 
 |   DEPEND[verify_extra_test]=../libcrypto | 
 |  | 
 |   SOURCE[clienthellotest]=clienthellotest.c | 
 |   INCLUDE[clienthellotest]=../include | 
 |   DEPEND[clienthellotest]=../libcrypto ../libssl | 
 |  | 
 |   SOURCE[bad_dtls_test]=bad_dtls_test.c | 
 |   INCLUDE[bad_dtls_test]=../include | 
 |   DEPEND[bad_dtls_test]=../libcrypto ../libssl | 
 |  | 
 |   SOURCE[packettest]=packettest.c | 
 |   INCLUDE[packettest]=../include | 
 |   DEPEND[packettest]=../libcrypto | 
 |  | 
 |   SOURCE[asynctest]=asynctest.c | 
 |   INCLUDE[asynctest]=.. ../include | 
 |   DEPEND[asynctest]=../libcrypto | 
 |  | 
 |   SOURCE[secmemtest]=secmemtest.c | 
 |   INCLUDE[secmemtest]=../include | 
 |   DEPEND[secmemtest]=../libcrypto | 
 |  | 
 |   SOURCE[srptest]=srptest.c | 
 |   INCLUDE[srptest]=../include | 
 |   DEPEND[srptest]=../libcrypto | 
 |  | 
 |   SOURCE[memleaktest]=memleaktest.c | 
 |   INCLUDE[memleaktest]=../include | 
 |   DEPEND[memleaktest]=../libcrypto | 
 |  | 
 |   SOURCE[dtlsv1listentest]=dtlsv1listentest.c | 
 |   INCLUDE[dtlsv1listentest]=.. ../include | 
 |   DEPEND[dtlsv1listentest]=../libssl | 
 |  | 
 |   SOURCE[ct_test]=ct_test.c testutil.c test_main_custom.c | 
 |   INCLUDE[ct_test]=../crypto/include ../include | 
 |   DEPEND[ct_test]=../libcrypto | 
 |  | 
 |   SOURCE[threadstest]=threadstest.c | 
 |   INCLUDE[threadstest]=.. ../include | 
 |   DEPEND[threadstest]=../libcrypto | 
 |  | 
 |   SOURCE[afalgtest]=afalgtest.c | 
 |   INCLUDE[afalgtest]=.. ../include | 
 |   DEPEND[afalgtest]=../libcrypto | 
 |  | 
 |   SOURCE[d2i_test]=d2i_test.c testutil.c test_main_custom.c | 
 |   INCLUDE[d2i_test]=.. ../include | 
 |   DEPEND[d2i_test]=../libcrypto | 
 |  | 
 |   SOURCE[ssl_test_ctx_test]=ssl_test_ctx_test.c ssl_test_ctx.c testutil.c test_main_custom.c | 
 |   INCLUDE[ssl_test_ctx_test]=.. ../include | 
 |   DEPEND[ssl_test_ctx_test]=../libcrypto | 
 |  | 
 |   SOURCE[ssl_test]=ssl_test.c ssl_test_ctx.c testutil.c handshake_helper.c test_main_custom.c | 
 |   INCLUDE[ssl_test]=.. ../include | 
 |   DEPEND[ssl_test]=../libcrypto ../libssl | 
 |  | 
 |   SOURCE[cipherlist_test]=cipherlist_test.c testutil.c test_main.c | 
 |   INCLUDE[cipherlist_test]=.. ../include | 
 |   DEPEND[cipherlist_test]=../libcrypto ../libssl | 
 |  | 
 |   INCLUDE[testutil.o]=.. | 
 |   INCLUDE[ssl_test_ctx.o]=../include | 
 |   INCLUDE[handshake_helper.o]=../include | 
 |   INCLUDE[ssltestlib.o]=../include | 
 |  | 
 |   SOURCE[x509aux]=x509aux.c | 
 |   INCLUDE[x509aux]=../include | 
 |   DEPEND[x509aux]=../libcrypto | 
 |  | 
 |   SOURCE[asynciotest]=asynciotest.c ssltestlib.c | 
 |   INCLUDE[asynciotest]=../include | 
 |   DEPEND[asynciotest]=../libcrypto ../libssl | 
 |  | 
 |   SOURCE[bioprinttest]=bioprinttest.c | 
 |   INCLUDE[bioprinttest]=../include | 
 |   DEPEND[bioprinttest]=../libcrypto | 
 |  | 
 |   SOURCE[sslapitest]=sslapitest.c ssltestlib.c testutil.c test_main_custom.c | 
 |   INCLUDE[sslapitest]=../include .. | 
 |   DEPEND[sslapitest]=../libcrypto ../libssl | 
 |  | 
 |   SOURCE[dtlstest]=dtlstest.c ssltestlib.c testutil.c test_main_custom.c | 
 |   INCLUDE[dtlstest]=../include . | 
 |   DEPEND[dtlstest]=../libcrypto ../libssl | 
 |  | 
 |   SOURCE[sslcorrupttest]=sslcorrupttest.c ssltestlib.c testutil.c | 
 |   INCLUDE[sslcorrupttest]=../include . | 
 |   DEPEND[sslcorrupttest]=../libcrypto ../libssl | 
 |  | 
 |   SOURCE[bio_enc_test]=bio_enc_test.c | 
 |   INCLUDE[bio_enc_test]=../include | 
 |   DEPEND[bio_enc_test]=../libcrypto | 
 |  | 
 |   SOURCE[pkey_meth_test]=pkey_meth_test.c testutil.c test_main.c | 
 |   INCLUDE[pkey_meth_test]=../include | 
 |   DEPEND[pkey_meth_test]=../libcrypto | 
 |  | 
 |   SOURCE[x509_time_test]=x509_time_test.c testutil.c test_main.c | 
 |   INCLUDE[x509_time_test]=.. ../include | 
 |   DEPEND[x509_time_test]=../libcrypto | 
 |  | 
 |   IF[{- !$disabled{psk} -}] | 
 |     PROGRAMS_NO_INST=dtls_mtu_test | 
 |     SOURCE[dtls_mtu_test]=dtls_mtu_test.c ssltestlib.c | 
 |     INCLUDE[dtls_mtu_test]=.. ../include | 
 |     DEPEND[dtls_mtu_test]=../libcrypto ../libssl | 
 |   ENDIF | 
 |  | 
 |   IF[{- !$disabled{shared} -}] | 
 |     PROGRAMS_NO_INST=shlibloadtest | 
 |     SOURCE[shlibloadtest]=shlibloadtest.c | 
 |     INCLUDE[shlibloadtest]=../include | 
 |   ENDIF | 
 |  | 
 |   IF[{- $disabled{shared} -}] | 
 |     PROGRAMS_NO_INST=cipher_overhead_test | 
 |     SOURCE[cipher_overhead_test]=cipher_overhead_test.c | 
 |     INCLUDE[cipher_overhead_test]=.. ../include | 
 |     DEPEND[cipher_overhead_test]=../libcrypto ../libssl | 
 |   ENDIF | 
 |  | 
 |   SOURCE[uitest]=uitest.c testutil.c test_main_custom.c \ | 
 |     ../apps/apps.c ../apps/opt.c {- $apps_extra -} | 
 |   INCLUDE[uitest]=.. ../include | 
 |   DEPEND[uitest]=../libcrypto ../libssl | 
 |  | 
 |   SOURCE[cipherbytes_test]=cipherbytes_test.c | 
 |   INCLUDE[cipherbytes_test]=.. ../include | 
 |   DEPEND[cipherbytes_test]=../libcrypto ../libssl | 
 |  | 
 |   # Internal test programs.  These are essentially a collection of internal | 
 |   # 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{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[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 | 
 |  | 
 |     SOURCE[siphash_internal_test]=siphash_internal_test.c testutil.c test_main_custom.c | 
 |     INCLUDE[siphash_internal_test]=.. ../include ../crypto/include | 
 |     DEPEND[siphash_internal_test]=../libcrypto.a | 
 |   ENDIF | 
 |  | 
 |   IF[{- !$disabled{mdc2} -}] | 
 |     PROGRAMS_NO_INST=mdc2_internal_test | 
 |   ENDIF | 
 |  | 
 |   SOURCE[mdc2_internal_test]=mdc2_internal_test.c testutil.c test_main.c | 
 |   INCLUDE[mdc2_internal_test]=.. ../include | 
 |   DEPEND[mdc2_internal_test]=../libcrypto | 
 |  | 
 |   # We disable this test completely in a shared build because it deliberately | 
 |   # redefines some internal libssl symbols. This doesn't work in a non-shared | 
 |   # build | 
 |   IF[{- !$disabled{shared} -}] | 
 |     PROGRAMS_NO_INST=tls13secretstest | 
 |     SOURCE[tls13secretstest]=tls13secretstest.c testutil.c test_main.c | 
 |     SOURCE[tls13secretstest]= ../ssl/tls13_enc.c ../ssl/packet.c | 
 |     INCLUDE[tls13secretstest]=.. ../include | 
 |     DEPEND[tls13secretstest]=../libcrypto ../libssl | 
 |   ENDIF | 
 | ENDIF | 
 |  | 
 | {- | 
 |    use File::Spec::Functions; | 
 |    use File::Basename; | 
 |    use if $^O ne "VMS", 'File::Glob' => qw/glob/; | 
 |  | 
 |    my @nogo_headers = ( "asn1_mac.h", | 
 |                         "__decc_include_prologue.h", | 
 |                         "__decc_include_epilogue.h" ); | 
 |    my @headerfiles = glob catfile($sourcedir, | 
 |                                   updir(), "include", "openssl", "*.h"); | 
 |  | 
 |    foreach my $headerfile (@headerfiles) { | 
 |        my $name = basename($headerfile, ".h"); | 
 |        next if $disabled{$name}; | 
 |        next if grep { $_ eq lc("$name.h") } @nogo_headers; | 
 |        $OUT .= <<"_____"; | 
 |  | 
 |   PROGRAMS_NO_INST=buildtest_$name | 
 |   GENERATE[buildtest_$name.c]=generate_buildtest.pl $name | 
 |   SOURCE[buildtest_$name]=buildtest_$name.c | 
 |   INCLUDE[buildtest_$name]=../include | 
 |   DEPEND[buildtest_$name]=../libssl ../libcrypto | 
 | _____ | 
 |    } | 
 | -} |