1include $(top_srcdir)/Makefile.am.common
2
3AM_CPPFLAGS += $(INCLUDE_openssl_crypto)
4
5lib_LTLIBRARIES = libhx509.la
6libhx509_la_LDFLAGS = -version-info 5:0:0
7
8BUILT_SOURCES =                                   \
9          sel-gram.h                              \
10          $(gen_files_ocsp:.x=.c)                 \
11          $(gen_files_pkcs10:.x=.c)     \
12          hx509_err.c                             \
13          hx509_err.h
14
15gen_files_ocsp =                        \
16          asn1_OCSPBasicOCSPResponse.x  \
17          asn1_OCSPCertID.x             \
18          asn1_OCSPCertStatus.x                   \
19          asn1_OCSPInnerRequest.x                 \
20          asn1_OCSPKeyHash.x            \
21          asn1_OCSPRequest.x            \
22          asn1_OCSPResponderID.x                  \
23          asn1_OCSPResponse.x           \
24          asn1_OCSPResponseBytes.x      \
25          asn1_OCSPResponseData.x                 \
26          asn1_OCSPResponseStatus.x     \
27          asn1_OCSPSignature.x                    \
28          asn1_OCSPSingleResponse.x     \
29          asn1_OCSPTBSRequest.x                   \
30          asn1_OCSPVersion.x            \
31          asn1_id_pkix_ocsp.x           \
32          asn1_id_pkix_ocsp_basic.x     \
33          asn1_id_pkix_ocsp_nonce.x
34
35gen_files_pkcs10 =                      \
36          asn1_CertificationRequestInfo.x         \
37          asn1_CertificationRequest.x
38
39gen_files_crmf =                        \
40          asn1_CRMFRDNSequence.x                  \
41          asn1_CertReqMessages.x                  \
42          asn1_CertReqMsg.x             \
43          asn1_CertRequest.x            \
44          asn1_CertTemplate.x           \
45          asn1_Controls.x                         \
46          asn1_PBMParameter.x           \
47          asn1_PKMACValue.x             \
48          asn1_POPOPrivKey.x            \
49          asn1_POPOSigningKey.x                   \
50          asn1_POPOSigningKeyInput.x    \
51          asn1_ProofOfPossession.x      \
52          asn1_SubsequentMessage.x
53
54AM_YFLAGS = -d
55
56dist_libhx509_la_SOURCES = \
57          ca.c \
58          cert.c \
59          char_map.h \
60          cms.c \
61          collector.c \
62          crypto.c \
63          crypto-ec.c \
64          doxygen.c \
65          error.c \
66          env.c \
67          file.c \
68          hx509.h \
69          hx_locl.h \
70          sel.c \
71          sel.h \
72          sel-gram.y \
73          sel-lex.l \
74          keyset.c \
75          ks_dir.c \
76          ks_file.c \
77          ks_mem.c \
78          ks_null.c \
79          ks_p11.c \
80          ks_p12.c \
81          ks_keychain.c \
82          lock.c \
83          name.c \
84          peer.c \
85          print.c \
86          softp11.c \
87          ref/pkcs11.h \
88          req.c \
89          revoke.c
90
91sel-lex.c: sel-gram.h
92
93libhx509_la_DEPENDENCIES = version-script.map
94
95libhx509_la_LIBADD = \
96          $(LIB_com_err) \
97          $(LIB_hcrypto) \
98          $(LIB_openssl_crypto) \
99          $(top_builddir)/lib/asn1/libasn1.la \
100          $(top_builddir)/lib/wind/libwind.la \
101          $(top_builddir)/lib/base/libheimbase.la \
102          $(LIBADD_roken) \
103          $(LIB_dlopen)
104
105if FRAMEWORK_SECURITY
106libhx509_la_LDFLAGS += -framework Security -framework CoreFoundation
107endif
108
109if versionscript
110libhx509_la_LDFLAGS += $(LDFLAGS_VERSION_SCRIPT)$(srcdir)/version-script.map
111endif
112$(libhx509_la_OBJECTS): $(srcdir)/version-script.map $(nodist_include_HEADERS) $(priv_headers)
113
114nodist_libhx509_la_SOURCES = $(BUILT_SOURCES)
115
116$(gen_files_ocsp) ocsp_asn1.hx ocsp_asn1-priv.hx: ocsp_asn1_files
117$(gen_files_pkcs10) pkcs10_asn1.hx pkcs10_asn1-priv.hx: pkcs10_asn1_files
118$(gen_files_crmf) crmf_asn1.hx crmf_asn1-priv.hx: crmf_asn1_files
119
120dist_include_HEADERS = hx509.h $(srcdir)/hx509-protos.h
121
122noinst_HEADERS = $(srcdir)/hx509-private.h
123
124nodist_include_HEADERS = hx509_err.h
125nodist_include_HEADERS += ocsp_asn1.h
126nodist_include_HEADERS += pkcs10_asn1.h
127nodist_include_HEADERS += crmf_asn1.h
128
129priv_headers  = ocsp_asn1-priv.h
130priv_headers += pkcs10_asn1-priv.h
131priv_headers += crmf_asn1-priv.h
132
133
134ocsp_asn1_files: $(ASN1_COMPILE_DEP) $(srcdir)/ocsp.asn1 $(srcdir)/ocsp.opt
135          $(heim_verbose)$(ASN1_COMPILE) --option-file=$(srcdir)/ocsp.opt $(srcdir)/ocsp.asn1 ocsp_asn1 || (rm -f ocsp_asn1_files ; exit 1)
136
137pkcs10_asn1_files: $(ASN1_COMPILE_DEP) $(srcdir)/pkcs10.asn1 $(srcdir)/pkcs10.opt
138          $(heim_verbose)$(ASN1_COMPILE) --option-file=$(srcdir)/pkcs10.opt $(srcdir)/pkcs10.asn1 pkcs10_asn1 || (rm -f pkcs10_asn1_files ; exit 1)
139
140crmf_asn1_files: $(ASN1_COMPILE_DEP) $(srcdir)/crmf.asn1
141          $(heim_verbose)$(ASN1_COMPILE) $(srcdir)/crmf.asn1 crmf_asn1 || (rm -f crmf_asn1_files ; exit 1)
142
143ALL_OBJECTS  = $(libhx509_la_OBJECTS)
144ALL_OBJECTS += $(hxtool_OBJECTS)
145
146HX509_PROTOS = $(srcdir)/hx509-protos.h $(srcdir)/hx509-private.h
147
148$(ALL_OBJECTS): $(HX509_PROTOS)
149
150$(libhx509_la_OBJECTS): $(srcdir)/hx_locl.h
151$(libhx509_la_OBJECTS): ocsp_asn1.h pkcs10_asn1.h
152
153$(srcdir)/hx509-protos.h: $(dist_libhx509_la_SOURCES)
154          $(heim_verbose)cd $(srcdir) && perl ../../cf/make-proto.pl -R '^(_|^C)' -E HX509_LIB -q -P comment -o hx509-protos.h $(dist_libhx509_la_SOURCES) || rm -f hx509-protos.h
155
156$(srcdir)/hx509-private.h: $(dist_libhx509_la_SOURCES)
157          $(heim_verbose)cd $(srcdir) && perl ../../cf/make-proto.pl -q -P comment -p hx509-private.h $(dist_libhx509_la_SOURCES) || rm -f hx509-private.h
158
159bin_PROGRAMS = hxtool
160
161hxtool-commands.c hxtool-commands.h: hxtool-commands.in $(SLC)
162          $(heim_verbose)$(SLC) $(srcdir)/hxtool-commands.in
163
164dist_hxtool_SOURCES = hxtool.c
165nodist_hxtool_SOURCES = hxtool-commands.c hxtool-commands.h
166
167$(hxtool_OBJECTS): hxtool-commands.h $(nodist_include_HEADERS)
168
169hxtool_LDADD = \
170          libhx509.la \
171          $(top_builddir)/lib/asn1/libasn1.la \
172          $(LIB_hcrypto) \
173          $(LIB_roken) \
174          $(top_builddir)/lib/sl/libsl.la
175
176CLEANFILES = $(BUILT_SOURCES) sel-gram.c sel-lex.c \
177          $(gen_files_ocsp) ocsp_asn1_files ocsp_asn1{,-priv}.h* \
178          ocsp_asn1-template.[chx]* \
179          $(gen_files_pkcs10) pkcs10_asn1_files pkcs10_asn1{,-priv}.h* \
180          pkcs10_asn1-template.[chx]* \
181          $(gen_files_crmf) crmf_asn1_files crmf_asn1{,-priv}.h* \
182          crmf_asn1-template.[chx]* \
183          $(TESTS) \
184          hxtool-commands.c hxtool-commands.h *.tmp \
185          request.out \
186          out.pem out2.pem \
187          sd sd.pem \
188          sd.data sd.data.out \
189          ev.data ev.data.out \
190          cert-null.pem cert-sub-ca2.pem \
191          cert-ee.pem cert-ca.pem \
192          cert-sub-ee.pem cert-sub-ca.pem \
193          cert-proxy.der cert-ca.der cert-ee.der pkcs10-request.der \
194          wca.pem wuser.pem wdc.pem wcrl.crl \
195          random-data statfile crl.crl \
196          test p11dbg.log pkcs11.cfg \
197          test-rc-file.rc
198
199clean-local:
200          @echo "cleaning PKITS" ; rm -rf PKITS_data
201
202#
203# regression tests
204#
205
206check_SCRIPTS = $(SCRIPT_TESTS)
207check_PROGRAMS = $(PROGRAM_TESTS) test_soft_pkcs11
208
209LDADD = libhx509.la
210
211test_soft_pkcs11_LDADD = libhx509.la $(top_builddir)/lib/asn1/libasn1.la
212
213test_name_LDADD = libhx509.la $(LIB_roken) $(top_builddir)/lib/asn1/libasn1.la
214test_expr_LDADD = libhx509.la $(LIB_roken) $(top_builddir)/lib/asn1/libasn1.la
215
216TESTS = $(SCRIPT_TESTS) $(PROGRAM_TESTS)
217
218PROGRAM_TESTS =               \
219          test_name           \
220          test_expr
221
222SCRIPT_TESTS =                          \
223          test_ca                       \
224          test_cert           \
225          test_chain                    \
226          test_cms            \
227          test_crypto                   \
228          test_nist           \
229          test_nist2                    \
230          test_pkcs11                   \
231          test_java_pkcs11    \
232          test_nist_cert                \
233          test_nist_pkcs12    \
234          test_req            \
235          test_windows                  \
236          test_query
237
238do_subst = $(heim_verbose)sed -e 's,[@]srcdir[@],$(srcdir),g' \
239          -e 's,[@]objdir[@],$(top_builddir)/lib/hx509,g' \
240          -e 's,[@]egrep[@],$(EGREP),g'
241
242test_ca: test_ca.in Makefile
243          $(do_subst) < $(srcdir)/test_ca.in > test_ca.tmp
244          $(heim_verbose)chmod +x test_ca.tmp
245          mv test_ca.tmp test_ca
246
247test_cert: test_cert.in Makefile
248          $(do_subst) < $(srcdir)/test_cert.in > test_cert.tmp
249          $(heim_verbose)chmod +x test_cert.tmp
250          mv test_cert.tmp test_cert
251
252test_chain: test_chain.in Makefile
253          $(do_subst) < $(srcdir)/test_chain.in > test_chain.tmp
254          $(heim_verbose)chmod +x test_chain.tmp
255          mv test_chain.tmp test_chain
256
257test_cms: test_cms.in Makefile
258          $(do_subst) < $(srcdir)/test_cms.in > test_cms.tmp
259          $(heim_verbose)chmod +x test_cms.tmp
260          mv test_cms.tmp test_cms
261
262test_crypto: test_crypto.in Makefile
263          $(do_subst) < $(srcdir)/test_crypto.in > test_crypto.tmp
264          $(heim_verbose)chmod +x test_crypto.tmp
265          mv test_crypto.tmp test_crypto
266
267test_nist: test_nist.in Makefile
268          $(do_subst) < $(srcdir)/test_nist.in > test_nist.tmp
269          $(heim_verbose)chmod +x test_nist.tmp
270          mv test_nist.tmp test_nist
271
272test_nist2: test_nist2.in Makefile
273          $(do_subst) < $(srcdir)/test_nist2.in > test_nist2.tmp
274          $(heim_verbose)chmod +x test_nist2.tmp
275          mv test_nist2.tmp test_nist2
276
277test_pkcs11: test_pkcs11.in Makefile
278          $(do_subst) < $(srcdir)/test_pkcs11.in > test_pkcs11.tmp
279          $(heim_verbose)chmod +x test_pkcs11.tmp
280          mv test_pkcs11.tmp test_pkcs11
281
282test_java_pkcs11: test_java_pkcs11.in Makefile
283          $(do_subst) < $(srcdir)/test_java_pkcs11.in > test_java_pkcs11.tmp
284          $(heim_verbose)chmod +x test_java_pkcs11.tmp
285          mv test_java_pkcs11.tmp test_java_pkcs11
286
287test_nist_cert: test_nist_cert.in Makefile
288          $(do_subst) < $(srcdir)/test_nist_cert.in > test_nist_cert.tmp
289          $(heim_verbose)chmod +x test_nist_cert.tmp
290          mv test_nist_cert.tmp test_nist_cert
291
292test_nist_pkcs12: test_nist_pkcs12.in Makefile
293          $(do_subst) < $(srcdir)/test_nist_pkcs12.in > test_nist_pkcs12.tmp
294          $(heim_verbose)chmod +x test_nist_pkcs12.tmp
295          mv test_nist_pkcs12.tmp test_nist_pkcs12
296
297test_req: test_req.in Makefile
298          $(do_subst) < $(srcdir)/test_req.in > test_req.tmp
299          $(heim_verbose)chmod +x test_req.tmp
300          mv test_req.tmp test_req
301
302test_windows: test_windows.in Makefile
303          $(do_subst) < $(srcdir)/test_windows.in > test_windows.tmp
304          $(heim_verbose)chmod +x test_windows.tmp
305          mv test_windows.tmp test_windows
306
307test_query: test_query.in Makefile
308          $(do_subst) < $(srcdir)/test_query.in > test_query.tmp
309          $(heim_verbose)chmod +x test_query.tmp
310          mv test_query.tmp test_query
311
312EXTRA_DIST = \
313          NTMakefile \
314          hxtool-version.rc \
315          libhx509-exports.def \
316          version-script.map \
317          crmf.asn1 \
318          hx509_err.et \
319          hxtool-commands.in \
320          quote.py \
321          ocsp.asn1 \
322          ocsp.opt \
323          pkcs10.asn1 \
324          pkcs10.opt \
325          test_ca.in \
326          test_chain.in \
327          test_cert.in \
328          test_cms.in \
329          test_crypto.in \
330          test_nist.in \
331          test_nist2.in \
332          test_nist_cert.in \
333          test_nist_pkcs12.in \
334          test_pkcs11.in \
335          test_java_pkcs11.in \
336          test_query.in \
337          test_req.in \
338          test_windows.in \
339          tst-crypto-available1 \
340          tst-crypto-available2 \
341          tst-crypto-available3 \
342          tst-crypto-select \
343          tst-crypto-select1 \
344          tst-crypto-select2 \
345          tst-crypto-select3 \
346          tst-crypto-select4 \
347          tst-crypto-select5 \
348          tst-crypto-select6 \
349          tst-crypto-select7 \
350          data/PKITS_data.zip \
351          data/eccurve.pem \
352          data/https.crt \
353          data/https.key \
354          data/mkcert.sh \
355          data/nist-result2 \
356          data/n0ll.pem \
357          data/secp256r1TestCA.cert.pem \
358          data/secp256r1TestCA.key.pem \
359          data/secp256r1TestCA.pem \
360          data/secp256r2TestClient.cert.pem \
361          data/secp256r2TestClient.key.pem \
362          data/secp256r2TestClient.pem \
363          data/secp256r2TestServer.cert.pem \
364          data/secp256r2TestServer.key.pem \
365          data/secp256r2TestServer.pem \
366          data/bleichenbacher-bad.pem \
367          data/bleichenbacher-good.pem \
368          data/bleichenbacher-sf-pad-correct.pem \
369          data/ca.crt \
370          data/ca.key \
371          data/crl1.crl \
372          data/crl1.der \
373          data/gen-req.sh \
374          data/j.pem \
375          data/kdc.crt \
376          data/kdc.key \
377          data/key.der \
378          data/key2.der \
379          data/nist-data \
380          data/nist-data2 \
381          data/no-proxy-test.crt \
382          data/no-proxy-test.key \
383          data/ocsp-req1.der \
384          data/ocsp-req2.der \
385          data/ocsp-resp1-2.der \
386          data/ocsp-resp1-3.der \
387          data/ocsp-resp1-ca.der \
388          data/ocsp-resp1-keyhash.der \
389          data/ocsp-resp1-ocsp-no-cert.der \
390          data/ocsp-resp1-ocsp.der \
391          data/ocsp-resp1.der \
392          data/ocsp-resp2.der \
393          data/ocsp-responder.crt \
394          data/ocsp-responder.key \
395          data/openssl.1.0.cnf \
396          data/openssl.1.1.cnf \
397          data/pkinit-proxy-chain.crt \
398          data/pkinit-proxy.crt \
399          data/pkinit-proxy.key \
400          data/pkinit-pw.key \
401          data/pkinit.crt \
402          data/pkinit.key \
403          data/pkinit-ec.crt \
404          data/pkinit-ec.key \
405          data/proxy-level-test.crt \
406          data/proxy-level-test.key \
407          data/proxy-test.crt \
408          data/proxy-test.key \
409          data/proxy10-child-test.crt \
410          data/proxy10-child-test.key \
411          data/proxy10-child-child-test.crt \
412          data/proxy10-child-child-test.key \
413          data/proxy10-test.crt \
414          data/proxy10-test.key \
415          data/revoke.crt \
416          data/revoke.key \
417          data/sf-class2-root.pem \
418          data/static-file \
419          data/sub-ca.crt \
420          data/sub-ca.key \
421          data/sub-cert.crt \
422          data/sub-cert.key \
423          data/sub-cert.p12 \
424          data/test-ds-only.crt \
425          data/test-ds-only.key \
426          data/test-enveloped-aes-128 \
427          data/test-enveloped-aes-256 \
428          data/test-enveloped-des \
429          data/test-enveloped-des-ede3 \
430          data/test-enveloped-rc2-128 \
431          data/test-enveloped-rc2-40 \
432          data/test-enveloped-rc2-64 \
433          data/test-ke-only.crt \
434          data/test-ke-only.key \
435          data/test-nopw.p12 \
436          data/test-pw.key \
437          data/test-signed-data \
438          data/test-signed-data-noattr \
439          data/test-signed-data-noattr-nocerts \
440          data/test-signed-sha-1 \
441          data/test-signed-sha-256 \
442          data/test-signed-sha-512 \
443          data/test.combined.crt \
444          data/test.crt \
445          data/test.key \
446          data/test.p12 \
447          data/win-u16-in-printablestring.der \
448          data/yutaka-pad-broken-ca.pem \
449          data/yutaka-pad-broken-cert.pem \
450          data/yutaka-pad-ok-ca.pem \
451          data/yutaka-pad-ok-cert.pem \
452          data/yutaka-pad.key
453