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=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!ifdef KRB4
71$(LIBEXECDIR)\hprop.exe: $(OBJ)\v4_dump.obj
72!endif
73
74
75$(LIBEXECDIR)\hpropd.exe: $(OBJ)\hpropd.obj $(BIN_LIBS) $(OBJ)\hpropd-version.res
76	$(EXECONLINK)
77	$(EXEPREP)
78
79$(SBINDIR)\kstash.exe: $(OBJ)\kstash.obj $(BIN_LIBS) $(OBJ)\kstash-version.res
80	$(EXECONLINK)
81	$(EXEPREP)
82
83$(BINDIR)\string2key.exe: $(OBJ)\string2key.obj $(BIN_LIBS) $(OBJ)\string2key-version.res
84	$(EXECONLINK)
85	$(EXEPREP)
86
87$(BINDIR)\digest-service.exe: $(OBJ)\digest-service.obj $(BIN_LIBS)
88	$(EXECONLINK)
89	$(EXEPREP)
90
91$(LIBEXECDIR)\kdc.exe: \
92		$(OBJ)\connect.obj $(OBJ)\config.obj $(OBJ)\announce.obj \
93		$(OBJ)\main.obj $(OBJ)\kdc-version.res \
94		$(LIBKDC) $(BIN_LIBS)
95	$(EXECONLINK)
96	$(EXEPREP)
97
98LIBKDC_OBJS=\
99	$(OBJ)\default_config.obj	\
100	$(OBJ)\set_dbinfo.obj 	\
101	$(OBJ)\digest.obj	\
102	$(OBJ)\kerberos5.obj	\
103	$(OBJ)\krb5tgs.obj	\
104	$(OBJ)\pkinit.obj	\
105	$(OBJ)\log.obj		\
106	$(OBJ)\misc.obj		\
107	$(OBJ)\kx509.obj	\
108	$(OBJ)\process.obj	\
109	$(OBJ)\windc.obj
110
111!ifdef KRB4
112LIBKDC_OBJS=$(LIBKDC_OBJS) \
113	$(OBJ)\524.obj		\
114	$(OBJ)\kerberos4.obj
115!endif
116
117LIBKDC_LIBS=\
118	$(LIBHDB)	\
119	$(LIBHEIMDAL)	\
120	$(LIBHEIMNTLM)	\
121	$(LIBROKEN)
122
123LIBKDCRES=$(OBJ)\libkdc-version.res
124
125$(LIBEXECDIR)\libkdc.dll: $(LIBKDC_OBJS) $(LIBKDC_LIBS) $(LIBKDCRES)
126	$(DLLGUILINK) -implib:$(LIBKDC) -def:libkdc-exports.def
127	$(DLLPREP)
128
129$(LIBKDC): $(LIBEXECDIR)\libkdc.dll
130
131clean::
132	-$(RM) $(LIBEXECDIR)\libkdc.*
133
134libkdc_la_SOURCES = 		\
135	default_config.c 	\
136	set_dbinfo.c	 	\
137	digest.c		\
138	kdc_locl.h		\
139	kerberos5.c		\
140	krb5tgs.c		\
141	pkinit.c		\
142	log.c			\
143	misc.c			\
144	kx509.c			\
145	process.c		\
146	windc.c			\
147	rx.h
148
149!ifdef KRB4
150libkdc_la_SOURCES=$(libkdc_la_SOURCES) \
151	524.c			\
152	kerberos4.c
153!endif
154
155$(OBJ)\kdc-protos.h: $(libkdc_la_SOURCES)
156	$(PERL) ..\cf\make-proto.pl -q -P remove -o $@ $(libkdc_la_SOURCES) \
157	|| $(RM) $@
158
159$(OBJ)\kdc-private.h: $(libkdc_la_SOURCES)
160	$(PERL) ..\cf\make-proto.pl -q -P remove -p $@ $(libkdc_la_SOURCES) \
161	|| $(RM) $@
162