1########################################################################
2#
3# Copyright (c) 2009-2016, 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=kdc
33
34!include ../windows/NTMakefile.w32
35
36BINPROGRAMS=$(BINDIR)\string2key.exe
37
38SBINPROGRAMS=$(SBINDIR)\kstash.exe
39
40LIBEXECPROGRAMS= \
41          $(LIBEXECDIR)\hprop.exe \
42          $(LIBEXECDIR)\hpropd.exe \
43          $(LIBEXECDIR)\kdc.exe \
44#         $(LIBEXECDIR)\digest-service.exe
45
46NOINST_PROGRAMS=$(OBJ)\kdc-replay.exe
47
48INCFILES=\
49          $(INCDIR)\kdc.h               \
50          $(INCDIR)\kdc-protos.h        \
51          $(INCDIR)\kdc-private.h       \
52          $(INCDIR)\krb5\windc_plugin.h
53
54all:: $(INCFILES) $(LIBKDC) $(BINPROGRAMS) $(SBINPROGRAMS) $(LIBEXECPROGRAMS)
55
56clean::
57          -$(RM) $(LIBKDC)
58          -$(RM) $(BINPROGRAMS:.exe=.*) $(SBINPROGRAMS:.exe=.*) $(LIBEXECPROGRAMS:.exe=.*)
59
60BIN_LIBS=\
61          $(LIBHDB) \
62          $(LIBHEIMDAL)       \
63          $(LIBROKEN)         \
64          $(LIBVERS)
65
66$(LIBEXECDIR)\hprop.exe: $(OBJ)\hprop.obj $(OBJ)\mit_dump.obj $(BIN_LIBS) $(OBJ)\hprop-version.res
67          $(EXECONLINK)
68          $(EXEPREP)
69
70$(LIBEXECDIR)\hpropd.exe: $(OBJ)\hpropd.obj $(BIN_LIBS) $(OBJ)\hpropd-version.res
71          $(EXECONLINK)
72          $(EXEPREP)
73
74$(SBINDIR)\kstash.exe: $(OBJ)\kstash.obj $(BIN_LIBS) $(OBJ)\kstash-version.res
75          $(EXECONLINK)
76          $(EXEPREP)
77
78$(BINDIR)\string2key.exe: $(OBJ)\string2key.obj $(BIN_LIBS) $(OBJ)\string2key-version.res
79          $(EXECONLINK)
80          $(EXEPREP)
81
82$(BINDIR)\digest-service.exe: $(OBJ)\digest-service.obj $(BIN_LIBS)
83          $(EXECONLINK)
84          $(EXEPREP)
85
86$(LIBEXECDIR)\kdc.exe: \
87                    $(OBJ)\connect.obj $(OBJ)\config.obj $(OBJ)\announce.obj \
88                    $(OBJ)\main.obj $(OBJ)\kdc-version.res \
89                    $(LIBKDC) $(BIN_LIBS) $(LIB_openssl_crypto)
90          $(EXECONLINK)
91          $(EXEPREP)
92
93LIBKDC_OBJS=\
94          $(OBJ)\default_config.obj     \
95          $(OBJ)\set_dbinfo.obj         \
96          $(OBJ)\digest.obj   \
97          $(OBJ)\fast.obj     \
98          $(OBJ)\kerberos5.obj          \
99          $(OBJ)\krb5tgs.obj  \
100          $(OBJ)\pkinit.obj   \
101          $(OBJ)\pkinit-ec.obj          \
102          $(OBJ)\log.obj                \
103          $(OBJ)\misc.obj               \
104          $(OBJ)\kx509.obj    \
105          $(OBJ)\process.obj  \
106          $(OBJ)\windc.obj
107
108LIBKDC_LIBS=\
109          $(LIBHDB)           \
110          $(LIBHEIMBASE)                \
111          $(LIBHEIMDAL)                 \
112          $(LIBHEIMNTLM)                \
113          $(LIB_openssl_crypto)         \
114          $(LIBROKEN)
115
116LIBKDCRES=$(OBJ)\libkdc-version.res
117
118$(LIBEXECDIR)\libkdc.dll: $(LIBKDC_OBJS) $(LIBKDC_LIBS) $(LIBKDCRES)
119          $(DLLGUILINK) -implib:$(LIBKDC) -def:libkdc-exports.def
120          $(DLLPREP_NODIST)
121
122$(LIBKDC): $(LIBEXECDIR)\libkdc.dll
123
124clean::
125          -$(RM) $(LIBEXECDIR)\libkdc.*
126
127libkdc_la_SOURCES =                     \
128          default_config.c    \
129          set_dbinfo.c                  \
130          digest.c            \
131          fast.c              \
132          kdc_locl.h                    \
133          kerberos5.c                   \
134          krb5tgs.c           \
135          pkinit.c            \
136          pkinit-ec.c                   \
137          log.c                         \
138          misc.c                        \
139          kx509.c                       \
140          process.c           \
141          windc.c                       \
142          rx.h
143
144$(OBJ)\kdc-protos.h: $(libkdc_la_SOURCES)
145          $(PERL) ..\cf\make-proto.pl -q -P remove -o $@ $(libkdc_la_SOURCES) \
146          || $(RM) $@
147
148$(OBJ)\kdc-private.h: $(libkdc_la_SOURCES)
149          $(PERL) ..\cf\make-proto.pl -q -P remove -p $@ $(libkdc_la_SOURCES) \
150          || $(RM) $@
151