diff --git a/lib/asn1/Makefile.am b/lib/asn1/Makefile.am index 5002c004a..335c288b9 100644 --- a/lib/asn1/Makefile.am +++ b/lib/asn1/Makefile.am @@ -8,13 +8,15 @@ AM_CPPFLAGS += $(ROKEN_RENAME) man_MANS = asn1_print.1 asn1_compile.1 -lib_LTLIBRARIES = libasn1.la +lib_LTLIBRARIES = libasn1.la libasn1template.la libasn1_la_LDFLAGS = -version-info 8:0:0 +libasn1template_la_LDFLAGS = -version-info 8:0:0 noinst_LTLIBRARIES = libasn1base.la if versionscript libasn1_la_LDFLAGS += $(LDFLAGS_VERSION_SCRIPT)$(srcdir)/version-script.map +libasn1template_la_LDFLAGS += $(LDFLAGS_VERSION_SCRIPT)$(srcdir)/version-script.map endif @@ -23,6 +25,11 @@ libasn1_la_LIBADD = \ @LIB_com_err@ \ $(LIBADD_roken) +libasn1template_la_LIBADD = \ + libasn1base.la \ + @LIB_com_err@ \ + $(LIBADD_roken) + BUILT_SOURCES = \ $(gen_files_rfc2459:.x=.c) \ $(gen_files_rfc4108:.x=.c) \ @@ -37,21 +44,48 @@ BUILT_SOURCES = \ $(gen_files_digest:.x=.c) \ $(gen_files_kx509:.x=.c) +BUILT_TEMPLATE_SOURCES = \ + $(gen_files_rfc2459_template:.x=.c) \ + $(gen_files_rfc4108_template:.x=.c) \ + $(gen_files_cms_template:.x=.c) \ + $(gen_files_krb5_template:.x=.c) \ + $(gen_files_ocsp_template:.x=.c) \ + $(gen_files_pkinit_template:.x=.c) \ + $(gen_files_pkcs8_template:.x=.c) \ + $(gen_files_pkcs9_template:.x=.c) \ + $(gen_files_pkcs10_template:.x=.c) \ + $(gen_files_pkcs12_template:.x=.c) \ + $(gen_files_digest_template:.x=.c) \ + $(gen_files_kx509_template:.x=.c) + gen_files_krb5 = asn1_krb5_asn1.x +gen_files_krb5_template = asn1_krb5_template_asn1.x gen_files_cms = asn1_cms_asn1.x +gen_files_cms_template = asn1_cms_template_asn1.x gen_files_crmf = asn1_crmf_asn1.x +gen_files_crmf_template = asn1_crmf_template_asn1.x gen_files_rfc2459 = asn1_rfc2459_asn1.x +gen_files_rfc2459_template = asn1_rfc2459_template_asn1.x gen_files_rfc4108 = asn1_rfc4108_asn1.x +gen_files_rfc4108_template = asn1_rfc4108_template_asn1.x gen_files_ocsp = asn1_ocsp_asn1.x +gen_files_ocsp_template = asn1_ocsp_template_asn1.x gen_files_pkinit = asn1_pkinit_asn1.x +gen_files_pkinit_template = asn1_pkinit_template_asn1.x gen_files_pkcs10 = asn1_pkcs10_asn1.x +gen_files_pkcs10_template = asn1_pkcs10_template_asn1.x gen_files_pkcs12 = asn1_pkcs12_asn1.x +gen_files_pkcs12_template = asn1_pkcs12_template_asn1.x gen_files_pkcs8 = asn1_pkcs8_asn1.x +gen_files_pkcs8_template = asn1_pkcs8_template_asn1.x gen_files_pkcs9 = asn1_pkcs9_asn1.x -gen_files_test_template = asn1_test_template_asn1.x +gen_files_pkcs9_template = asn1_pkcs9_template_asn1.x gen_files_test = asn1_test_asn1.x +gen_files_test_template = asn1_test_template_asn1.x gen_files_digest = asn1_digest_asn1.x +gen_files_digest_template = asn1_digest_template_asn1.x gen_files_kx509 = asn1_kx509_asn1.x +gen_files_kx509_template = asn1_kx509_template_asn1.x gen_files_x690sample = asn1_x690sample_asn1.x gen_files_x690sample_template = asn1_x690sample_template_asn1.x @@ -59,27 +93,21 @@ oid_resolution.lo: $(BUILT_SOURCES) noinst_PROGRAMS = asn1_gen -libexec_heimdal_PROGRAMS = asn1_compile asn1_print +bin_PROGRAMS = asn1_compile asn1_print TESTS = check-der check-gen check-gen-template check-timegm check-ber check-template check_PROGRAMS = $(TESTS) asn1_gen_SOURCES = asn1_gen.c asn1_print_SOURCES = asn1_print.c -if ASN1_TEMPLATING asn1_print_SOURCES += $(gen_files_x690sample_template:.x=.c) asn1_print_CPPFLAGS = -DASN1_PRINT_SUPPORTED -else -asn1_print_SOURCES += $(gen_files_x690sample:.x=.c) -endif check_der_SOURCES = check-der.c check-common.c check-common.h check_template_SOURCES = check-template.c check-common.c check-common.h nodist_check_template_SOURCES = $(gen_files_test_template:.x=.c) -if ASN1_TEMPLATING check_gen_template_CPPFLAGS = -DASN1_IOS_SUPPORTED -endif dist_check_gen_template_SOURCES = check-gen.c check-common.c check-common.h nodist_check_gen_template_SOURCES = $(gen_files_test_template:.x=.c) \ $(gen_files_x690sample_template:.x=.c) @@ -132,6 +160,7 @@ dist_libasn1base_la_SOURCES = \ timegm.c dist_libasn1_la_SOURCES = oid_resolution.c +dist_libasn1template_la_SOURCES = oid_resolution.c nodist_libasn1base_la_SOURCES = \ asn1_err.h \ @@ -139,6 +168,12 @@ nodist_libasn1base_la_SOURCES = \ nodist_libasn1_la_SOURCES = $(BUILT_SOURCES) +if !ASN1_TEMPLATING +nodist_libasn1template_la_SOURCES = $(BUILT_TEMPLATE_SOURCES) +else +nodist_libasn1template_la_SOURCES = $(BUILT_SOURCES) +endif + asn1_compile_LDADD = \ $(LIB_roken) $(LEXLIB) @@ -147,16 +182,16 @@ check_der_LDADD = \ $(LIB_roken) check_template_LDADD = $(check_der_LDADD) -asn1_print_LDADD = libasn1.la $(LIB_roken) $(LIB_com_err) +asn1_print_LDADD = libasn1template.la $(LIB_roken) $(LIB_com_err) asn1_gen_LDADD = $(check_der_LDADD) check_timegm_LDADD = $(check_der_LDADD) check_gen_template_LDADD = \ - libasn1.la \ + libasn1template.la \ $(LIB_roken) check_gen_LDADD = \ - libasn1.la \ + libasn1template.la \ $(LIB_roken) check_ber_LDADD = $(check_gen_LDADD) @@ -164,17 +199,29 @@ check_ber_LDADD = $(check_gen_LDADD) CLEANFILES = \ $(BUILT_SOURCES) \ $(gen_files_rfc2459) \ + $(gen_files_rfc2459_template) \ $(gen_files_rfc4108) \ + $(gen_files_rfc4108_template) \ $(gen_files_cms) \ + $(gen_files_cms_template) \ $(gen_files_krb5) \ + $(gen_files_krb5_template) \ $(gen_files_ocsp) \ + $(gen_files_ocsp_template) \ $(gen_files_pkinit) \ + $(gen_files_pkinit_template) \ $(gen_files_pkcs8) \ + $(gen_files_pkcs8_template) \ $(gen_files_pkcs9) \ + $(gen_files_pkcs9_template) \ $(gen_files_pkcs10) \ + $(gen_files_pkcs10_template) \ $(gen_files_pkcs12) \ + $(gen_files_pkcs12_template) \ $(gen_files_digest) \ + $(gen_files_digest_template) \ $(gen_files_kx509) \ + $(gen_files_kx509_template) \ $(gen_files_x690sample) \ $(gen_files_x690sample_template) \ $(gen_files_test) \ @@ -183,22 +230,35 @@ CLEANFILES = \ asn1parse.c asn1parse.h lex.c \ asn1_err.c asn1_err.h \ rfc2459_asn1_files rfc2459_asn1*.h* rfc2459_asn1*.x \ + rfc2459_template_asn1_files rfc2459_template_asn1*.h* rfc2459_template_asn1*.x \ rfc4108_asn1_files rfc4108_asn1*.h* rfc4108_asn1*.x \ + rfc4108_template_asn1_files rfc4108_template_asn1*.h* rfc4108_template_asn1*.x \ cms_asn1_files cms_asn1*.h* cms_asn1*.x \ + cms_template_asn1_files cms_template_asn1*.h* cms_template_asn1*.x \ crmf_asn1_files crmf_asn1*.h* crmf_asn1*.x \ + crmf_template_asn1_files crmf_template_asn1*.h* crmf_template_asn1*.x \ krb5_asn1_files krb5_asn1*.h* krb5_asn1*.x \ + krb5_template_asn1_files krb5_template_asn1*.h* krb5_template_asn1*.x \ ocsp_asn1_files ocsp_asn1*.h* ocsp_asn1*.x \ + ocsp_template_asn1_files ocsp_template_asn1*.h* ocsp_template_asn1*.x \ pkinit_asn1_files pkinit_asn1*.h* pkinit_asn1*.x \ + pkinit_template_asn1_files pkinit_template_asn1*.h* pkinit_template_asn1*.x \ pkcs8_asn1_files pkcs8_asn1*.h* pkcs8_asn1*.x* \ + pkcs8_template_asn1_files pkcs8_template_asn1*.h* pkcs8_template_asn1*.x* \ pkcs9_asn1_files pkcs9_asn1*.h* pkcs9_asn1*.x \ + pkcs9_template_asn1_files pkcs9_template_asn1*.h* pkcs9_template_asn1*.x \ pkcs10_asn1_files pkcs10_asn1*.h* pkcs10_asn1*.x \ + pkcs10_template_asn1_files pkcs10_template_asn1*.h* pkcs10_template_asn1*.x \ pkcs12_asn1_files pkcs12_asn1*.h* pkcs12_asn1*.x \ + pkcs12_template_asn1_files pkcs12_template_asn1*.h* pkcs12_template_asn1*.x \ digest_asn1_files digest_asn1*.h* digest_asn1*.x \ + digest_template_asn1_files digest_template_asn1*.h* digest_template_asn1*.x \ kx509_asn1_files kx509_asn1*.h* kx509_asn1*.x \ + kx509_template_asn1_files kx509_template_asn1*.h* kx509_template_asn1*.x \ x690sample_asn1_files x690sample_asn1*.h* x690sample_asn1*.x \ x690sample_template_asn1_files x690sample_template_asn1*.h* x690sample_template_asn1*.x \ test_asn1_files test_asn1*.h* test_asn1*.x \ - test_template_asn1* \ + test_template_asn1_files test_template_asn1*.h* test_template_asn1*.x \ asn1_*.tmp.c asn1_*.x dist_include_HEADERS = der.h heim_asn1.h @@ -207,43 +267,70 @@ dist_include_HEADERS += asn1-common.h nodist_include_HEADERS = asn1_err.h nodist_include_HEADERS += krb5_asn1.h +nodist_include_HEADERS += krb5_template_asn1.h nodist_include_HEADERS += pkinit_asn1.h +nodist_include_HEADERS += pkinit_template_asn1.h nodist_include_HEADERS += cms_asn1.h +nodist_include_HEADERS += cms_template_asn1.h nodist_include_HEADERS += crmf_asn1.h +nodist_include_HEADERS += crmf_template_asn1.h nodist_include_HEADERS += rfc2459_asn1.h +nodist_include_HEADERS += rfc2459_template_asn1.h nodist_include_HEADERS += rfc4108_asn1.h +nodist_include_HEADERS += rfc4108_template_asn1.h nodist_include_HEADERS += ocsp_asn1.h +nodist_include_HEADERS += ocsp_template_asn1.h nodist_include_HEADERS += pkcs8_asn1.h +nodist_include_HEADERS += pkcs8_template_asn1.h nodist_include_HEADERS += pkcs9_asn1.h +nodist_include_HEADERS += pkcs9_template_asn1.h nodist_include_HEADERS += pkcs10_asn1.h +nodist_include_HEADERS += pkcs10_template_asn1.h nodist_include_HEADERS += pkcs12_asn1.h +nodist_include_HEADERS += pkcs12_template_asn1.h nodist_include_HEADERS += digest_asn1.h +nodist_include_HEADERS += digest_template_asn1.h nodist_include_HEADERS += kx509_asn1.h +nodist_include_HEADERS += kx509_template_asn1.h nodist_include_HEADERS += x690sample_asn1.h nodist_include_HEADERS += x690sample_template_asn1.h priv_headers = krb5_asn1-priv.h +priv_headers += krb5_template_asn1-priv.h priv_headers += pkinit_asn1-priv.h +priv_headers += pkinit_template_asn1-priv.h priv_headers += cms_asn1-priv.h +priv_headers += cms_template_asn1-priv.h priv_headers += crmf_asn1-priv.h +priv_headers += crmf_template_asn1-priv.h priv_headers += rfc2459_asn1-priv.h +priv_headers += rfc2459_template_asn1-priv.h priv_headers += rfc4108_asn1-priv.h +priv_headers += rfc4108_template_asn1-priv.h priv_headers += ocsp_asn1-priv.h +priv_headers += ocsp_template_asn1-priv.h priv_headers += pkcs8_asn1-priv.h +priv_headers += pkcs8_template_asn1-priv.h priv_headers += pkcs9_asn1-priv.h +priv_headers += pkcs9_template_asn1-priv.h priv_headers += pkcs10_asn1-priv.h +priv_headers += pkcs10_template_asn1-priv.h priv_headers += pkcs12_asn1-priv.h +priv_headers += pkcs12_template_asn1-priv.h priv_headers += digest_asn1-priv.h +priv_headers += digest_template_asn1-priv.h priv_headers += kx509_asn1-priv.h +priv_headers += kx509_template_asn1-priv.h priv_headers += x690sample_asn1-priv.h priv_headers += x690sample_template_asn1-priv.h -priv_headers += test_template_asn1.h test_template_asn1-priv.h priv_headers += test_asn1.h test_asn1-priv.h +priv_headers += test_template_asn1.h test_template_asn1-priv.h $(asn1_compile_OBJECTS): asn1parse.h asn1parse.c $(srcdir)/der-protos.h $(srcdir)/der-private.h $(libasn1_la_OBJECTS): $(nodist_include_HEADERS) $(priv_headers) asn1_err.h $(srcdir)/der-protos.h $(srcdir)/der-private.h +$(libasn1template_la_OBJECTS): $(nodist_include_HEADERS) $(priv_headers) asn1_err.h $(srcdir)/der-protos.h $(srcdir)/der-private.h $(libasn1base_la_OBJECTS): asn1_err.h $(srcdir)/der-protos.h $(srcdir)/der-private.h $(check_gen_OBJECTS): test_asn1.h $(check_template_OBJECTS): test_asn1_files @@ -252,18 +339,31 @@ $(asn1_print_OBJECTS): $(nodist_include_HEADERS) $(priv_headers) asn1parse.h: asn1parse.c $(gen_files_krb5) krb5_asn1.hx krb5_asn1-priv.hx: krb5_asn1_files +$(gen_files_krb5_template) krb5_template_asn1.hx krb5_template_asn1-priv.hx: krb5_template_asn1_files $(gen_files_ocsp) ocsp_asn1.hx ocsp_asn1-priv.hx: ocsp_asn1_files +$(gen_files_ocsp_template) ocsp_template_asn1.hx ocsp_template_asn1-priv.hx: ocsp_template_asn1_files $(gen_files_pkinit) pkinit_asn1.hx pkinit_asn1-priv.hx: pkinit_asn1_files +$(gen_files_pkinit_template) pkinit_template_asn1.hx pkinit_template_asn1-priv.hx: pkinit_template_asn1_files $(gen_files_pkcs8) pkcs8_asn1.hx pkcs8_asn1-priv.hx: pkcs8_asn1_files +$(gen_files_pkcs8_template) pkcs8_template_asn1.hx pkcs8_template_asn1-priv.hx: pkcs8_template_asn1_files $(gen_files_pkcs9) pkcs9_asn1.hx pkcs9_asn1-priv.hx: pkcs9_asn1_files +$(gen_files_pkcs9_template) pkcs9_template_asn1.hx pkcs9_template_asn1-priv.hx: pkcs9_template_asn1_files $(gen_files_pkcs10) pkcs10_asn1.hx pkcs10_asn1-priv.hx: pkcs10_asn1_files +$(gen_files_pkcs10_template) pkcs10_template_asn1.hx pkcs10_template_asn1-priv.hx: pkcs10_template_asn1_files $(gen_files_pkcs12) pkcs12_asn1.hx pkcs12_asn1-priv.hx: pkcs12_asn1_files +$(gen_files_pkcs12_template) pkcs12_template_asn1.hx pkcs12_template_asn1-priv.hx: pkcs12_template_asn1_files $(gen_files_digest) digest_asn1.hx digest_asn1-priv.hx: digest_asn1_files +$(gen_files_digest_template) digest_template_asn1.hx digest_template_asn1-priv.hx: digest_template_asn1_files $(gen_files_kx509) kx509_asn1.hx kx509_asn1-priv.hx: kx509_asn1_files +$(gen_files_kx509_template) kx509_template_asn1.hx kx509_template_asn1-priv.hx: kx509_template_asn1_files $(gen_files_rfc2459) rfc2459_asn1.hx rfc2459_asn1-priv.hx: rfc2459_asn1_files +$(gen_files_rfc2459_template) rfc2459_template_asn1.hx rfc2459_template_asn1-priv.hx: rfc2459_template_asn1_files $(gen_files_rfc4108) rfc4108_asn1.hx rfc4108_asn1-priv.hx: rfc4108_asn1_files +$(gen_files_rfc4108_template) rfc4108_template_asn1.hx rfc4108_template_asn1-priv.hx: rfc4108_template_asn1_files $(gen_files_cms) cms_asn1.hx cms_asn1-priv.hx: cms_asn1_files +$(gen_files_cms_template) cms_template_asn1.hx cms_template_asn1-priv.hx: cms_template_asn1_files $(gen_files_crmf) crmf_asn1.hx crmf_asn1-priv.hx: crmf_asn1_files +$(gen_files_crmf_template) crmf_template_asn1.hx crmf_template_asn1-priv.hx: crmf_template_asn1_files $(gen_files_x690sample) x690sample_asn1.hx x690sample_asn1-priv.hx: x690sample_asn1_files $(gen_files_x690sample_template) x690sample_template_asn1.hx x690sample_template_asn1-priv.hx: x690sample_template_asn1_files $(gen_files_test) test_asn1.hx test_asn1-priv.hx: test_asn1_files @@ -275,6 +375,47 @@ else TEMPLATE_OPTION= endif +# If the default is not templating, then we build a variant of libasn1 that is +# templated anyways. +rfc2459_template_asn1_files: asn1_compile$(EXEEXT) $(srcdir)/rfc2459.asn1 + $(ASN1_COMPILE) --one-code-file --template --option-file=$(srcdir)/rfc2459.opt $(srcdir)/rfc2459.asn1 rfc2459_template_asn1 || (rm -f rfc2459_template_asn1_files ; exit 1) + +rfc4108_template_asn1_files: asn1_compile$(EXEEXT) $(srcdir)/rfc4108.asn1 + $(ASN1_COMPILE) --one-code-file --template $(srcdir)/rfc4108.asn1 rfc4108_template_asn1 || (rm -f rfc4108_template_asn1_files ; exit 1) + +cms_template_asn1_files: asn1_compile$(EXEEXT) $(srcdir)/cms.asn1 $(srcdir)/cms.opt + $(ASN1_COMPILE) --one-code-file --template --option-file=$(srcdir)/cms.opt $(srcdir)/cms.asn1 cms_template_asn1 || (rm -f cms_template_asn1_files ; exit 1) + +crmf_template_asn1_files: asn1_compile$(EXEEXT) $(srcdir)/crmf.asn1 $(srcdir)/crmf.opt + $(ASN1_COMPILE) --one-code-file --template --option-file=$(srcdir)/crmf.opt $(srcdir)/crmf.asn1 crmf_template_asn1 || (rm -f crmf_template_asn1_files ; exit 1) + +krb5_template_asn1_files: asn1_compile$(EXEEXT) $(srcdir)/krb5.asn1 $(srcdir)/krb5.opt + $(ASN1_COMPILE) --one-code-file --template --option-file=$(srcdir)/krb5.opt $(srcdir)/krb5.asn1 krb5_template_asn1 || (rm -f krb5_template_asn1_files ; exit 1) + +ocsp_template_asn1_files: asn1_compile$(EXEEXT) $(srcdir)/ocsp.asn1 + $(ASN1_COMPILE) --one-code-file --template --option-file=$(srcdir)/ocsp.opt $(srcdir)/ocsp.asn1 ocsp_template_asn1 || (rm -f ocsp_template_asn1_files ; exit 1) + +pkinit_template_asn1_files: asn1_compile$(EXEEXT) $(srcdir)/pkinit.asn1 + $(ASN1_COMPILE) --one-code-file --template $(srcdir)/pkinit.asn1 pkinit_template_asn1 || (rm -f pkinit_template_asn1_files ; exit 1) + +pkcs8_template_asn1_files: asn1_compile$(EXEEXT) $(srcdir)/pkcs8.asn1 + $(ASN1_COMPILE) --one-code-file --template $(srcdir)/pkcs8.asn1 pkcs8_template_asn1 || (rm -f pkcs8_template_asn1_files ; exit 1) + +pkcs9_template_asn1_files: asn1_compile$(EXEEXT) $(srcdir)/pkcs9.asn1 + $(ASN1_COMPILE) --one-code-file --template $(srcdir)/pkcs9.asn1 pkcs9_template_asn1 || (rm -f pkcs9_template_asn1_files ; exit 1) + +pkcs10_template_asn1_files: asn1_compile$(EXEEXT) $(srcdir)/pkcs10.asn1 + $(ASN1_COMPILE) --one-code-file --template --option-file=$(srcdir)/pkcs10.opt $(srcdir)/pkcs10.asn1 pkcs10_template_asn1 || (rm -f pkcs10_template_asn1_files ; exit 1) + +pkcs12_template_asn1_files: asn1_compile$(EXEEXT) $(srcdir)/pkcs12.asn1 + $(ASN1_COMPILE) --one-code-file --template $(srcdir)/pkcs12.asn1 pkcs12_template_asn1 || (rm -f pkcs12_template_asn1_files ; exit 1) + +digest_template_asn1_files: asn1_compile$(EXEEXT) $(srcdir)/digest.asn1 + $(ASN1_COMPILE) --one-code-file --template $(srcdir)/digest.asn1 digest_template_asn1 || (rm -f digest_template_asn1_files ; exit 1) + +kx509_template_asn1_files: asn1_compile$(EXEEXT) $(srcdir)/kx509.asn1 + $(ASN1_COMPILE) --one-code-file --template $(srcdir)/kx509.asn1 kx509_template_asn1 || (rm -f kx509_template_asn1_files ; exit 1) + rfc2459_asn1_files: asn1_compile$(EXEEXT) $(srcdir)/rfc2459.asn1 $(ASN1_COMPILE) --one-code-file $(TEMPLATE_OPTION) --option-file=$(srcdir)/rfc2459.opt $(srcdir)/rfc2459.asn1 rfc2459_asn1 || (rm -f rfc2459_asn1_files ; exit 1) @@ -360,6 +501,7 @@ EXTRA_DIST = \ DER_PROTOS = $(srcdir)/der-protos.h $(srcdir)/der-private.h ALL_OBJECTS = $(libasn1_la_OBJECTS) +ALL_OBJECTS += $(libasn1template_la_OBJECTS) ALL_OBJECTS += $(libasn1base_la_OBJECTS) ALL_OBJECTS += $(asn1_print_OBJECTS) ALL_OBJECTS += $(asn1_compile_OBJECTS)