# Note that some of these directories are filtered in Configure.  Look for
# %skipdir there for further explanations.

SUBDIRS=crypto ssl apps util tools fuzz providers doc
IF[{- !$disabled{tests} -}]
  SUBDIRS=test
ENDIF
IF[{- !$disabled{demos} -}]
  SUBDIRS=demos
ENDIF
IF[{- !$disabled{'deprecated-3.0'} -}]
  SUBDIRS=engines
ENDIF
SUBDIRS=exporters

LIBS=libcrypto libssl
INCLUDE[libcrypto]=. include
INCLUDE[libssl]=. include
DEPEND[libssl]=libcrypto

# Empty DEPEND "indices" means the dependencies are expected to be built
# unconditionally before anything else.
DEPEND[]=include/openssl/asn1.h \
         include/openssl/asn1t.h \
         include/openssl/bio.h \
         include/openssl/cmp.h \
         include/openssl/cms.h \
         include/openssl/conf.h \
         include/openssl/comp.h \
         include/openssl/core_names.h \
         include/openssl/crmf.h \
         include/openssl/crypto.h \
         include/openssl/ct.h \
         include/openssl/err.h \
         include/openssl/ess.h \
         include/openssl/fipskey.h \
         include/openssl/lhash.h \
         include/openssl/opensslv.h \
         include/openssl/ocsp.h \
         include/openssl/pkcs12.h \
         include/openssl/pkcs7.h \
         include/openssl/safestack.h \
         include/openssl/srp.h \
         include/openssl/ssl.h \
         include/openssl/ui.h \
         include/openssl/x509.h \
         include/openssl/x509v3.h \
         include/openssl/x509_acert.h \
         include/openssl/x509_vfy.h \
         include/crypto/dso_conf.h \
         providers/implementations/asymciphers/rsa_enc.inc \
         providers/implementations/asymciphers/sm2_enc.inc \
         providers/implementations/exchange/dh_exch.inc \
         providers/implementations/exchange/ecdh_exch.inc \
         providers/implementations/exchange/ecx_exch.inc \
         providers/implementations/encode_decode/decode_der2key.inc \
         providers/implementations/encode_decode/decode_epki2pki.inc \
         providers/implementations/encode_decode/decode_pem2der.inc \
         providers/implementations/encode_decode/decode_pvk2key.inc \
         providers/implementations/encode_decode/decode_spki2typespki.inc \
         providers/implementations/encode_decode/encode_key2any.inc \
         providers/implementations/encode_decode/encode_key2ms.inc \
         providers/implementations/kdfs/argon2.inc \
         providers/implementations/kdfs/hkdf.inc \
         providers/implementations/kdfs/hmacdrbg_kdf.inc \
         providers/implementations/kdfs/kbkdf.inc \
         providers/implementations/kdfs/krb5kdf.inc \
         providers/implementations/kdfs/pbkdf1.inc \
         providers/implementations/kdfs/pbkdf2.inc \
         providers/implementations/kdfs/pkcs12kdf.inc \
         providers/implementations/kdfs/pvkkdf.inc \
         providers/implementations/kdfs/scrypt.inc \
         providers/implementations/kdfs/sshkdf.inc \
         providers/implementations/kdfs/sskdf.inc \
         providers/implementations/kdfs/tls1_prf.inc \
         providers/implementations/kdfs/x942kdf.inc \
         providers/implementations/kem/ec_kem.inc \
         providers/implementations/kem/ecx_kem.inc \
         providers/implementations/kem/ml_kem_kem.inc \
         providers/implementations/kem/rsa_kem.inc \
         providers/implementations/keymgmt/dh_kmgmt.inc \
         providers/implementations/keymgmt/dsa_kmgmt.inc \
         providers/implementations/keymgmt/ecx_kmgmt.inc \
         providers/implementations/keymgmt/lms_kmgmt.inc \
         providers/implementations/keymgmt/mac_legacy_kmgmt.inc \
         providers/implementations/keymgmt/ml_dsa_kmgmt.inc \
         providers/implementations/keymgmt/ml_kem_kmgmt.inc \
         providers/implementations/keymgmt/mlx_kmgmt.inc \
         providers/implementations/keymgmt/slh_dsa_kmgmt.inc \
         providers/implementations/keymgmt/template_kmgmt.inc \
         providers/implementations/signature/dsa_sig.inc \
         providers/implementations/signature/ecdsa_sig.inc \
         providers/implementations/signature/eddsa_sig.inc \
         providers/implementations/signature/ml_dsa_sig.inc \
         providers/implementations/signature/rsa_sig.inc \
         providers/implementations/signature/slh_dsa_sig.inc \
         providers/implementations/signature/sm2_sig.inc \
         providers/implementations/skeymgmt/generic.inc \
         providers/implementations/storemgmt/file_store_any2obj.inc \
         providers/implementations/storemgmt/file_store.inc \
         providers/implementations/storemgmt/winstore_store.inc \
         providers/implementations/ciphers/cipher_aes_cbc_hmac_sha.inc \
         providers/implementations/ciphers/cipher_aes_cbc_hmac_sha_etm.inc \
         providers/implementations/ciphers/cipher_aes_gcm_siv.inc \
         providers/implementations/ciphers/cipher_aes_ocb.inc \
         providers/implementations/ciphers/cipher_aes_siv.inc \
         providers/implementations/ciphers/cipher_aes_wrp.inc \
         providers/implementations/ciphers/cipher_aes_xts.inc \
         providers/implementations/ciphers/ciphercommon.inc \
         providers/implementations/ciphers/ciphercommon_ccm.inc \
         providers/implementations/ciphers/ciphercommon_gcm.inc \
         providers/implementations/ciphers/cipher_chacha20.inc \
         providers/implementations/ciphers/cipher_chacha20_poly1305.inc \
         providers/implementations/ciphers/cipher_null.inc \
         providers/implementations/ciphers/cipher_rc4_hmac_md5.inc \
         providers/implementations/ciphers/cipher_sm4_xts.inc \
         providers/implementations/digests/blake2_prov.inc \
         providers/implementations/digests/digestcommon.inc \
         providers/implementations/digests/mdc2_prov.inc \
         providers/implementations/digests/sha3_prov.inc \
         providers/implementations/include/prov/blake2_params.inc \
         providers/implementations/macs/cmac_prov.inc \
         providers/implementations/macs/gmac_prov.inc \
         providers/implementations/macs/hmac_prov.inc \
         providers/implementations/macs/kmac_prov.inc \
         providers/implementations/macs/poly1305_prov.inc \
         providers/implementations/macs/siphash_prov.inc \
         providers/implementations/rands/drbg_ctr.inc \
         providers/implementations/rands/drbg_hash.inc \
         providers/implementations/rands/drbg_hmac.inc \
         providers/implementations/rands/fips_crng_test.inc \
         providers/implementations/rands/seed_src.inc \
         providers/implementations/rands/seed_src_jitter.inc \
         providers/implementations/rands/test_rng.inc

