NTMakefile   [plain text]


########################################################################
#
# Copyright (c) 2009, Secure Endpoints Inc.
# All rights reserved.
# 
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 
# - Redistributions of source code must retain the above copyright
#   notice, this list of conditions and the following disclaimer.
# 
# - Redistributions in binary form must reproduce the above copyright
#   notice, this list of conditions and the following disclaimer in
#   the documentation and/or other materials provided with the
#   distribution.
# 
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
# 

RELDIR=lib\asn1

!include ../../windows/NTMakefile.w32

gen_files_k5 =						    \
	$(OBJ)\asn1_AD_AND_OR.x				    \
	$(OBJ)\asn1_AD_IF_RELEVANT.x			    \
	$(OBJ)\asn1_AD_KDCIssued.x			    \
	$(OBJ)\asn1_AD_LoginAlias.x			    \
	$(OBJ)\asn1_AD_MANDATORY_FOR_KDC.x		    \
	$(OBJ)\asn1_APOptions.x				    \
	$(OBJ)\asn1_AP_REP.x				    \
	$(OBJ)\asn1_AP_REQ.x				    \
	$(OBJ)\asn1_AS_REP.x				    \
	$(OBJ)\asn1_AS_REQ.x				    \
	$(OBJ)\asn1_AUTHDATA_TYPE.x			    \
	$(OBJ)\asn1_Authenticator.x			    \
	$(OBJ)\asn1_AuthorizationData.x			    \
	$(OBJ)\asn1_AuthorizationDataElement.x		    \
	$(OBJ)\asn1_CKSUMTYPE.x				    \
	$(OBJ)\asn1_ChangePasswdDataMS.x		    \
	$(OBJ)\asn1_Checksum.x				    \
	$(OBJ)\asn1_ENCTYPE.x				    \
	$(OBJ)\asn1_ETYPE_INFO.x			    \
	$(OBJ)\asn1_ETYPE_INFO2.x			    \
	$(OBJ)\asn1_ETYPE_INFO2_ENTRY.x			    \
	$(OBJ)\asn1_ETYPE_INFO_ENTRY.x			    \
	$(OBJ)\asn1_EncAPRepPart.x			    \
	$(OBJ)\asn1_EncASRepPart.x			    \
	$(OBJ)\asn1_EncKDCRepPart.x			    \
	$(OBJ)\asn1_EncKrbCredPart.x			    \
	$(OBJ)\asn1_EncKrbPrivPart.x			    \
	$(OBJ)\asn1_EncTGSRepPart.x			    \
	$(OBJ)\asn1_EncTicketPart.x			    \
	$(OBJ)\asn1_EncryptedData.x			    \
	$(OBJ)\asn1_EncryptionKey.x			    \
	$(OBJ)\asn1_EtypeList.x				    \
	$(OBJ)\asn1_FastOptions.x			    \
	$(OBJ)\asn1_HostAddress.x			    \
	$(OBJ)\asn1_HostAddresses.x			    \
	$(OBJ)\asn1_KDCOptions.x			    \
	$(OBJ)\asn1_KDC_REP.x				    \
	$(OBJ)\asn1_KDC_REQ.x				    \
	$(OBJ)\asn1_KDC_REQ_BODY.x			    \
	$(OBJ)\asn1_KRB5SignedPath.x			    \
	$(OBJ)\asn1_KRB5SignedPathData.x		    \
	$(OBJ)\asn1_KRB_CRED.x				    \
	$(OBJ)\asn1_KRB_ERROR.x				    \
	$(OBJ)\asn1_KRB_PRIV.x				    \
	$(OBJ)\asn1_KRB_SAFE.x				    \
	$(OBJ)\asn1_KRB_SAFE_BODY.x			    \
	$(OBJ)\asn1_KerberosString.x			    \
	$(OBJ)\asn1_KerberosTime.x			    \
	$(OBJ)\asn1_KrbCredInfo.x			    \
	$(OBJ)\asn1_KrbFastArmor.x			    \
	$(OBJ)\asn1_KrbFastArmoredRep.x			    \
	$(OBJ)\asn1_KrbFastArmoredReq.x			    \
	$(OBJ)\asn1_KrbFastFinished.x			    \
	$(OBJ)\asn1_KrbFastReq.x			    \
	$(OBJ)\asn1_KrbFastResponse.x			    \
	$(OBJ)\asn1_LR_TYPE.x				    \
	$(OBJ)\asn1_LastReq.x				    \
	$(OBJ)\asn1_MESSAGE_TYPE.x			    \
	$(OBJ)\asn1_METHOD_DATA.x			    \
	$(OBJ)\asn1_NAME_TYPE.x				    \
	$(OBJ)\asn1_PA_FX_FAST_REPLY.x			    \
	$(OBJ)\asn1_PA_FX_FAST_REQUEST.x		    \
	$(OBJ)\asn1_PADATA_TYPE.x			    \
	$(OBJ)\asn1_PA_ClientCanonicalized.x		    \
	$(OBJ)\asn1_PA_ClientCanonicalizedNames.x	    \
	$(OBJ)\asn1_PA_DATA.x				    \
	$(OBJ)\asn1_PA_ENC_SAM_RESPONSE_ENC.x		    \
	$(OBJ)\asn1_PA_ENC_TS_ENC.x			    \
	$(OBJ)\asn1_PA_PAC_REQUEST.x			    \
	$(OBJ)\asn1_PA_S4U2Self.x			    \
	$(OBJ)\asn1_PA_SAM_CHALLENGE_2.x		    \
	$(OBJ)\asn1_PA_SAM_CHALLENGE_2_BODY.x		    \
	$(OBJ)\asn1_PA_SAM_REDIRECT.x			    \
	$(OBJ)\asn1_PA_SAM_RESPONSE_2.x			    \
	$(OBJ)\asn1_PA_SAM_TYPE.x			    \
	$(OBJ)\asn1_PA_SERVER_REFERRAL_DATA.x		    \
	$(OBJ)\asn1_PA_ServerReferralData.x		    \
	$(OBJ)\asn1_PA_SvrReferralData.x		    \
	$(OBJ)\asn1_PROV_SRV_LOCATION.x			    \
	$(OBJ)\asn1_Principal.x				    \
	$(OBJ)\asn1_PrincipalName.x			    \
	$(OBJ)\asn1_Principals.x			    \
	$(OBJ)\asn1_Realm.x				    \
	$(OBJ)\asn1_SAMFlags.x				    \
	$(OBJ)\asn1_TGS_REP.x				    \
	$(OBJ)\asn1_TGS_REQ.x				    \
	$(OBJ)\asn1_TYPED_DATA.x			    \
	$(OBJ)\asn1_Ticket.x				    \
	$(OBJ)\asn1_TicketFlags.x			    \
	$(OBJ)\asn1_TransitedEncoding.x			    \
	$(OBJ)\asn1_TypedData.x				    \
	$(OBJ)\asn1_krb5int32.x				    \
	$(OBJ)\asn1_krb5uint32.x

