1######################################################################## 2# 3# Copyright (c) 2009, Secure Endpoints Inc. 4# All rights reserved. 5# 6# Redistribution and use in source and binary forms, with or without 7# modification, are permitted provided that the following conditions 8# are met: 9# 10# - Redistributions of source code must retain the above copyright 11# notice, this list of conditions and the following disclaimer. 12# 13# - Redistributions in binary form must reproduce the above copyright 14# notice, this list of conditions and the following disclaimer in 15# the documentation and/or other materials provided with the 16# distribution. 17# 18# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 21# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 22# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 23# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 24# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 25# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 28# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 29# POSSIBILITY OF SUCH DAMAGE. 30# 31 32RELDIR=lib\hx509 33intcflags=-I$(SRCDIR)\ref -I$(OBJ) 34localcflags=-DASN1_LIB 35 36!include ../../windows/NTMakefile.w32 37 38gen_files_ocsp = $(OBJ)\asn1_ocsp_asn1.x 39 40gen_files_pkcs10 = $(OBJ)\asn1_pkcs10_asn1.x 41 42gen_files_crmf = $(OBJ)\asn1_crmf_asn1.x 43 44libhx509_la_OBJS = \ 45 $(OBJ)\ca.obj \ 46 $(OBJ)\cert.obj \ 47 $(OBJ)\cms.obj \ 48 $(OBJ)\collector.obj \ 49 $(OBJ)\crypto.obj \ 50 $(OBJ)\error.obj \ 51 $(OBJ)\env.obj \ 52 $(OBJ)\file.obj \ 53 $(OBJ)\hx509_err.obj \ 54 $(OBJ)\sel.obj \ 55 $(OBJ)\sel-gram.obj \ 56 $(OBJ)\sel-lex.obj \ 57 $(OBJ)\keyset.obj \ 58 $(OBJ)\ks_dir.obj \ 59 $(OBJ)\ks_file.obj \ 60 $(OBJ)\ks_mem.obj \ 61 $(OBJ)\ks_null.obj \ 62 $(OBJ)\ks_p11.obj \ 63 $(OBJ)\ks_p12.obj \ 64 $(OBJ)\ks_keychain.obj \ 65 $(OBJ)\lock.obj \ 66 $(OBJ)\name.obj \ 67 $(OBJ)\peer.obj \ 68 $(OBJ)\print.obj \ 69 $(OBJ)\softp11.obj \ 70 $(OBJ)\req.obj \ 71 $(OBJ)\revoke.obj \ 72 $(gen_files_ocsp:.x=.obj) \ 73 $(gen_files_pkcs10:.x=.obj) 74 75$(LIBHX509): $(libhx509_la_OBJS) 76 $(LIBCON) 77 78dist_libhx509_la_SOURCES = \ 79 $(SRCDIR)\ca.c \ 80 $(SRCDIR)\cert.c \ 81 $(SRCDIR)\cms.c \ 82 $(SRCDIR)\collector.c \ 83 $(SRCDIR)\crypto.c \ 84 $(SRCDIR)\doxygen.c \ 85 $(SRCDIR)\error.c \ 86 $(SRCDIR)\env.c \ 87 $(SRCDIR)\file.c \ 88 $(SRCDIR)\hx509.h \ 89 $(SRCDIR)\hx_locl.h \ 90 $(SRCDIR)\sel.c \ 91 $(SRCDIR)\sel.h \ 92 $(SRCDIR)\sel-gram.y \ 93 $(SRCDIR)\sel-lex.l \ 94 $(SRCDIR)\keyset.c \ 95 $(SRCDIR)\ks_dir.c \ 96 $(SRCDIR)\ks_file.c \ 97 $(SRCDIR)\ks_mem.c \ 98 $(SRCDIR)\ks_null.c \ 99 $(SRCDIR)\ks_p11.c \ 100 $(SRCDIR)\ks_p12.c \ 101 $(SRCDIR)\ks_keychain.c \ 102 $(SRCDIR)\lock.c \ 103 $(SRCDIR)\name.c \ 104 $(SRCDIR)\peer.c \ 105 $(SRCDIR)\print.c \ 106 $(SRCDIR)\softp11.c \ 107 $(SRCDIR)\ref\pkcs11.h \ 108 $(SRCDIR)\req.c \ 109 $(SRCDIR)\revoke.c 110 111asn1_compile=$(BINDIR)\asn1_compile.exe 112 113$(gen_files_ocsp:.x=.c): $$(@R).x 114 115$(gen_files_pkcs10:.x=.c): $$(@R).x 116 117$(gen_files_crmf:.x=.c): $$(@R).x 118 119$(gen_files_ocsp) $(OBJ)\ocsp_asn1.hx: $(asn1_compile) ocsp.asn1 120 cd $(OBJ) 121 $(asn1_compile) --one-code-file \ 122 --preserve-binary=OCSPTBSRequest \ 123 --preserve-binary=OCSPResponseData \ 124 $(SRCDIR)\ocsp.asn1 ocsp_asn1 \ 125 || ( $(RM) -f $(gen_files_ocsp) $(OBJ)\ocsp_asn1.h ; exit /b 1 ) 126 cd $(SRCDIR) 127 128$(gen_files_pkcs10) $(OBJ)\pkcs10_asn1.hx: $(asn1_compile) pkcs10.asn1 129 cd $(OBJ) 130 $(asn1_compile) --one-code-file \ 131 --preserve-binary=CertificationRequestInfo \ 132 $(SRCDIR)\pkcs10.asn1 pkcs10_asn1 \ 133 || ( $(RM) -f $(gen_files_pkcs10) $(OBJ)\pkcs10_asn1.h ; exit /b 1 ) 134 cd $(SRCDIR) 135 136$(gen_files_crmf) $(OBJ)\crmf_asn1.hx: $(asn1_compile) crmf.asn1 137 cd $(OBJ) 138 $(asn1_compile) --one-code-file $(SRCDIR)\crmf.asn1 crmf_asn1 \ 139 || ( $(RM) -f $(gen_files_crmf) $(OBJ)\crmf_asn1.h ; exit /b 1 ) 140 cd $(SRCDIR) 141 142INCFILES= \ 143 $(INCDIR)\hx509.h \ 144 $(INCDIR)\hx509-protos.h \ 145 $(INCDIR)\hx509-private.h \ 146 $(INCDIR)\hx509_err.h \ 147 $(INCDIR)\ocsp_asn1.h \ 148 $(INCDIR)\pkcs10_asn1.h \ 149 $(INCDIR)\crmf_asn1.h \ 150 $(OBJ)\ocsp_asn1-priv.h \ 151 $(OBJ)\pkcs10_asn1-priv.h \ 152 $(OBJ)\crmf_asn1-priv.h 153 154hxtool.c: $(OBJ)\hxtool-commands.h 155 156SLC=$(BINDIR)\slc.exe 157 158$(OBJ)\hxtool-commands.c $(OBJ)\hxtool-commands.h: hxtool-commands.in $(SLC) 159 cd $(OBJ) 160 $(CP) $(SRCDIR)\hxtool-commands.in $(OBJ)\hxtool-commands.in 161 $(SLC) hxtool-commands.in 162 cd $(SRCDIR) 163 164$(BINDIR)\hxtool.exe: $(OBJ)\tool\hxtool.obj $(OBJ)\tool\hxtool-commands.obj $(LIBHEIMDAL) $(OBJ)\hxtool-version.res 165 $(EXECONLINK) $(LIBHEIMDAL) $(LIBROKEN) $(LIBSL) $(LIBVERS) $(LIBCOMERR) 166 $(EXEPREP) 167 168$(OBJ)\hx509-protos.h: 169 cd $(OBJ) 170 $(PERL) $(SRCDIR)\..\..\cf\make-proto.pl -R "^(_|^C)" -E HX509_LIB -q -P remove -o hx509-protos.h $(dist_libhx509_la_SOURCES) || $(RM) -f hx509-protos.h 171 cd $(SRCDIR) 172 173$(OBJ)\hx509-private.h: 174 cd $(OBJ) 175 $(PERL) $(SRCDIR)\..\..\cf\make-proto.pl -q -P remove -p hx509-private.h $(dist_libhx509_la_SOURCES) || $(RM) -f hx509-private.h 176 cd $(SRCDIR) 177 178$(OBJ)\hx509_err.c $(OBJ)\hx509_err.h: hx509_err.et 179 cd $(OBJ) 180 $(BINDIR)\compile_et.exe $(SRCDIR)\hx509_err.et 181 cd $(SRCDIR) 182 183$(OBJ)\sel-gram.obj: $(OBJ)\sel-gram.c 184 $(C2OBJ) -I$(SRCDIR) 185 186$(OBJ)\sel-lex.obj: $(OBJ)\sel-lex.c 187 $(C2OBJ) -I$(SRCDIR) -I$(OBJ) -DYY_NO_UNISTD_H 188 189$(OBJ)\sel-gram.c: sel-gram.y 190 $(YACC) -o $@ --defines=$(OBJ)\sel-gram.h sel-gram.y 191 192$(OBJ)\sel-lex.c: sel-lex.l 193 $(LEX) -o$@ sel-lex.l 194 195all:: $(INCFILES) $(LIBHX509) 196 197prep:: mktooldir 198 199mktooldir: 200! if !exist($(OBJ)\tool) 201 $(MKDIR) $(OBJ)\tool 202! endif 203 204all-tools:: $(BINDIR)\hxtool.exe 205 206clean:: 207 -$(RM) $(BINDIR)\hxtool.* 208 -$(RM) $(OBJ)\tool\*.* 209 210{}.c{$(OBJ)\tool}.obj:: 211 $(C2OBJ_C) /Fd$(OBJ)\tool\ /Fo$(OBJ)\tool\ $(MPOPT) /UASN1_LIB $< 212 213{$(OBJ)}.c{$(OBJ)\tool}.obj:: 214 $(C2OBJ_C) /Fd$(OBJ)\tool\ /Fo$(OBJ)\tool\ $(MPOPT) /UASN1_LIB $< 215 216