GENERATE[include/openssl/asn1.h]=include/openssl/asn1.h.in
GENERATE[include/openssl/asn1t.h]=include/openssl/asn1t.h.in
GENERATE[include/openssl/bio.h]=include/openssl/bio.h.in
GENERATE[include/openssl/cmp.h]=include/openssl/cmp.h.in
GENERATE[include/openssl/cms.h]=include/openssl/cms.h.in
GENERATE[include/openssl/conf.h]=include/openssl/conf.h.in
GENERATE[include/openssl/comp.h]=include/openssl/comp.h.in
# include/openssl/configuration.h is generated by configdata.pm
# We still need this information for the FIPS module checksum, but the attribute
# 'skip' ensures that nothing is actually done with it.
GENERATE[include/openssl/configuration.h]{skip}=include/openssl/configuration.h.in
GENERATE[include/openssl/crmf.h]=include/openssl/crmf.h.in
GENERATE[include/openssl/crypto.h]=include/openssl/crypto.h.in
GENERATE[include/openssl/ct.h]=include/openssl/ct.h.in
GENERATE[include/openssl/err.h]=include/openssl/err.h.in
GENERATE[include/openssl/ess.h]=include/openssl/ess.h.in
GENERATE[include/openssl/fipskey.h]=include/openssl/fipskey.h.in
GENERATE[include/openssl/lhash.h]=include/openssl/lhash.h.in
GENERATE[include/openssl/ocsp.h]=include/openssl/ocsp.h.in
GENERATE[include/openssl/opensslv.h]=include/openssl/opensslv.h.in
GENERATE[include/openssl/pkcs12.h]=include/openssl/pkcs12.h.in
GENERATE[include/openssl/pkcs7.h]=include/openssl/pkcs7.h.in
GENERATE[include/openssl/safestack.h]=include/openssl/safestack.h.in
GENERATE[include/openssl/srp.h]=include/openssl/srp.h.in
GENERATE[include/openssl/ssl.h]=include/openssl/ssl.h.in
GENERATE[include/openssl/ui.h]=include/openssl/ui.h.in
GENERATE[include/openssl/x509.h]=include/openssl/x509.h.in
GENERATE[include/openssl/x509v3.h]=include/openssl/x509v3.h.in
GENERATE[include/openssl/x509_acert.h]=include/openssl/x509_acert.h.in
GENERATE[include/openssl/x509_vfy.h]=include/openssl/x509_vfy.h.in
GENERATE[include/crypto/dso_conf.h]=include/crypto/dso_conf.h.in