gen_files_cms =						    \
	$(OBJ)\asn1_CMSAttributes.x			    \
	$(OBJ)\asn1_CMSCBCParameter.x			    \
	$(OBJ)\asn1_CMSEncryptedData.x			    \
	$(OBJ)\asn1_CMSIdentifier.x			    \
	$(OBJ)\asn1_CMSRC2CBCParameter.x		    \
	$(OBJ)\asn1_CMSVersion.x			    \
	$(OBJ)\asn1_CertificateList.x			    \
	$(OBJ)\asn1_CertificateRevocationLists.x	    \
	$(OBJ)\asn1_CertificateSet.x			    \
	$(OBJ)\asn1_ContentEncryptionAlgorithmIdentifier.x  \
	$(OBJ)\asn1_ContentInfo.x			    \
	$(OBJ)\asn1_ContentType.x			    \
	$(OBJ)\asn1_DigestAlgorithmIdentifier.x		    \
	$(OBJ)\asn1_DigestAlgorithmIdentifiers.x	    \
	$(OBJ)\asn1_EncapsulatedContentInfo.x		    \
	$(OBJ)\asn1_EncryptedContent.x			    \
	$(OBJ)\asn1_EncryptedContentInfo.x		    \
	$(OBJ)\asn1_EncryptedKey.x			    \
	$(OBJ)\asn1_EnvelopedData.x			    \
	$(OBJ)\asn1_IssuerAndSerialNumber.x		    \
	$(OBJ)\asn1_KeyEncryptionAlgorithmIdentifier.x	    \
	$(OBJ)\asn1_KeyTransRecipientInfo.x		    \
	$(OBJ)\asn1_MessageDigest.x			    \
	$(OBJ)\asn1_OriginatorInfo.x			    \
	$(OBJ)\asn1_RecipientIdentifier.x		    \
	$(OBJ)\asn1_RecipientInfo.x			    \
	$(OBJ)\asn1_RecipientInfos.x			    \
	$(OBJ)\asn1_SignatureAlgorithmIdentifier.x	    \
	$(OBJ)\asn1_SignatureValue.x			    \
	$(OBJ)\asn1_SignedData.x			    \
	$(OBJ)\asn1_SignerIdentifier.x			    \
	$(OBJ)\asn1_SignerInfo.x			    \
	$(OBJ)\asn1_SignerInfos.x			    \
	$(OBJ)\asn1_id_pkcs7.x				    \
	$(OBJ)\asn1_id_pkcs7_data.x			    \
	$(OBJ)\asn1_id_pkcs7_digestedData.x		    \
	$(OBJ)\asn1_id_pkcs7_encryptedData.x		    \
	$(OBJ)\asn1_id_pkcs7_envelopedData.x		    \
	$(OBJ)\asn1_id_pkcs7_signedAndEnvelopedData.x	    \
	$(OBJ)\asn1_id_pkcs7_signedData.x		    \
	$(OBJ)\asn1_UnprotectedAttributes.x

