/ packages / windows / assembly / NTMakefile
NTMakefile
  1  ########################################################################
  2  #
  3  # Copyright (c) 2010, 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  
 32  RELDIR=packages\windows\assembly
 33  
 34  !include ../../../windows/NTMakefile.w32
 35  
 36  # CODESIGN_PKT should be set to the public key token of the code
 37  # signing certificate in use.  You can use :
 38  #
 39  # pktextract <path to certificate>
 40  #
 41  # ..to derive the public key token.
 42  #
 43  !ifndef CODESIGN_PKT
 44  !  error CODESIGN_PKT should be set to the public key token for codesigning certificate
 45  !endif
 46  
 47  prep:: mk-asm-dirs
 48  
 49  # ----------------------------------------------------------------------
 50  # Heimdal.Kerberos Assembly
 51  
 52  ASMKRBDIR=$(ASMDIR)\Heimdal.Kerberos
 53  ASMKRBVER=$(VER_PRODUCT_MAJOR).$(VER_PRODUCT_MINOR).$(VER_PRODUCT_AUX).$(VER_PRODUCT_PATCH)
 54  ASMKRBVER_OLD_BEGIN=$(VER_OLD_BEGIN_MAJOR).$(VER_OLD_BEGIN_MINOR).$(VER_OLD_BEGIN_AUX).$(VER_OLD_BEGIN_PATCH)
 55  ASMKRBVER_OLD_END=$(VER_OLD_END_MAJOR).$(VER_OLD_END_MINOR).$(VER_OLD_END_AUX).$(VER_OLD_END_PATCH)
 56  ASMKRBMAN=$(ASMKRBNAME).manifest
 57  
 58  ASMKRBBINS=\
 59  	$(ASMKRBDIR)\heimdal.dll	\
 60  	$(ASMKRBDIR)\com_err.dll	\
 61  	$(ASMKRBDIR)\heimntlm.dll	\
 62  	$(ASMKRBDIR)\gssapi.dll		\
 63  	$(ASMKRBDIR)\heimdal.pdb	\
 64  	$(ASMKRBDIR)\com_err.pdb	\
 65  	$(ASMKRBDIR)\heimntlm.pdb	\
 66  	$(ASMKRBDIR)\gssapi.pdb
 67  
 68  $(ASMKRBDIR)\$(ASMKRBMAN).nohash: Heimdal.Kerberos.manifest.in
 69  	$(SED)  -e "s,[@]name[@],$(ASMKRBNAME),g" \
 70  		-e "s,[@]cpu[@],$(MCPU),g" \
 71  		-e "s,[@]version[@],$(ASMKRBVER),g" \
 72  		-e "s,[@]pkt[@],$(CODESIGN_PKT),g" < $** > $@
 73  
 74  $(ASMKRBDIR)\$(ASMKRBMAN) $(ASMKRBDIR)\$(ASMKRBMAN).cdf: \
 75  		$(ASMKRBDIR)\$(ASMKRBMAN).nohash $(ASMKRBBINS)
 76  	-$(RM) $(ASMKRBDIR)\$(ASMKRBMAN)
 77  	-$(RM) $(ASMKRBDIR)\$(ASMKRBMAN).cdf
 78  	$(MT) -manifest $(ASMKRBDIR)\$(ASMKRBMAN).nohash -out:$(ASMKRBDIR)\$(ASMKRBMAN) -hashupdate -makecdfs
 79  
 80  $(ASMKRBDIR)\$(ASMKRBNAME).cat: $(ASMKRBDIR)\$(ASMKRBMAN).cdf
 81  	cd $(ASMKRBDIR)
 82  	$(MAKECAT) $**
 83  	$(_CODESIGN)
 84  #	$(RM) $(ASMKRBMAN).cdf
 85  #	$(RM) $(ASMKRBMAN).nohash
 86  	cd $(SRCDIR)
 87  
 88  asm-krb: \
 89  	$(APPMANIFEST)	\
 90  	$(ASMKRBBINS)	\
 91  	$(ASMKRBDIR)\$(ASMKRBMAN)	\
 92  	$(ASMKRBDIR)\$(ASMKRBNAME).cat	\
 93  
 94  all:: asm-krb
 95  
 96  clean::
 97  	-$(RM) $(ASMKRBDIR)\*.*
 98  
 99  test::
100  	$(MT) -manifest $(ASMKRBDIR)\$(ASMKRBMAN) -validate_manifest
101  
102  {$(BINDIR)}.dll{$(ASMKRBDIR)}.dll:
103  	$(CP) $< $@
104  	$(DLLPREP_MERGE)
105  
106  {$(BINDIR)}.pdb{$(ASMKRBDIR)}.pdb:
107  	$(CP) $< $@
108  
109  # ----------------------------------------------------------------------
110  # Application manifests
111  
112  all:: $(APPMANIFEST)
113  
114  clean::
115  	-$(RM) $(APPMANIFEST)
116  
117  $(APPMANIFEST): Heimdal.Application.manifest.in
118  	$(SED)	-e "s,[@]krbname[@],$(ASMKRBNAME),g" \
119  		-e "s,[@]krbversion[@],$(ASMKRBVER),g" \
120  		-e "s,[@]cpu[@],$(MCPU),g" \
121  		-e "s,[@]pkt[@],$(CODESIGN_PKT),g" < $** > $@
122  
123  test::
124  	$(MT) -manifest $(APPMANIFEST) -validate_manifest
125  
126  # ----------------------------------------------------------------------
127  # Publisher configuration files
128  
129  POLKRB=policy.$(VER_PRODUCT_MAJOR).$(VER_PRODUCT_MINOR).Heimdal.Kerberos
130  POLKRBDIR=$(ASMDIR)\$(POLKRB)
131  POLKRBFILE=$(POLKRBDIR)\$(ASMKRBVER).pol
132  POLKRBCAT=$(POLKRBDIR)\$(ASMKRBVER).cat
133  
134  $(POLKRBFILE): policy.Heimdal.Kerberos.in
135  	$(SED)  -e "s,[@]krbname[@],$(ASMKRBNAME),g"	\
136  		-e "s,[@]krbversion[@],$(ASMKRBVER),g"	\
137  		-e "s,[@]krbverfrom_begin[@],$(ASMKRBVER_OLD_BEGIN),g"	\
138  		-e "s,[@]krbverfrom_end[@],$(ASMKRBVER_OLD_END),g"	\
139  		-e "s,[@]krbpolname[@],$(POLKRB),g"	\
140  		-e "s,[@]cpu[@],$(MCPU),g"	\
141  		-e "s,[@]pkt[@],$(CODESIGN_PKT),g" < $** > $@
142  
143  $(POLKRBFILE).cdf: $(POLKRBFILE)
144  	$(MT) -manifest $(POLKRBFILE) -makecdfs
145  
146  $(POLKRBCAT): $(POLKRBFILE).cdf
147  	cd $(POLKRBDIR)
148  	$(MAKECAT) $**
149  	$(_CODESIGN)
150  	cd $(SRCDIR)
151  
152  all:: $(POLKRBFILE) $(POLKRBCAT)
153  
154  clean::
155  	-$(RM) $(POLKRBDIR)\*.*
156  
157  # ----------------------------------------------------------------------
158  
159  .SUFFIXES: .dll .pdb
160  
161  mk-asm-dirs:
162  !  if !exist($(ASMKRBDIR))
163  	$(MKDIR) $(ASMKRBDIR)
164  !  endif
165  !  if !exist($(POLKRBDIR))
166  	$(MKDIR) $(POLKRBDIR)
167  !  endif