DEPEND[providers/implementations/asymciphers/rsa_enc.inc \
       providers/implementations/asymciphers/sm2_enc.inc \
       providers/implementations/exchange/dh_exch.inc \
       providers/implementations/exchange/ecdh_exch.inc \
       providers/implementations/exchange/ecx_exch.inc \
       providers/implementations/encode_decode/decode_der2key.inc \
       providers/implementations/encode_decode/decode_epki2pki.inc \
       providers/implementations/encode_decode/decode_pem2der.inc \
       providers/implementations/encode_decode/decode_pvk2key.inc \
       providers/implementations/encode_decode/decode_spki2typespki.inc \
       providers/implementations/encode_decode/encode_key2any.inc \
       providers/implementations/encode_decode/encode_key2ms.inc \
       providers/implementations/kdfs/argon2.inc \
       providers/implementations/kdfs/hkdf.inc \
       providers/implementations/kdfs/hmacdrbg_kdf.inc \
       providers/implementations/kdfs/kbkdf.inc \
       providers/implementations/kdfs/krb5kdf.inc \
       providers/implementations/kdfs/pbkdf1.inc \
       providers/implementations/kdfs/pbkdf2.inc \
       providers/implementations/kdfs/pkcs12kdf.inc \
       providers/implementations/kdfs/pvkkdf.inc \
       providers/implementations/kdfs/scrypt.inc \
       providers/implementations/kdfs/sshkdf.inc \
       providers/implementations/kdfs/sskdf.inc \
       providers/implementations/kdfs/tls1_prf.inc \
       providers/implementations/kdfs/x942kdf.inc \
       providers/implementations/kem/ec_kem.inc \
       providers/implementations/kem/ecx_kem.inc \
       providers/implementations/kem/ml_kem_kem.inc \
       providers/implementations/kem/rsa_kem.inc \
       providers/implementations/keymgmt/dh_kmgmt.inc \
       providers/implementations/keymgmt/dsa_kmgmt.inc \
       providers/implementations/keymgmt/ecx_kmgmt.inc \
       providers/implementations/keymgmt/lms_kmgmt.inc \
       providers/implementations/keymgmt/mac_legacy_kmgmt.inc \
       providers/implementations/keymgmt/ml_dsa_kmgmt.inc \
       providers/implementations/keymgmt/ml_kem_kmgmt.inc \
       providers/implementations/keymgmt/mlx_kmgmt.inc \
       providers/implementations/keymgmt/slh_dsa_kmgmt.inc \
       providers/implementations/keymgmt/template_kmgmt.inc \
       providers/implementations/signature/dsa_sig.inc \
       providers/implementations/signature/ecdsa_sig.inc \
       providers/implementations/signature/eddsa_sig.inc \
       providers/implementations/signature/ml_dsa_sig.inc \
       providers/implementations/signature/rsa_sig.inc \
       providers/implementations/signature/slh_dsa_sig.inc \
       providers/implementations/signature/sm2_sig.inc \
       providers/implementations/skeymgmt/generic.inc \
       providers/implementations/storemgmt/file_store_any2obj.inc \
       providers/implementations/storemgmt/file_store.inc \
       providers/implementations/storemgmt/winstore_store.inc \
       providers/implementations/ciphers/cipher_aes_cbc_hmac_sha.inc \
       providers/implementations/ciphers/cipher_aes_cbc_hmac_sha_etm.inc \
       providers/implementations/ciphers/cipher_aes_gcm_siv.inc \
       providers/implementations/ciphers/cipher_aes_ocb.inc \
       providers/implementations/ciphers/cipher_aes_siv.inc \
       providers/implementations/ciphers/cipher_aes_wrp.inc \
       providers/implementations/ciphers/cipher_aes_xts.inc \
       providers/implementations/ciphers/ciphercommon.inc \
       providers/implementations/ciphers/ciphercommon_ccm.inc \
       providers/implementations/ciphers/ciphercommon_gcm.inc \
       providers/implementations/ciphers/cipher_chacha20.inc \
       providers/implementations/ciphers/cipher_chacha20_poly1305.inc \
       providers/implementations/ciphers/cipher_null.inc \
       providers/implementations/ciphers/cipher_rc4_hmac_md5.inc \
       providers/implementations/ciphers/cipher_sm4_xts.inc \
       providers/implementations/digests/blake2_prov.inc \
       providers/implementations/digests/digestcommon.inc \
       providers/implementations/digests/mdc2_prov.inc \
       providers/implementations/digests/sha3_prov.inc \
       providers/implementations/include/prov/blake2_params.inc \
       providers/implementations/macs/cmac_prov.inc \
       providers/implementations/macs/gmac_prov.inc \
       providers/implementations/macs/hmac_prov.inc \
       providers/implementations/macs/kmac_prov.inc \
       providers/implementations/macs/poly1305_prov.inc \
       providers/implementations/macs/siphash_prov.inc \
       providers/implementations/rands/drbg_ctr.inc \
       providers/implementations/rands/drbg_hash.inc \
       providers/implementations/rands/drbg_hmac.inc \
       providers/implementations/rands/fips_crng_test.inc \
       providers/implementations/rands/seed_src.inc \
       providers/implementations/rands/seed_src_jitter.inc \
       providers/implementations/rands/test_rng.inc \
       include/openssl/core_names.h]=util/perl|OpenSSL/paramnames.pm