gen_files_rfc2459 =					    \
	$(OBJ)\asn1_AccessDescription.x			    \
	$(OBJ)\asn1_AlgorithmIdentifier.x		    \
	$(OBJ)\asn1_Attribute.x				    \
	$(OBJ)\asn1_AttributeType.x			    \
	$(OBJ)\asn1_AttributeTypeAndValue.x		    \
	$(OBJ)\asn1_AttributeValue.x			    \
	$(OBJ)\asn1_AuthorityInfoAccessSyntax.x		    \
	$(OBJ)\asn1_AuthorityKeyIdentifier.x		    \
	$(OBJ)\asn1_BaseDistance.x			    \
	$(OBJ)\asn1_BasicConstraints.x			    \
	$(OBJ)\asn1_CRLCertificateList.x		    \
	$(OBJ)\asn1_CRLDistributionPoints.x		    \
	$(OBJ)\asn1_CRLReason.x				    \
	$(OBJ)\asn1_Certificate.x			    \
	$(OBJ)\asn1_CertificateSerialNumber.x		    \
	$(OBJ)\asn1_Certificates.x			    \
	$(OBJ)\asn1_DHPublicKey.x			    \
	$(OBJ)\asn1_DSAParams.x				    \
	$(OBJ)\asn1_DSAPublicKey.x			    \
	$(OBJ)\asn1_DSASigValue.x			    \
	$(OBJ)\asn1_DigestInfo.x			    \
	$(OBJ)\asn1_DirectoryString.x			    \
	$(OBJ)\asn1_DistributionPoint.x			    \
	$(OBJ)\asn1_DistributionPointName.x		    \
	$(OBJ)\asn1_DistributionPointReasonFlags.x	    \
	$(OBJ)\asn1_DHParameter.x			    \
	$(OBJ)\asn1_DomainParameters.x			    \
	$(OBJ)\asn1_ECParameters.x			    \
	$(OBJ)\asn1_ECPoint.x				    \
	$(OBJ)\asn1_ECDSA_Sig_Value.x			    \
	$(OBJ)\asn1_ExtKeyUsage.x			    \
	$(OBJ)\asn1_Extension.x				    \
	$(OBJ)\asn1_Extensions.x			    \
	$(OBJ)\asn1_GeneralName.x			    \
	$(OBJ)\asn1_GeneralNames.x			    \
	$(OBJ)\asn1_GeneralSubtree.x			    \
	$(OBJ)\asn1_GeneralSubtrees.x			    \
	$(OBJ)\asn1_KeyIdentifier.x			    \
	$(OBJ)\asn1_KeyUsage.x				    \
	$(OBJ)\asn1_Name.x				    \
	$(OBJ)\asn1_NameConstraints.x			    \
	$(OBJ)\asn1_OtherName.x				    \
	$(OBJ)\asn1_PKIXXmppAddr.x			    \
	$(OBJ)\asn1_ProxyCertInfo.x			    \
	$(OBJ)\asn1_ProxyPolicy.x			    \
	$(OBJ)\asn1_RDNSequence.x			    \
	$(OBJ)\asn1_RSAPrivateKey.x			    \
	$(OBJ)\asn1_RSAPublicKey.x			    \
	$(OBJ)\asn1_RelativeDistinguishedName.x		    \
	$(OBJ)\asn1_SubjectKeyIdentifier.x		    \
	$(OBJ)\asn1_SubjectPublicKeyInfo.x		    \
	$(OBJ)\asn1_TBSCRLCertList.x			    \
	$(OBJ)\asn1_TBSCertificate.x			    \
	$(OBJ)\asn1_Time.x				    \
	$(OBJ)\asn1_UniqueIdentifier.x			    \
	$(OBJ)\asn1_ValidationParms.x			    \
	$(OBJ)\asn1_Validity.x				    \
	$(OBJ)\asn1_Version.x				    \
	$(OBJ)\asn1_id_Userid.x				    \
	$(OBJ)\asn1_id_aes_128_cbc.x			    \
	$(OBJ)\asn1_id_aes_192_cbc.x			    \
	$(OBJ)\asn1_id_aes_256_cbc.x			    \
	$(OBJ)\asn1_id_at_commonName.x			    \
	$(OBJ)\asn1_id_at_countryName.x			    \
	$(OBJ)\asn1_id_at_generationQualifier.x		    \
	$(OBJ)\asn1_id_at_givenName.x			    \
	$(OBJ)\asn1_id_at_initials.x			    \
	$(OBJ)\asn1_id_at_localityName.x		    \
	$(OBJ)\asn1_id_at_name.x			    \
	$(OBJ)\asn1_id_at_organizationName.x		    \
	$(OBJ)\asn1_id_at_organizationalUnitName.x	    \
	$(OBJ)\asn1_id_at_pseudonym.x			    \
	$(OBJ)\asn1_id_at_serialNumber.x		    \
	$(OBJ)\asn1_id_at_stateOrProvinceName.x		    \
	$(OBJ)\asn1_id_at_streetAddress.x		    \
	$(OBJ)\asn1_id_at_surname.x			    \
	$(OBJ)\asn1_id_dhpublicnumber.x			    \
	$(OBJ)\asn1_id_domainComponent.x		    \
	$(OBJ)\asn1_id_dsa.x				    \
	$(OBJ)\asn1_id_dsa_with_sha1.x			    \
	$(OBJ)\asn1_id_ecDH.x				    \
	$(OBJ)\asn1_id_ecMQV.x				    \
	$(OBJ)\asn1_id_ecPublicKey.x			    \
	$(OBJ)\asn1_id_ec_group_secp160r1.x		    \
	$(OBJ)\asn1_id_ec_group_secp160r2.x		    \
	$(OBJ)\asn1_id_ec_group_secp256r1.x		    \
	$(OBJ)\asn1_id_ecdsa_with_SHA1.x		    \
	$(OBJ)\asn1_id_ecdsa_with_SHA256.x		    \
	$(OBJ)\asn1_id_heim_rsa_pkcs1_x509.x		    \
	$(OBJ)\asn1_id_ms_cert_enroll_domaincontroller.x    \
	$(OBJ)\asn1_id_ms_client_authentication.x	    \
	$(OBJ)\asn1_id_netscape.x			    \
	$(OBJ)\asn1_id_netscape_cert_comment.x		    \
	$(OBJ)\asn1_id_nistAlgorithm.x			    \
	$(OBJ)\asn1_id_nist_aes_algs.x			    \
	$(OBJ)\asn1_id_nist_sha_algs.x			    \
	$(OBJ)\asn1_id_pkcs1_md2WithRSAEncryption.x	    \
	$(OBJ)\asn1_id_pkcs1_md5WithRSAEncryption.x	    \
	$(OBJ)\asn1_id_pkcs1_rsaEncryption.x		    \
	$(OBJ)\asn1_id_pkcs1_sha1WithRSAEncryption.x	    \
	$(OBJ)\asn1_id_pkcs1_sha256WithRSAEncryption.x	    \
	$(OBJ)\asn1_id_pkcs1_sha384WithRSAEncryption.x	    \
	$(OBJ)\asn1_id_pkcs1_sha512WithRSAEncryption.x	    \
	$(OBJ)\asn1_id_pkcs2_md2.x			    \
	$(OBJ)\asn1_id_pkcs2_md4.x			    \
	$(OBJ)\asn1_id_pkcs2_md5.x			    \
	$(OBJ)\asn1_id_pkcs3_des_ede3_cbc.x		    \
	$(OBJ)\asn1_id_pkcs3_rc2_cbc.x			    \
	$(OBJ)\asn1_id_pkcs3_rc4.x			    \
	$(OBJ)\asn1_id_pkcs_1.x				    \
	$(OBJ)\asn1_id_pkcs_2.x				    \
	$(OBJ)\asn1_id_pkcs_3.x				    \
	$(OBJ)\asn1_id_pkix.x				    \
	$(OBJ)\asn1_id_pkix_kp.x			    \
	$(OBJ)\asn1_id_pkix_kp_OCSPSigning.x		    \
	$(OBJ)\asn1_id_pkix_kp_clientAuth.x		    \
	$(OBJ)\asn1_id_pkix_kp_emailProtection.x	    \
	$(OBJ)\asn1_id_pkix_kp_serverAuth.x		    \
	$(OBJ)\asn1_id_pkix_kp_timeStamping.x		    \
	$(OBJ)\asn1_id_pkix_on.x			    \
	$(OBJ)\asn1_id_pkix_on_dnsSRV.x			    \
	$(OBJ)\asn1_id_pkix_on_xmppAddr.x		    \
	$(OBJ)\asn1_id_pkix_pe.x			    \
	$(OBJ)\asn1_id_pkix_pe_authorityInfoAccess.x	    \
	$(OBJ)\asn1_id_pkix_pe_proxyCertInfo.x		    \
	$(OBJ)\asn1_id_pkix_ppl.x			    \
	$(OBJ)\asn1_id_pkix_ppl_anyLanguage.x		    \
	$(OBJ)\asn1_id_pkix_ppl_independent.x		    \
	$(OBJ)\asn1_id_pkix_ppl_inheritAll.x		    \
	$(OBJ)\asn1_id_rsa_digestAlgorithm.x		    \
	$(OBJ)\asn1_id_rsa_digest_md2.x			    \
	$(OBJ)\asn1_id_rsa_digest_md4.x			    \
	$(OBJ)\asn1_id_rsa_digest_md5.x			    \
	$(OBJ)\asn1_id_rsadsi_des_ede3_cbc.x		    \
	$(OBJ)\asn1_id_rsadsi_encalg.x			    \
	$(OBJ)\asn1_id_rsadsi_rc2_cbc.x			    \
	$(OBJ)\asn1_id_secsig_sha_1.x			    \
	$(OBJ)\asn1_id_sha224.x				    \
	$(OBJ)\asn1_id_sha256.x				    \
	$(OBJ)\asn1_id_sha384.x				    \
	$(OBJ)\asn1_id_sha512.x				    \
	$(OBJ)\asn1_id_uspkicommon_card_id.x		    \
	$(OBJ)\asn1_id_uspkicommon_piv_interim.x	    \
	$(OBJ)\asn1_id_x509_ce.x			    \
	$(OBJ)\asn1_id_x509_ce_authorityKeyIdentifier.x	    \
	$(OBJ)\asn1_id_x509_ce_basicConstraints.x	    \
	$(OBJ)\asn1_id_x509_ce_cRLDistributionPoints.x	    \
	$(OBJ)\asn1_id_x509_ce_cRLNumber.x		    \
	$(OBJ)\asn1_id_x509_ce_cRLReason.x		    \
	$(OBJ)\asn1_id_x509_ce_certificateIssuer.x	    \
	$(OBJ)\asn1_id_x509_ce_certificatePolicies.x	    \
	$(OBJ)\asn1_id_x509_ce_deltaCRLIndicator.x	    \
	$(OBJ)\asn1_id_x509_ce_extKeyUsage.x		    \
	$(OBJ)\asn1_id_x509_ce_freshestCRL.x		    \
	$(OBJ)\asn1_id_x509_ce_holdInstructionCode.x	    \
	$(OBJ)\asn1_id_x509_ce_inhibitAnyPolicy.x	    \
	$(OBJ)\asn1_id_x509_ce_invalidityDate.x		    \
	$(OBJ)\asn1_id_x509_ce_issuerAltName.x		    \
	$(OBJ)\asn1_id_x509_ce_issuingDistributionPoint.x   \
	$(OBJ)\asn1_id_x509_ce_keyUsage.x		    \
	$(OBJ)\asn1_id_x509_ce_nameConstraints.x	    \
	$(OBJ)\asn1_id_x509_ce_policyConstraints.x	    \
	$(OBJ)\asn1_id_x509_ce_policyMappings.x		    \
	$(OBJ)\asn1_id_x509_ce_privateKeyUsagePeriod.x	    \
	$(OBJ)\asn1_id_x509_ce_subjectAltName.x		    \
	$(OBJ)\asn1_id_x509_ce_subjectDirectoryAttributes.x \
	$(OBJ)\asn1_id_x509_ce_subjectKeyIdentifier.x	    \
	$(OBJ)\asn1_id_x520_at.x			    \
	$(OBJ)\asn1_id_x9_57.x

