1 CFLAGS = $(CCOPTS) $(DEFS)
8 DISTFILES = $(SRCS) $(HDRS) COPYING COPYING.LIB ChangeLog Makefile.in
14 all-windows:: makefile-windows
15 @echo Making in util\windows
17 -$(MAKE) -$(MAKEFLAGS)
18 @echo Making in include
20 -$(MAKE) -$(MAKEFLAGS)
21 @echo Making in util\et
23 -$(MAKE) -$(MAKEFLAGS)
24 @echo Making in util\profile
26 -$(MAKE) -$(MAKEFLAGS)
29 -$(MAKE) -$(MAKEFLAGS)
30 @echo Making in windows
32 -$(MAKE) -$(MAKEFLAGS)
33 @echo Making in clients
35 -$(MAKE) -$(MAKEFLAGS)
43 INSTALLMKDIRS = $(KRB5ROOT) $(KRB5MANROOT) $(KRB5OTHERMKDIRS) \
44 $(ADMIN_BINDIR) $(SERVER_BINDIR) $(CLIENT_BINDIR) \
45 $(ADMIN_MANDIR) $(SERVER_MANDIR) $(CLIENT_MANDIR) \
46 $(FILE_MANDIR) $(KRB5_LIBDIR) $(KRB5_INCDIR) \
49 install-recurse: install-mkdirs
52 @for i in $(INSTALLMKDIRS); do \
53 if test -d $(DESTDIR)$$i; then :; else (set -x; mkdir -p $(DESTDIR)$$i); fi ; \
57 # $(MAKE) $(MFLAGS) install.man
60 $(CC) -c $(CPPFLAGS) $(DEFS) -I$(srcdir) $(CFLAGS) $<
65 clean-:: clean-windows
66 clean-mac:: clean-unix
72 # This doesn't work; if you think you need it, you should use a
73 # separate build directory.
76 # rm -f Makefile config.status
78 # realclean: distclean
82 echo cpio-`sed -e '/version_string/!d' \
83 -e 's/[^0-9.]*\([0-9.]*\).*/\1/' -e q version.c` > .fname
86 -ln $(DISTFILES) `cat .fname`
87 for file in $(DISTFILES); do \
88 test -r `cat .fname`/$$file || cp -p $$file `cat .fname`; \
90 tar chzf `cat .fname`.tar.gz `cat .fname`
91 rm -rf `cat .fname` .fname
96 if test ! -d $(PKGDIR); then mkdir $(PKGDIR); else true; fi
98 rm -rf $(PKGDIR)/install cns5-bin.tgz
99 mkdir $(PKGDIR)/install
100 $(MAKE) install DESTDIR=$(PKGDIR)/install
101 (cd $(PKGDIR)/install && tar cf - usr/cygnus) | $(GZIPPROG) > cns5-bin.tgz
102 rm -rf $(PKGDIR)/install
104 # Macintosh build process...
106 # Build all things for the Mac build, which need to be built on
109 (cd lib/krb5/error_tables; make -f Makefile.in unixmac)
110 (cd lib/gssapi/generic; make -f Makefile.in unixmac)
113 # Microsoft Windows build process...
116 config-windows:: makefile-windows
117 @echo Making in include
119 -$(MAKE) -$(MAKEFLAGS)
122 ##DOS##MKFDEP= wconfig.exe config\pre.in config\post.in \
123 ##DOS## config\windows.in config\win-post.in
124 ##DOS##WCONFIG= .\wconfig $(WFLAGS)
126 ##DOS##makefile-windows:: $(MKFDEP) makefile \
127 ##DOS## clients\makefile clients\kdestroy\makefile \
128 ##DOS## clients\kinit\makefile clients\klist\makefile \
129 ##DOS## include\makefile include\krb5\makefile \
130 ##DOS## lib\makefile lib\crypto\makefile \
131 ##DOS## lib\crypto\crc32\makefile lib\crypto\des\makefile \
132 ##DOS## lib\crypto\sha\makefile \
133 ##DOS## lib\crypto\md4\makefile lib\crypto\md5\makefile \
134 ##DOS## lib\crypto\os\makefile lib\des425\makefile \
135 ##DOS## lib\gssapi\makefile lib\gssapi\generic\makefile \
136 ##DOS## lib\gssapi\krb5\makefile lib\gssapi\mechglue\makefile \
137 ##DOS## lib\kadm\makefile lib\krb4\makefile lib\krb5\makefile \
138 ##DOS## lib\krb5\asn.1\makefile lib\krb5\ccache\makefile \
139 ##DOS## lib\krb5\ccache\file\makefile \
140 ##DOS## lib\krb5\ccache\stdio\makefile \
141 ##DOS## lib\krb5\error_tables\makefile \
142 ##DOS## lib\krb5\free\makefile lib\krb5\keytab\makefile \
143 ##DOS## lib\krb5\keytab\file\makefile lib\krb5\krb\makefile \
144 ##DOS## lib\krb5\os\makefile lib\krb5\posix\makefile \
145 ##DOS## lib\krb5\rcache\makefile \
146 ##DOS## util\et\makefile util\profile\makefile \
147 ##DOS## util\windows\makefile \
148 ##DOS## windows\Makefile \
149 ##DOS## windows\cns\Makefile windows\gina\Makefile \
150 ##DOS## windows\gss\Makefile windows\wintel\Makefile
151 ##DOS## config\rm.bat wconfig.obj msvc.pdb
153 ##DOS##makefile: makefile.in $(MKFDEP)
154 ##DOS## $(WCONFIG) config < $@.in > $@
155 ##DOS##clients\makefile: clients\makefile.in $(MKFDEP)
156 ##DOS## $(WCONFIG) config < $@.in > $@
157 ##DOS##clients\kdestroy\makefile: clients\kdestroy\makefile.in $(MKFDEP)
158 ##DOS## $(WCONFIG) config < $@.in > $@
159 ##DOS##clients\kinit\makefile: clients\kinit\makefile.in $(MKFDEP)
160 ##DOS## $(WCONFIG) config < $@.in > $@
161 ##DOS##clients\klist\makefile: clients\klist\makefile.in $(MKFDEP)
162 ##DOS## $(WCONFIG) config < $@.in > $@
163 ##DOS##include\makefile: include\makefile.in $(MKFDEP)
164 ##DOS## $(WCONFIG) config < $@.in > $@
165 ##DOS##include\krb5\makefile: include\krb5\makefile.in $(MKFDEP)
166 ##DOS## $(WCONFIG) config < $@.in > $@
167 ##DOS##lib\makefile: lib\makefile.in $(MKFDEP)
168 ##DOS## $(WCONFIG) config < $@.in > $@
169 ##DOS##lib\crypto\makefile: lib\crypto\makefile.in $(MKFDEP)
170 ##DOS## $(WCONFIG) config < $@.in > $@
171 ##DOS##lib\crypto\crc32\makefile: lib\crypto\crc32\makefile.in $(MKFDEP)
172 ##DOS## $(WCONFIG) config < $@.in > $@
173 ##DOS##lib\crypto\des\makefile: lib\crypto\des\makefile.in $(MKFDEP)
174 ##DOS## $(WCONFIG) config < $@.in > $@
175 ##DOS##lib\crypto\sha\makefile: lib\crypto\sha\makefile.in $(MKFDEP)
176 ##DOS## $(WCONFIG) config < $@.in > $@
177 ##DOS##lib\crypto\md4\makefile: lib\crypto\md4\makefile.in $(MKFDEP)
178 ##DOS## $(WCONFIG) config < $@.in > $@
179 ##DOS##lib\crypto\md5\makefile: lib\crypto\md5\makefile.in $(MKFDEP)
180 ##DOS## $(WCONFIG) config < $@.in > $@
181 ##DOS##lib\crypto\os\makefile: lib\crypto\os\makefile.in $(MKFDEP)
182 ##DOS## $(WCONFIG) config < $@.in > $@
183 ##DOS##lib\des425\makefile: lib\des425\makefile.in $(MKFDEP)
184 ##DOS## $(WCONFIG) config < $@.in > $@
185 ##DOS##lib\gssapi\makefile: lib\gssapi\makefile.in $(MKFDEP)
186 ##DOS## $(WCONFIG) config < $@.in > $@
187 ##DOS##lib\gssapi\generic\makefile: lib\gssapi\generic\makefile.in $(MKFDEP)
188 ##DOS## $(WCONFIG) config < $@.in > $@
189 ##DOS##lib\gssapi\mechglue\makefile: lib\gssapi\mechglue\makefile.in $(MKFDEP)
190 ##DOS## $(WCONFIG) config < $@.in > $@
191 ##DOS##lib\gssapi\krb5\makefile: lib\gssapi\krb5\makefile.in $(MKFDEP)
192 ##DOS## $(WCONFIG) config < $@.in > $@
193 ##DOS##lib\kadm\makefile: lib\kadm\makefile.in $(MKFDEP)
194 ##DOS## $(WCONFIG) config < $@.in > $@
195 ##DOS##lib\krb4\makefile: lib\krb4\makefile.in $(MKFDEP)
196 ##DOS## $(WCONFIG) config < $@.in > $@
197 ##DOS##lib\krb5\makefile: lib\krb5\makefile.in $(MKFDEP)
198 ##DOS## $(WCONFIG) config < $@.in > $@
199 ##DOS##lib\krb5\asn.1\makefile: lib\krb5\asn.1\makefile.in $(MKFDEP)
200 ##DOS## $(WCONFIG) config < $@.in > $@
201 ##DOS##lib\krb5\ccache\makefile: lib\krb5\ccache\makefile.in $(MKFDEP)
202 ##DOS## $(WCONFIG) config < $@.in > $@
203 ##DOS##lib\krb5\ccache\file\makefile: lib\krb5\ccache\file\makefile.in $(MKFDEP)
204 ##DOS## $(WCONFIG) config < $@.in > $@
205 ##DOS##lib\krb5\ccache\stdio\makefile: lib\krb5\ccache\stdio\makefile.in $(MKFDEP)
206 ##DOS## $(WCONFIG) config < $@.in > $@
207 ##DOS##lib\krb5\error_tables\makefile: lib\krb5\error_tables\makefile.in $(MKFDEP)
208 ##DOS## $(WCONFIG) config < $@.in > $@
209 ##DOS##lib\krb5\free\makefile: lib\krb5\free\makefile.in $(MKFDEP)
210 ##DOS## $(WCONFIG) config < $@.in > $@
211 ##DOS##lib\krb5\keytab\makefile: lib\krb5\keytab\makefile.in $(MKFDEP)
212 ##DOS## $(WCONFIG) config < $@.in > $@
213 ##DOS##lib\krb5\keytab\file\makefile: lib\krb5\keytab\file\makefile.in $(MKFDEP)
214 ##DOS## $(WCONFIG) config < $@.in > $@
215 ##DOS##lib\krb5\krb\makefile: lib\krb5\krb\makefile.in $(MKFDEP)
216 ##DOS## $(WCONFIG) config < $@.in > $@
217 ##DOS##lib\krb5\os\makefile: lib\krb5\os\makefile.in $(MKFDEP)
218 ##DOS## $(WCONFIG) config < $@.in > $@
219 ##DOS##lib\krb5\posix\makefile: lib\krb5\posix\makefile.in $(MKFDEP)
220 ##DOS## $(WCONFIG) config < $@.in > $@
221 ##DOS##lib\krb5\rcache\makefile: lib\krb5\rcache\makefile.in $(MKFDEP)
222 ##DOS## $(WCONFIG) config < $@.in > $@
223 ##DOS##util\et\makefile: util\et\makefile.in $(MKFDEP)
224 ##DOS## $(WCONFIG) config < $@.in > $@
225 ##DOS##util\profile\makefile: util\profile\makefile.in $(MKFDEP)
226 ##DOS## $(WCONFIG) config < $@.in > $@
227 ##DOS##util\windows\makefile: util\windows\makefile.in $(MKFDEP)
228 ##DOS## $(WCONFIG) config < $@.in > $@
229 ##DOS##windows\Makefile: windows\Makefile.in $(MKFDEP)
230 ##DOS## $(WCONFIG) config < $@.in > $@
231 ##DOS##windows\cns\Makefile: windows\cns\Makefile.in $(MKFDEP)
232 ##DOS## $(WCONFIG) config < $@.in > $@
233 ##DOS##windows\gina\Makefile: windows\gina\Makefile.in $(MKFDEP)
234 ##DOS## $(WCONFIG) config < $@.in > $@
235 ##DOS##windows\gss\Makefile: windows\gss\Makefile.in $(MKFDEP)
236 ##DOS## $(WCONFIG) config < $@.in > $@
237 ##DOS##windows\wintel\Makefile: windows\wintel\Makefile.in $(MKFDEP)
238 ##DOS## $(WCONFIG) config < $@.in > $@
240 ##DOS##wconfig.exe: wconfig.c
241 ##DOS## SET CL=/nologo
242 ##DOS## $(CC) /AL wconfig.c
245 @echo Making clean in include
247 -$(MAKE) -$(MAKEFLAGS) clean
248 @echo Making clean in util\et
250 -$(MAKE) -$(MAKEFLAGS) clean
251 @echo Making clean in util\profile
253 -$(MAKE) -$(MAKEFLAGS) clean
254 @echo Making clean in lib
256 -$(MAKE) -$(MAKEFLAGS) clean
257 @echo Making clean in windows
259 -$(MAKE) -$(MAKEFLAGS) clean
261 @echo Making clean in root
262 config\rm.bat *.obj msvc.pdb *.err wconfig.obj wconfig.exe
265 # Renames DOS 8.3 filenames back to their proper, longer names.
271 # Builds the file that distributes Kerberos sources for DOS and
272 # Macintosh sites from the source tree on Unix.
276 clients/* clients/kdestroy/* clients/kinit/* clients/klist/* \
277 config/* include/* include/kerberosIV/* \
278 include/krb5/* include/krb5/stock/* include/sys/* lib/* \
279 lib/crypto/* lib/crypto/crc32/* lib/crypto/des/* \
280 lib/crypto/sha/* lib/crypto/md4/* lib/crypto/md5/* lib/crypto/os/* \
281 lib/des425/* lib/gssapi/* lib/gssapi/generic/* lib/gssapi/krb5/* \
282 lib/gssapi/mechglue/* lib/kadm/* lib/krb4/* \
283 lib/krb5/* lib/krb5/asn.1/* lib/krb5/krb/* \
284 lib/krb5/ccache/* lib/krb5/ccache/file/* \
285 lib/krb5/ccache/stdio/* lib/krb5/error_tables/* \
286 lib/krb5/free/* lib/krb5/keytab/* lib/krb5/keytab/file/* \
287 lib/krb5/os/* lib/krb5/posix/* lib/krb5/rcache/* \
288 util/et/* util/profile/*
290 WINFILES= util/windows/* \
291 windows/* windows/cns/* windows/wintel/* windows/gss/* windows/gina/*
293 MACFILES= mac/* mac/kconfig/* mac/libraries/* mac/telnet-k5-auth/* \
294 mac/gss-sample/* mac/SAP/* config/* include/* include/krb5/* \
295 include/krb5/stock/* include/sys/* \
298 MITWINFILES= mit/windows/include/*
299 MITWINBINARYFILES= mit/windows/lib/*
301 WINBINARYFILES= windows/*/*.ico windows/*/*.doc windows/*/*.hlp windows/*/*.hpj
304 # Part of building the PC release has to be done on Unix. This includes
305 # anything the requires awk.
308 AH = util/et/et_h.awk
309 AC = util/et/et_c.awk
311 ET = lib/krb5/error_tables/
312 GG = lib/gssapi/generic/
313 GK = lib/gssapi/krb5/
316 ETOUT = $(INC)asn1_err.h $(ET)asn1_err.c \
317 $(INC)kdb5_err.h $(ET)kdb5_err.c \
318 $(INC)krb5_err.h $(ET)krb5_err.c \
319 $(INC)kv5m_err.h $(ET)kv5m_err.c \
320 $(INC)adm_err.h $(ET)adm_err.c \
321 $(INC)/kerberosIV/krb_err.h lib/krb4/krb_err.c \
322 $(PR)prof_err.h $(PR)prof_err.c \
323 $(GG)gssapi_err_generic.h $(GG)gssapi_err_generic.c \
324 $(GK)gssapi_err_krb5.h $(GK)gssapi_err_krb5.c
326 HOUT = $(INC)krb5.h $(GG)gssapi.h $(PR)profile.h
328 CLEANUP= Makefile $(ETOUT) $(HOUT) \
329 include/profile.h include/krb5/osconf.h \
330 winfile.list macfile.list
333 kerbsrc.win: kerbsrc.zip
336 echo $(FILES) $(WINFILES) | tr ' ' \\012 | \
337 sed -f config/winexclude.sed > winfile.list
338 if test -d mit ; then \
339 echo $(MITWINFILES) | tr ' ' \\012 | \
340 sed -f config/winexclude.sed >> winfile.list ; \
343 MAC_SUBDIRS = lib util
345 /bin/sh mac/macfiles.sh $(MAC_SUBDIRS) > macfile.list
346 find $(MACFILES) -prune -type f -print | \
347 sed -f config/winexclude.sed >> macfile.list
350 cat config/windows.in Makefile.in config/win-post.in | \
351 sed -e 's/^##DOS##//' -e 's/^##DOS//' > Makefile
353 kerbsrc.zip: dos-Makefile awk-windows-mac winfile.list
355 $(ZIP) -Dlk kerbsrc.zip `cat winfile.list`
356 $(ZIP) -Dk kerbsrc.zip $(WINBINARYFILES)
357 if test -d mit ; then \
358 $(ZIP) -Dk kerbsrc.zip $(MITWINBINARYFILES) ; \
362 kerbsrc-nt.zip: awk-windows-mac winfile.list
364 $(ZIP) -Dl kerbsrc-nt.zip `cat winfile.list`
365 $(ZIP) -D kerbsrc-nt.zip $(WINBINARYFILES)
366 if test -d mit ; then \
367 $(ZIP) -D kerbsrc-nt.zip $(MITWINBINARYFILES) ; \
371 dos-zipfiles: dos-Makefile awk-windows-mac winfile.list
373 $(ZIP) -Dlk kerbsrc.zip `cat winfile.list`
374 $(ZIP) -Dk kerbsrc.zip $(WINBINARYFILES)
375 if test -d mit ; then \
376 $(ZIP) -Dk kerbsrc.zip $(MITWINBINARYFILES) ; \
379 $(ZIP) -Dl kerbsrc-nt.zip `cat winfile.list`
380 $(ZIP) -D kerbsrc-nt.zip $(WINBINARYFILES)
381 if test -d mit ; then \
382 $(ZIP) -D kerbsrc-nt.zip $(MITWINBINARYFILES) ; \
386 Macfile: macfile.list
388 sed -e 's|/|:|g' -e 's/^/:/' -e '/:.:/d' -e '/:mac:/d' macfile.list > macfile.maclist
389 grep '\.c$$' macfile.maclist > macsrcsgss
390 grep -v ':gssapi:' macsrcsgss > macsrcsk5
391 echo SRCS = `cat macsrcsgss` >> Macfile
392 echo GSSOBJS68K = `sed -e 's/$$/.68K.o/' -e 's/.*://' \
393 -e 's/^/:bin:68K:/' macsrcsgss` >> Macfile
394 echo GSSOBJS68KCFM = `sed -e 's/$$/.68K.o/' -e 's/.*://' \
395 -e 's/^/:bin:CFM-68K:/' macsrcsgss` >> Macfile
396 echo GSSOBJSPPC = `sed -e 's/$$/.PPC.o/' -e 's/.*://' \
397 -e 's/^/:bin:PPC:/' macsrcsgss` >> Macfile
398 echo K5OBJS68K = `sed -e 's/$$/.68K.o/' -e 's/.*://' \
399 -e 's/^/:bin:68K:/' macsrcsk5` >> Macfile
400 echo K5OBJS68KCFM = `sed -e 's/$$/.68K.o/' -e 's/.*://' \
401 -e 's/^/:bin:CFM-68K:/' macsrcsk5` >> Macfile
402 echo K5OBJSPPC = `sed -e 's/$$/.PPC.o/' -e 's/.*://' \
403 -e 's/^/:bin:PPC:/' macsrcsk5` >> Macfile
404 echo INCLUDES = `sed -n -e 's/\(.*:\)[^:]*\.h$$/-i \1/p' macfile.maclist | sort -u` >> Macfile
406 tr '%/:\\' '/:\304\266'< mac/Makefile.tmpl >> Macfile
410 mkdir bin bin/68K bin/CFM-68K bin/PPC
411 sh mac/mkbindirs.sh bin/68K $(MAC_SUBDIRS)
412 sh mac/mkbindirs.sh bin/CFM-68K $(MAC_SUBDIRS)
413 sh mac/mkbindirs.sh bin/PPC $(MAC_SUBDIRS)
415 kerbsrc.mac.tar: awk-windows-mac macfile.list mac-bin-dirs Macfile
416 cp mac/libraries/autoconf.h include/autoconf.h
418 tar cvf kerbsrc.mac.tar Makefile include/autoconf.h bin \
422 rm -f include/autoconf.h Makefile macsrc* macfile.maclist
424 $(INC)asn1_err.h: $(AH) $(ET)asn1_err.et
425 $(AWK) -f $(AH) outfile=$@ $(ET)asn1_err.et
426 $(INC)kdb5_err.h: $(AH) $(ET)kdb5_err.et
427 $(AWK) -f $(AH) outfile=$@ $(ET)kdb5_err.et
428 $(INC)krb5_err.h: $(AH) $(ET)krb5_err.et
429 $(AWK) -f $(AH) outfile=$@ $(ET)krb5_err.et
430 $(INC)kv5m_err.h: $(AH) $(ET)kv5m_err.et
431 $(AWK) -f $(AH) outfile=$@ $(ET)kv5m_err.et
432 $(INC)adm_err.h: $(AH) $(ET)adm_err.et
433 $(AWK) -f $(AH) outfile=$@ $(ET)adm_err.et
434 $(INC)/kerberosIV/krb_err.h: $(AH) lib/krb4/krb_err.et
435 $(AWK) -f $(AH) outfile=$@ lib/krb4/krb_err.et
436 $(PR)prof_err.h: $(AH) $(PR)prof_err.et
437 $(AWK) -f $(AH) outfile=$@ $(PR)prof_err.et
438 $(GG)gssapi_err_generic.h: $(AH) $(GG)gssapi_err_generic.et
439 $(AWK) -f $(AH) outfile=$@ $(GG)gssapi_err_generic.et
440 $(GK)gssapi_err_krb5.h: $(AH) $(GK)gssapi_err_krb5.et
441 $(AWK) -f $(AH) outfile=$@ $(GK)gssapi_err_krb5.et
443 $(ET)asn1_err.c: $(AC) $(ET)asn1_err.et
444 $(AWK) -f $(AC) outfile=$@ $(ET)asn1_err.et
445 $(ET)kdb5_err.c: $(AC) $(ET)kdb5_err.et
446 $(AWK) -f $(AC) outfile=$@ $(ET)kdb5_err.et
447 $(ET)krb5_err.c: $(AC) $(ET)krb5_err.et
448 $(AWK) -f $(AC) outfile=$@ $(ET)krb5_err.et
449 $(ET)kv5m_err.c: $(AC) $(ET)kv5m_err.et
450 $(AWK) -f $(AC) outfile=$@ $(ET)kv5m_err.et
451 $(ET)adm_err.c: $(AC) $(ET)adm_err.et
452 $(AWK) -f $(AC) outfile=$@ $(ET)adm_err.et
453 lib/krb4/krb_err.c: $(AC) lib/krb4/krb_err.et
454 $(AWK) -f $(AC) outfile=$@ lib/krb4/krb_err.et
455 $(PR)prof_err.c: $(AC) $(PR)prof_err.et
456 $(AWK) -f $(AC) outfile=$@ $(PR)prof_err.et
457 $(GG)gssapi_err_generic.c: $(AC) $(GG)gssapi_err_generic.et
458 $(AWK) -f $(AC) outfile=$@ $(GG)gssapi_err_generic.et
459 $(GK)gssapi_err_krb5.c: $(AC) $(GK)gssapi_err_krb5.et
460 $(AWK) -f $(AC) outfile=$@ $(GK)gssapi_err_krb5.et
462 KRBHDEP = $(INC)krb5.hin $(INC)krb5_err.h $(INC)kdb5_err.h \
463 $(INC)kv5m_err.h $(INC)asn1_err.h
465 $(INC)krb5.h: $(KRBHDEP)
468 $(PR)profile.h: $(PR)profile.hin $(PR)prof_err.h
470 cat $(PR)profile.hin $(PR)prof_err.h > $@
471 $(GG)gssapi.h: $(GG)gssapi.hin
473 cat $(GG)gssapi.hin > $@
475 awk-windows-mac: $(ETOUT) $(HOUT)