GENERATE[providers/implementations/asymciphers/rsa_enc.inc]=\
    providers/implementations/asymciphers/rsa_enc.inc.in
GENERATE[providers/implementations/asymciphers/sm2_enc.inc]=\
    providers/implementations/asymciphers/sm2_enc.inc.in
GENERATE[providers/implementations/exchange/dh_exch.inc]=\
    providers/implementations/exchange/dh_exch.inc.in
GENERATE[providers/implementations/exchange/ecdh_exch.inc]=\
    providers/implementations/exchange/ecdh_exch.inc.in
GENERATE[providers/implementations/exchange/ecx_exch.inc]=\
    providers/implementations/exchange/ecx_exch.inc.in
GENERATE[providers/implementations/encode_decode/decode_der2key.inc]=\
    providers/implementations/encode_decode/decode_der2key.inc.in
GENERATE[providers/implementations/encode_decode/decode_epki2pki.inc]=\
    providers/implementations/encode_decode/decode_epki2pki.inc.in
GENERATE[providers/implementations/encode_decode/decode_pem2der.inc]=\
    providers/implementations/encode_decode/decode_pem2der.inc.in
GENERATE[providers/implementations/encode_decode/decode_pvk2key.inc]=\
    providers/implementations/encode_decode/decode_pvk2key.inc.in
GENERATE[providers/implementations/encode_decode/decode_spki2typespki.inc]=\
    providers/implementations/encode_decode/decode_spki2typespki.inc.in
GENERATE[providers/implementations/encode_decode/encode_key2any.inc]=\
    providers/implementations/encode_decode/encode_key2any.inc.in
GENERATE[providers/implementations/encode_decode/encode_key2ms.inc]=\
    providers/implementations/encode_decode/encode_key2ms.inc.in
GENERATE[providers/implementations/kdfs/argon2.inc]=\
    providers/implementations/kdfs/argon2.inc.in
GENERATE[providers/implementations/kdfs/hkdf.inc]=\
    providers/implementations/kdfs/hkdf.inc.in
GENERATE[providers/implementations/kdfs/hmacdrbg_kdf.inc]=\
    providers/implementations/kdfs/hmacdrbg_kdf.inc.in
GENERATE[providers/implementations/kdfs/kbkdf.inc]=\
    providers/implementations/kdfs/kbkdf.inc.in