gen_files_pkinit =					    \
	$(OBJ)\asn1_id_pkinit.x				    \
	$(OBJ)\asn1_id_pkauthdata.x			    \
	$(OBJ)\asn1_id_pkdhkeydata.x			    \
	$(OBJ)\asn1_id_pkrkeydata.x			    \
	$(OBJ)\asn1_id_pkekuoid.x			    \
	$(OBJ)\asn1_id_pkkdcekuoid.x			    \
	$(OBJ)\asn1_id_pkinit_san.x			    \
	$(OBJ)\asn1_id_pkinit_ms_eku.x			    \
	$(OBJ)\asn1_id_pkinit_ms_san.x			    \
	$(OBJ)\asn1_id_pkinit_kdf.x			    \
	$(OBJ)\asn1_id_pkinit_kdf_ah_sha1.x		    \
	$(OBJ)\asn1_id_pkinit_kdf_ah_sha256.x		    \
	$(OBJ)\asn1_id_pkinit_kdf_ah_sha512.x		    \
	$(OBJ)\asn1_MS_UPN_SAN.x			    \
	$(OBJ)\asn1_DHNonce.x				    \
	$(OBJ)\asn1_KDFAlgorithmId.x			    \
	$(OBJ)\asn1_TrustedCA.x				    \
	$(OBJ)\asn1_ExternalPrincipalIdentifier.x	    \
	$(OBJ)\asn1_ExternalPrincipalIdentifiers.x	    \
	$(OBJ)\asn1_PA_PK_AS_REQ.x			    \
	$(OBJ)\asn1_PKAuthenticator.x			    \
	$(OBJ)\asn1_AuthPack.x				    \
	$(OBJ)\asn1_TD_TRUSTED_CERTIFIERS.x		    \
	$(OBJ)\asn1_TD_INVALID_CERTIFICATES.x		    \
	$(OBJ)\asn1_KRB5PrincipalName.x			    \
	$(OBJ)\asn1_AD_INITIAL_VERIFIED_CAS.x		    \
	$(OBJ)\asn1_DHRepInfo.x				    \
	$(OBJ)\asn1_PA_PK_AS_REP.x			    \
	$(OBJ)\asn1_KDCDHKeyInfo.x			    \
	$(OBJ)\asn1_ReplyKeyPack.x			    \
	$(OBJ)\asn1_TD_DH_PARAMETERS.x			    \
	$(OBJ)\asn1_PKAuthenticator_Win2k.x		    \
	$(OBJ)\asn1_AuthPack_Win2k.x			    \
	$(OBJ)\asn1_TrustedCA_Win2k.x			    \
	$(OBJ)\asn1_PA_PK_AS_REQ_Win2k.x		    \
	$(OBJ)\asn1_PA_PK_AS_REP_Win2k.x		    \
	$(OBJ)\asn1_PA_PK_AS_REP_BTMM.x			    \
	$(OBJ)\asn1_KDCDHKeyInfo_Win2k.x		    \
	$(OBJ)\asn1_ReplyKeyPack_Win2k.x		    \
	$(OBJ)\asn1_PkinitSP80056AOtherInfo.x		    \
	$(OBJ)\asn1_PkinitSuppPubInfo.x