GENERATE[providers/implementations/kdfs/krb5kdf.inc]=\
    providers/implementations/kdfs/krb5kdf.inc.in
GENERATE[providers/implementations/kdfs/pbkdf1.inc]=\
    providers/implementations/kdfs/pbkdf1.inc.in
GENERATE[providers/implementations/kdfs/pbkdf2.inc]=\
    providers/implementations/kdfs/pbkdf2.inc.in
GENERATE[providers/implementations/kdfs/pkcs12kdf.inc]=\
    providers/implementations/kdfs/pkcs12kdf.inc.in
GENERATE[providers/implementations/kdfs/pvkkdf.inc]=\
    providers/implementations/kdfs/pvkkdf.inc.in
GENERATE[providers/implementations/kdfs/scrypt.inc]=\
    providers/implementations/kdfs/scrypt.inc.in
GENERATE[providers/implementations/kdfs/sshkdf.inc]=\
    providers/implementations/kdfs/sshkdf.inc.in
GENERATE[providers/implementations/kdfs/sskdf.inc]=\
    providers/implementations/kdfs/sskdf.inc.in
GENERATE[providers/implementations/kdfs/tls1_prf.inc]=\
    providers/implementations/kdfs/tls1_prf.inc.in
GENERATE[providers/implementations/kdfs/x942kdf.inc]=\
    providers/implementations/kdfs/x942kdf.inc.in
GENERATE[providers/implementations/kem/ec_kem.inc]=\
    providers/implementations/kem/ec_kem.inc.in
GENERATE[providers/implementations/kem/ecx_kem.inc]=\
    providers/implementations/kem/ecx_kem.inc.in
GENERATE[providers/implementations/kem/ml_kem_kem.inc]=\
    providers/implementations/kem/ml_kem_kem.inc.in
GENERATE[providers/implementations/kem/rsa_kem.inc]=\
    providers/implementations/kem/rsa_kem.inc.in
GENERATE[providers/implementations/keymgmt/dh_kmgmt.inc]=\
    providers/implementations/keymgmt/dh_kmgmt.inc.in
GENERATE[providers/implementations/keymgmt/dsa_kmgmt.inc]=\
    providers/implementations/keymgmt/dsa_kmgmt.inc.in
GENERATE[providers/implementations/keymgmt/ecx_kmgmt.inc]=\
    providers/implementations/keymgmt/ecx_kmgmt.inc.in
GENERATE[providers/implementations/keymgmt/lms_kmgmt.inc]=\
    providers/implementations/keymgmt/lms_kmgmt.inc.in
GENERATE[providers/implementations/keymgmt/mac_legacy_kmgmt.inc]=\
    providers/implementations/keymgmt/mac_legacy_kmgmt.inc.in
GENERATE[providers/implementations/keymgmt/ml_dsa_kmgmt.inc]=\
    providers/implementations/keymgmt/ml_dsa_kmgmt.inc.in
GENERATE[providers/implementations/keymgmt/ml_kem_kmgmt.inc]=\
    providers/implementations/keymgmt/ml_kem_kmgmt.inc.in
GENERATE[providers/implementations/keymgmt/mlx_kmgmt.inc]=\
    providers/implementations/keymgmt/mlx_kmgmt.inc.in
GENERATE[providers/implementations/keymgmt/slh_dsa_kmgmt.inc]=\
    providers/implementations/keymgmt/slh_dsa_kmgmt.inc.in
GENERATE[providers/implementations/keymgmt/template_kmgmt.inc]=\
    providers/implementations/keymgmt/template_kmgmt.inc.in
GENERATE[providers/implementations/signature/dsa_sig.inc]=\
    providers/implementations/signature/dsa_sig.inc.in
GENERATE[providers/implementations/signature/ecdsa_sig.inc]=\
    providers/implementations/signature/ecdsa_sig.inc.in
GENERATE[providers/implementations/signature/eddsa_sig.inc]=\
    providers/implementations/signature/eddsa_sig.inc.in
GENERATE[providers/implementations/signature/ml_dsa_sig.inc]=\
    providers/implementations/signature/ml_dsa_sig.inc.in
GENERATE[providers/implementations/signature/rsa_sig.inc]=\
    providers/implementations/signature/rsa_sig.inc.in