gen_files_pkcs12 =					    \
	$(OBJ)\asn1_id_pkcs_12.x			    \
	$(OBJ)\asn1_id_pkcs_12PbeIds.x			    \
	$(OBJ)\asn1_id_pbeWithSHAAnd128BitRC4.x		    \
	$(OBJ)\asn1_id_pbeWithSHAAnd40BitRC4.x		    \
	$(OBJ)\asn1_id_pbeWithSHAAnd3_KeyTripleDES_CBC.x    \
	$(OBJ)\asn1_id_pbeWithSHAAnd2_KeyTripleDES_CBC.x    \
	$(OBJ)\asn1_id_pbeWithSHAAnd128BitRC2_CBC.x	    \
	$(OBJ)\asn1_id_pbewithSHAAnd40BitRC2_CBC.x	    \
	$(OBJ)\asn1_id_pkcs12_bagtypes.x		    \
	$(OBJ)\asn1_id_pkcs12_keyBag.x			    \
	$(OBJ)\asn1_id_pkcs12_pkcs8ShroudedKeyBag.x	    \
	$(OBJ)\asn1_id_pkcs12_certBag.x			    \
	$(OBJ)\asn1_id_pkcs12_crlBag.x			    \
	$(OBJ)\asn1_id_pkcs12_secretBag.x		    \
	$(OBJ)\asn1_id_pkcs12_safeContentsBag.x		    \
	$(OBJ)\asn1_PKCS12_MacData.x			    \
	$(OBJ)\asn1_PKCS12_PFX.x			    \
	$(OBJ)\asn1_PKCS12_AuthenticatedSafe.x		    \
	$(OBJ)\asn1_PKCS12_CertBag.x			    \
	$(OBJ)\asn1_PKCS12_Attribute.x			    \
	$(OBJ)\asn1_PKCS12_Attributes.x			    \
	$(OBJ)\asn1_PKCS12_SafeBag.x			    \
	$(OBJ)\asn1_PKCS12_SafeContents.x		    \
	$(OBJ)\asn1_PKCS12_OctetString.x		    \
	$(OBJ)\asn1_PKCS12_PBEParams.x

gen_files_pkcs8 =					    \
	$(OBJ)\asn1_PKCS8PrivateKeyAlgorithmIdentifier.x    \
	$(OBJ)\asn1_PKCS8PrivateKey.x			    \
	$(OBJ)\asn1_PKCS8PrivateKeyInfo.x		    \
	$(OBJ)\asn1_PKCS8Attributes.x			    \
	$(OBJ)\asn1_PKCS8EncryptedPrivateKeyInfo.x	    \
	$(OBJ)\asn1_PKCS8EncryptedData.x