GENERATE[providers/implementations/signature/slh_dsa_sig.inc]=\
    providers/implementations/signature/slh_dsa_sig.inc.in
GENERATE[providers/implementations/signature/sm2_sig.inc]=\
    providers/implementations/signature/sm2_sig.inc.in
GENERATE[providers/implementations/skeymgmt/generic.inc]=\
    providers/implementations/skeymgmt/generic.inc.in
GENERATE[providers/implementations/storemgmt/file_store_any2obj.inc]=\
    providers/implementations/storemgmt/file_store_any2obj.inc.in
GENERATE[providers/implementations/storemgmt/file_store.inc]=\
    providers/implementations/storemgmt/file_store.inc.in
GENERATE[providers/implementations/storemgmt/winstore_store.inc]=\
    providers/implementations/storemgmt/winstore_store.inc.in
GENERATE[providers/implementations/ciphers/cipher_aes_cbc_hmac_sha.inc]=\
    providers/implementations/ciphers/cipher_aes_cbc_hmac_sha.inc.in
GENERATE[providers/implementations/ciphers/cipher_aes_cbc_hmac_sha_etm.inc]=\
    providers/implementations/ciphers/cipher_aes_cbc_hmac_sha_etm.inc.in
GENERATE[providers/implementations/ciphers/cipher_aes_gcm_siv.inc]=\
    providers/implementations/ciphers/cipher_aes_gcm_siv.inc.in
GENERATE[providers/implementations/ciphers/cipher_aes_ocb.inc]=\
    providers/implementations/ciphers/cipher_aes_ocb.inc.in
GENERATE[providers/implementations/ciphers/cipher_aes_siv.inc]=\
    providers/implementations/ciphers/cipher_aes_siv.inc.in
GENERATE[providers/implementations/ciphers/cipher_aes_wrp.inc]=\
    providers/implementations/ciphers/cipher_aes_wrp.inc.in
GENERATE[providers/implementations/ciphers/cipher_aes_xts.inc]=\
    providers/implementations/ciphers/cipher_aes_xts.inc.in
GENERATE[providers/implementations/ciphers/ciphercommon.inc]=\
    providers/implementations/ciphers/ciphercommon.inc.in
GENERATE[providers/implementations/ciphers/ciphercommon_ccm.inc]=\
    providers/implementations/ciphers/ciphercommon_ccm.inc.in
GENERATE[providers/implementations/ciphers/ciphercommon_gcm.inc]=\
    providers/implementations/ciphers/ciphercommon_gcm.inc.in
GENERATE[providers/implementations/ciphers/cipher_chacha20.inc]=\
    providers/implementations/ciphers/cipher_chacha20.inc.in
GENERATE[providers/implementations/ciphers/cipher_chacha20_poly1305.inc]=\
    providers/implementations/ciphers/cipher_chacha20_poly1305.inc.in
GENERATE[providers/implementations/ciphers/cipher_null.inc]=\
    providers/implementations/ciphers/cipher_null.inc.in
GENERATE[providers/implementations/ciphers/cipher_rc4_hmac_md5.inc]=\
    providers/implementations/ciphers/cipher_rc4_hmac_md5.inc.in
GENERATE[providers/implementations/ciphers/cipher_sm4_xts.inc]=\
    providers/implementations/ciphers/cipher_sm4_xts.inc.in
GENERATE[providers/implementations/digests/blake2_prov.inc]=\
    providers/implementations/digests/blake2_prov.inc.in
GENERATE[providers/implementations/digests/digestcommon.inc]=\
    providers/implementations/digests/digestcommon.inc.in
GENERATE[providers/implementations/digests/mdc2_prov.inc]=\
    providers/implementations/digests/mdc2_prov.inc.in
GENERATE[providers/implementations/digests/sha3_prov.inc]=\
    providers/implementations/digests/sha3_prov.inc.in
GENERATE[providers/implementations/include/prov/blake2_params.inc]=\
    providers/implementations/include/prov/blake2_params.inc.in
GENERATE[providers/implementations/macs/cmac_prov.inc]=\
    providers/implementations/macs/cmac_prov.inc.in
GENERATE[providers/implementations/macs/gmac_prov.inc]=\
    providers/implementations/macs/gmac_prov.inc.in
GENERATE[providers/implementations/macs/hmac_prov.inc]=\
    providers/implementations/macs/hmac_prov.inc.in
GENERATE[providers/implementations/macs/kmac_prov.inc]=\
    providers/implementations/macs/kmac_prov.inc.in
GENERATE[providers/implementations/macs/poly1305_prov.inc]=\
    providers/implementations/macs/poly1305_prov.inc.in
GENERATE[providers/implementations/macs/siphash_prov.inc]=\
    providers/implementations/macs/siphash_prov.inc.in
GENERATE[providers/implementations/rands/drbg_ctr.inc]=\
    providers/implementations/rands/drbg_ctr.inc.in
GENERATE[providers/implementations/rands/drbg_hash.inc]=\
    providers/implementations/rands/drbg_hash.inc.in
GENERATE[providers/implementations/rands/drbg_hmac.inc]=\
    providers/implementations/rands/drbg_hmac.inc.in
GENERATE[providers/implementations/rands/fips_crng_test.inc]=\
    providers/implementations/rands/fips_crng_test.inc.in
GENERATE[providers/implementations/rands/seed_src.inc]=\
    providers/implementations/rands/seed_src.inc.in
GENERATE[providers/implementations/rands/seed_src_jitter.inc]=\
    providers/implementations/rands/seed_src_jitter.inc.in
GENERATE[providers/implementations/rands/test_rng.inc]=\
    providers/implementations/rands/test_rng.inc.in
GENERATE[include/openssl/core_names.h]=include/openssl/core_names.h.in

IF[{- defined $target{shared_defflag} -}]
  SHARED_SOURCE[libcrypto]=libcrypto.ld
  SHARED_SOURCE[libssl]=libssl.ld

  GENERATE[libcrypto.ld]=util/libcrypto.num libcrypto
  GENERATE[libssl.ld]=util/libssl.num libssl
  DEPEND[libcrypto.ld libssl.ld]=configdata.pm util/perl/OpenSSL/Ordinals.pm
ENDIF

IF[{- $config{target} =~ /^(?:Cygwin|mingw|VC-|BC-)/ -}]
  GENERATE[libcrypto.rc]=util/mkrc.pl libcrypto
  GENERATE[libssl.rc]=util/mkrc.pl libssl
  DEPEND[libcrypto.rc libssl.rc]=configdata.pm

  SHARED_SOURCE[libcrypto]=libcrypto.rc
  SHARED_SOURCE[libssl]=libssl.rc
ENDIF

# This file sets the build directory up for CMake inclusion
# Note: This generation of OpenSSLConfig[Version].cmake is used
# for building openssl locally, and so the build variables are 
# taken from builddata.pm rather than installdata.pm.  For exportable
# versions of these generated files, you'll find them in the exporters
# directory
GENERATE[OpenSSLConfig.cmake]=exporters/cmake/OpenSSLConfig.cmake.in
DEPEND[OpenSSLConfig.cmake]=builddata.pm
GENERATE[OpenSSLConfigVersion.cmake]=exporters/cmake/OpenSSLConfigVersion.cmake.in
DEPEND[OpenSSLConfigVersion.cmake]=builddata.pm
DEPEND[OpenSSLConfigVersion.cmake]=OpenSSLConfig.cmake
DEPEND[""]=OpenSSLConfigVersion.cmake

# This file sets the build directory up for pkg-config
GENERATE[libcrypto.pc]=exporters/pkg-config/libcrypto.pc.in
DEPEND[libcrypto.pc]=builddata.pm
GENERATE[libssl.pc]=exporters/pkg-config/libssl.pc.in
DEPEND[libssl.pc]=builddata.pm
GENERATE[openssl.pc]=exporters/pkg-config/openssl.pc.in
DEPEND[openssl.pc]=builddata.pm
DEPEND[openssl.pc]=libcrypto.pc libssl.pc

GENERATE[builddata.pm]=util/mkinstallvars.pl \
    PREFIX=. BINDIR=apps APPLINKDIR=ms \
    LIBDIR= INCLUDEDIR=include "INCLUDEDIR=$(SRCDIR)/include" \
    ENGINESDIR=engines MODULESDIR=providers \
    libdir= CMAKECONFIGDIR= PKGCONFIGDIR= \
    "VERSION=$(VERSION)" "LDLIBS=$(LIB_EX_LIBS)"

DEPEND[""]=openssl.pc