gen_files_pkcs9 =					    \
	$(OBJ)\asn1_id_pkcs_9.x				    \
	$(OBJ)\asn1_id_pkcs9_contentType.x		    \
	$(OBJ)\asn1_id_pkcs9_emailAddress.x		    \
	$(OBJ)\asn1_id_pkcs9_messageDigest.x		    \
	$(OBJ)\asn1_id_pkcs9_signingTime.x		    \
	$(OBJ)\asn1_id_pkcs9_countersignature.x		    \
	$(OBJ)\asn1_id_pkcs_9_at_friendlyName.x		    \
	$(OBJ)\asn1_id_pkcs_9_at_localKeyId.x		    \
	$(OBJ)\asn1_id_pkcs_9_at_certTypes.x		    \
	$(OBJ)\asn1_id_pkcs_9_at_certTypes_x509.x	    \
	$(OBJ)\asn1_PKCS9_BMPString.x			    \
	$(OBJ)\asn1_PKCS9_friendlyName.x

gen_files_test =					    \
	$(OBJ)\asn1_TESTOptional.x			    \
	$(OBJ)\asn1_TESTAlloc.x				    \
	$(OBJ)\asn1_TESTAllocInner.x			    \
	$(OBJ)\asn1_TESTBitString.x			    \
	$(OBJ)\asn1_TESTCONTAINING.x			    \
	$(OBJ)\asn1_TESTCONTAININGENCODEDBY.x		    \
	$(OBJ)\asn1_TESTCONTAININGENCODEDBY2.x		    \
	$(OBJ)\asn1_TESTChoice1.x			    \
	$(OBJ)\asn1_TESTChoice2.x			    \
	$(OBJ)\asn1_TESTDer.x				    \
	$(OBJ)\asn1_TESTENCODEDBY.x			    \
	$(OBJ)\asn1_TESTImplicit.x			    \
	$(OBJ)\asn1_TESTImplicit2.x			    \
	$(OBJ)\asn1_TESTInteger.x			    \
	$(OBJ)\asn1_TESTInteger2.x			    \
	$(OBJ)\asn1_TESTInteger3.x			    \
	$(OBJ)\asn1_TESTLargeTag.x			    \
	$(OBJ)\asn1_TESTOSSize1.x			    \
	$(OBJ)\asn1_TESTPreserve.x			    \
	$(OBJ)\asn1_TESTSeq.x				    \
	$(OBJ)\asn1_TESTSeqOf.x				    \
	$(OBJ)\asn1_TESTSeqOf2.x			    \
	$(OBJ)\asn1_TESTSeqOf3.x			    \
	$(OBJ)\asn1_TESTSeqOfSeq.x			    \
	$(OBJ)\asn1_TESTSeqOfSeq2.x			    \
	$(OBJ)\asn1_TESTSeqOfSeq3.x			    \
	$(OBJ)\asn1_TESTSeqSizeOf1.x			    \
	$(OBJ)\asn1_TESTSeqSizeOf2.x			    \
	$(OBJ)\asn1_TESTSeqSizeOf3.x			    \
	$(OBJ)\asn1_TESTSeqSizeOf4.x			    \
	$(OBJ)\asn1_TESTUSERCONSTRAINED.x		    \
	$(OBJ)\asn1_TESTuint32.x

gen_files_digest =					    \
	$(OBJ)\asn1_DigestError.x			    \
	$(OBJ)\asn1_DigestInit.x			    \
	$(OBJ)\asn1_DigestInitReply.x			    \
	$(OBJ)\asn1_DigestREP.x				    \
	$(OBJ)\asn1_DigestREQ.x				    \
	$(OBJ)\asn1_DigestRepInner.x			    \
	$(OBJ)\asn1_DigestReqInner.x			    \
	$(OBJ)\asn1_DigestRequest.x			    \
	$(OBJ)\asn1_DigestResponse.x			    \
	$(OBJ)\asn1_DigestTypes.x			    \
	$(OBJ)\asn1_NTLMInit.x				    \
	$(OBJ)\asn1_NTLMInitReply.x			    \
	$(OBJ)\asn1_NTLMRequest.x			    \
	$(OBJ)\asn1_NTLMRequest2.x			    \
	$(OBJ)\asn1_NTLMResponse.x			    \
	$(OBJ)\asn1_NTLMReply.x

gen_files_kx509 =					    \
	$(OBJ)\asn1_Kx509Response.x			    \
	$(OBJ)\asn1_KX509_ERROR_CODE.x			    \
	$(OBJ)\asn1_Kx509Request.x

ASN1_BINARIES =						    \
	$(LIBEXECDIR)\asn1_compile.exe			    \
	$(LIBEXECDIR)\asn1_print.exe			    \
	$(BINDIR)\asn1_gen.exe

$(BINDIR)\asn1_compile.exe:				    \
	$(OBJ)\asn1parse.obj				    \
	$(OBJ)\gen.obj					    \
	$(OBJ)\gen_copy.obj				    \
	$(OBJ)\gen_decode.obj				    \
	$(OBJ)\gen_encode.obj				    \
	$(OBJ)\gen_free.obj				    \
	$(OBJ)\gen_glue.obj				    \
	$(OBJ)\gen_length.obj				    \
	$(OBJ)\gen_seq.obj				    \
	$(OBJ)\gen_template.obj				    \
	$(OBJ)\hash.obj					    \
	$(OBJ)\lex.obj					    \
	$(OBJ)\main.obj					    \
	$(OBJ)\symbol.obj
	$(EXECONLINK) $(LIBROKEN) $(LIBVERS)
	$(_VC_MANIFEST_EMBED_EXE)
	$(_VC_MANIFEST_CLEAN)
	$(_CODESIGN)

$(OBJ)\lex.c: lex.l $(OBJ)\asn1parse.h
	$(LEX) -o$@ lex.l

$(OBJ)\asn1parse.c $(OBJ)\asn1parse.h: asn1parse.y
	$(YACC) -o $(OBJ)\asn1parse.c --defines=$(OBJ)\asn1parse.h $**

$(OBJ)\asn1_err.c $(OBJ)\asn1_err.h: asn1_err.et
	cd $(OBJ)
	$(BINDIR)\compile_et.exe $(SRCDIR)\asn1_err.et
	cd $(SRCDIR)

$(BINDIR)\asn1_print.exe: $(OBJ)\asn1_print.obj $(LIBASN1)
	$(EXECONLINK) $(LIBVERS) $(LIBROKEN) $(LIBCOMERR)
	$(_VC_MANIFEST_EMBED_EXE)
	$(_VC_MANIFEST_CLEAN)
	$(_CODESIGN)

$(BINDIR)\asn1_gen.exe: $(OBJ)\asn1_gen.obj $(LIBASN1)
	$(EXECONLINK) $(LIBVERS) $(LIBROKEN)
	$(_VC_MANIFEST_EMBED_EXE)
	$(_VC_MANIFEST_CLEAN)
	$(_CODESIGN)

LIBASN1_OBJS=	\
	$(OBJ)\der.obj			\
	$(OBJ)\der_get.obj		\
	$(OBJ)\der_put.obj		\
	$(OBJ)\der_free.obj		\
	$(OBJ)\der_length.obj		\
	$(OBJ)\der_copy.obj		\
	$(OBJ)\der_cmp.obj		\
	$(OBJ)\der_format.obj		\
	$(OBJ)\extra.obj		\
	$(OBJ)\timegm.obj		\
	$(gen_files_rfc2459:.x=.obj)	\
	$(gen_files_cms:.x=.obj)	\
	$(gen_files_k5:.x=.obj)		\
	$(gen_files_pkinit:.x=.obj)	\
	$(gen_files_pkcs8:.x=.obj)	\
	$(gen_files_pkcs9:.x=.obj)	\
	$(gen_files_pkcs12:.x=.obj)	\
	$(gen_files_digest:.x=.obj)	\
	$(gen_files_kx509:.x=.obj)	\
	$(OBJ)\asn1_err.obj

LIBASN1_LIBS=\
	$(LIBROKEN)	\
	$(LIBCOMERR)

!ifndef STATICLIBS

$(LIBASN1): $(BINDIR)\libasn1.dll

$(BINDIR)\libasn1.dll: $(LIBASN1_OBJS) $(LIBASN1_LIBS)
	$(DLLGUILINK_C) -out:$@ -def:libasn1-exports.def -implib:$(LIBASN1) @<<
$(**: =
)
<<
	$(DLLPREP)

clean::
	-$(RM) $(BINDIR)\libasn1.dll

!else

$(LIBASN1): $(LIBASN1_OBJS)
	$(LIBCON_C) -out:$@ @<<
$(**: =
)
<<

!endif

clean::
	-$(RM) $(LIBASN1)

#
# Generate list of exports
#
# This target is only used during development to generate a list of
# symbols that are exported from all the object files in LIBASN1_OBJS.
#
exports-list.txt: $(LIBASN1_OBJS)
	$(PERL) ..\..\cf\w32-list-externs-from-objs.pl -q -u @<< > $@
$(**: =
)
<<

$(gen_files_k5:.x=.c)	    : $$(@R).x

$(gen_files_pkinit:.x=.c)   : $$(@R).x

$(gen_files_pkcs8:.x=.c)    : $$(@R).x

$(gen_files_pkcs9:.x=.c)    : $$(@R).x

$(gen_files_pkcs12:.x=.c)   : $$(@R).x

$(gen_files_digest:.x=.c)   : $$(@R).x

$(gen_files_kx509:.x=.c)    : $$(@R).x

$(gen_files_rfc2459:.x=.c)  : $$(@R).x

$(gen_files_cms:.x=.c)	    : $$(@R).x

$(gen_files_test:.x=.c)	    : $$(@R).x

$(gen_files_k5) $(OBJ)\krb5_asn1.hx: $(BINDIR)\asn1_compile.exe krb5.asn1 krb5.opt
	cd $(OBJ)
	$(BINDIR)\asn1_compile.exe \
		--option-file=$(SRCDIR)\krb5.opt \
		$(SRCDIR)\krb5.asn1 krb5_asn1 \
	|| ($(RM) $(OBJ)\krb5_asn1.h ; exit /b 1)
	cd $(SRCDIR)

$(gen_files_pkinit) $(OBJ)\pkinit_asn1.hx: $(BINDIR)\asn1_compile.exe pkinit.asn1
	cd $(OBJ)
	$(BINDIR)\asn1_compile.exe $(SRCDIR)\pkinit.asn1 pkinit_asn1 \
	|| ($(RM) $(OBJ)\pkinit_asn1.h ; exit /b 1)
	cd $(SRCDIR)

$(gen_files_pkcs8) $(OBJ)\pkcs8_asn1.hx: $(BINDIR)\asn1_compile.exe pkcs8.asn1
	cd $(OBJ)
	$(BINDIR)\asn1_compile.exe $(SRCDIR)\pkcs8.asn1 pkcs8_asn1 \
	|| ($(RM) $(OBJ)\pkcs8_asn1.h ; exit /b 1)
	cd $(SRCDIR)

$(gen_files_pkcs9) $(OBJ)\pkcs9_asn1.hx: $(BINDIR)\asn1_compile.exe pkcs9.asn1
	cd $(OBJ)
	$(BINDIR)\asn1_compile.exe $(SRCDIR)\pkcs9.asn1 pkcs9_asn1 \
	|| ($(RM) $(OBJ)\pkcs9_asn1.h ; exit /b 1)
	cd $(SRCDIR)

$(gen_files_pkcs12) $(OBJ)\pkcs12_asn1.hx: $(BINDIR)\asn1_compile.exe pkcs12.asn1
	cd $(OBJ)
	$(BINDIR)\asn1_compile.exe $(SRCDIR)\pkcs12.asn1 pkcs12_asn1 \
	|| ($(RM) $(OBJ)\pkcs12_asn1.h ; exit /b 1)
	cd $(SRCDIR)

$(gen_files_digest) $(OBJ)\digest_asn1.hx: $(BINDIR)\asn1_compile.exe digest.asn1
	cd $(OBJ)
	$(BINDIR)\asn1_compile.exe $(SRCDIR)\digest.asn1 digest_asn1 \
	|| ($(RM) $(OBJ)\digest_asn1.h ; exit /b 1)
	cd $(SRCDIR)

$(gen_files_kx509) $(OBJ)\kx509_asn1.hx: $(BINDIR)\asn1_compile.exe kx509.asn1
	cd $(OBJ)
	$(BINDIR)\asn1_compile.exe $(SRCDIR)\kx509.asn1 kx509_asn1 \
	|| ($(RM) $(OBJ)\kx509_asn1.h ; exit /b 1)
	cd $(SRCDIR)

$(gen_files_rfc2459) $(OBJ)\rfc2459_asn1.hx: $(BINDIR)\asn1_compile.exe rfc2459.asn1
	cd $(OBJ)
	$(BINDIR)\asn1_compile.exe \
		--preserve-binary=TBSCertificate \
		--preserve-binary=TBSCRLCertList \
		--preserve-binary=Name \
		--sequence=GeneralNames \
		--sequence=Extensions \
		--sequence=CRLDistributionPoints \
		$(SRCDIR)\rfc2459.asn1 rfc2459_asn1 \
	|| ($(RM) $(OBJ)\rfc2459_asn1.h ; exit /b 1)
	cd $(SRCDIR)

$(gen_files_cms) $(OBJ)\cms_asn1.hx: $(BINDIR)\asn1_compile.exe cms.asn1 cms.opt
	cd $(OBJ)
	$(BINDIR)\asn1_compile.exe \
		--option-file=$(SRCDIR)\cms.opt \
		$(SRCDIR)\cms.asn1 cms_asn1 \
	|| ($(RM) $(OBJ)\cms_asn1.h ; exit /b 1)
	cd $(SRCDIR)

$(gen_files_test) $(OBJ)\test_asn1.hx: $(BINDIR)\asn1_compile.exe test.asn1
	cd $(OBJ)
	$(BINDIR)\asn1_compile.exe \
		--sequence=TESTSeqOf \
		$(SRCDIR)\test.asn1 test_asn1 \
	|| ($(RM) $(OBJ)\test_asn1.h ; exit /b 1)
	cd $(SRCDIR)

INCFILES=			    \
	$(INCDIR)\der.h		    \
	$(INCDIR)\heim_asn1.h	    \
	$(INCDIR)\der-protos.h	    \
	$(INCDIR)\der-private.h	    \
	$(INCDIR)\asn1-common.h	    \
	$(INCDIR)\asn1-template.h   \
	$(OBJ)\asn1_err.h

$(INCDIR)\der-protos.h: $(OBJ)\der-protos.h

GENINCFILES=			    \
	$(INCDIR)\asn1_err.h	    \
	$(INCDIR)\cms_asn1.h	    \
	$(INCDIR)\digest_asn1.h	    \
	$(INCDIR)\krb5_asn1.h	    \
	$(INCDIR)\kx509_asn1.h	    \
	$(INCDIR)\pkcs12_asn1.h	    \
	$(INCDIR)\pkcs8_asn1.h	    \
	$(INCDIR)\pkcs9_asn1.h	    \
	$(INCDIR)\pkinit_asn1.h	    \
	$(INCDIR)\rfc2459_asn1.h    \
	$(OBJ)\krb5_asn1-priv.h	    \
	$(OBJ)\pkinit_asn1-priv.h   \
	$(OBJ)\cms_asn1-priv.h	    \
	$(OBJ)\rfc2459_asn1-priv.h  \
	$(OBJ)\pkcs8_asn1-priv.h    \
	$(OBJ)\pkcs9_asn1-priv.h    \
	$(OBJ)\pkcs12_asn1-priv.h   \
	$(OBJ)\digest_asn1-priv.h   \
	$(OBJ)\kx509_asn1-priv.h    \
	$(OBJ)\test_asn1.h	    \
	$(OBJ)\test_asn1-priv.h

libasn1_SOURCES=	\
	der_locl.h 	\
	der.c		\
	der.h		\
	der_get.c	\
	der_put.c	\
	der_free.c	\
	der_length.c	\
	der_copy.c	\
	der_cmp.c	\
	der_format.c	\
	heim_asn1.h	\
	extra.c		\
	timegm.c

$(OBJ)\der-protos.h: $(libasn1_SOURCES)
	$(PERL) ..\..\cf\make-proto.pl -q -P remove -o $(OBJ)\der-protos.h $(libasn1_SOURCES) || $(RM) $(OBJ)\der-protos.h

$(OBJ)\der-private.h: $(libasn1_SOURCES)
	$(PERL) ..\..\cf\make-proto.pl -q -P remove -p $(OBJ)\der-private.h $(libasn1_SOURCES) || $(RM) $(OBJ)\der-private.h

clean::
	-$(RM) $(INCDIR)\der-protos.h

all:: $(INCFILES) $(GENINCFILES) $(ASN1_BINARIES) $(LIBASN1)

TEST_BINARIES=\
	$(OBJ)\check-der.exe	\
	$(OBJ)\check-gen.exe	\
	$(OBJ)\check-timegm.exe

test-binaries: $(TEST_BINARIES)

test-run:

test:: test-binaries test-run

{$(OBJ)}.c{$(OBJ)}.obj:
	$(C2OBJ) -I$(SRCDIR) -I$(OBJ)

{}.c{$(OBJ)}.obj:
	$(C2OBJ) -I$(SRCDIR) -I$(OBJ)