CFLAGS = $(CCOPTS) $(DEFS) ##DOSBUILDTOP = . SRCS = HDRS = DISTFILES = $(SRCS) $(HDRS) COPYING COPYING.LIB ChangeLog Makefile.in all-unix:: all-mac:: all-windows:: makefile-windows @echo Making in include cd include -$(MAKE) -$(MAKEFLAGS) @echo Making in util\et cd ..\util\et -$(MAKE) -$(MAKEFLAGS) @echo Making in util\profile cd ..\profile -$(MAKE) -$(MAKEFLAGS) @echo Making in lib cd ..\..\lib -$(MAKE) -$(MAKEFLAGS) @echo Making in windows cd ..\windows -$(MAKE) -$(MAKEFLAGS) cd .. world:: date make $(MFLAGS) all date INSTALLMKDIRS = $(KRB5ROOT) $(KRB5MANROOT) $(KRB5OTHERMKDIRS) \ $(ADMIN_BINDIR) $(SERVER_BINDIR) $(CLIENT_BINDIR) \ $(ADMIN_MANDIR) $(SERVER_MANDIR) $(CLIENT_MANDIR) \ $(FILE_MANDIR) $(KRB5_LIBDIR) $(KRB5_INCDIR) \ $(KRB5_INCSUBDIRS) install-recurse: install-mkdirs install-mkdirs: @for i in $(INSTALLMKDIRS); do \ if test -d $(DESTDIR)$$i; then :; else (set -x; mkdir -p $(DESTDIR)$$i); fi ; \ done # install:: # $(MAKE) $(MFLAGS) install.man .c.o: $(CC) -c $(CPPFLAGS) $(DEFS) -I$(srcdir) $(CFLAGS) $< TAGS: $(SRCS) etags $(SRCS) clean-:: clean-windows clean-mac:: clean-unix clean-unix:: $(RM) *.o core mostlyclean: clean # This doesn't work; if you think you need it, you should use a # separate build directory. # # distclean: clean # rm -f Makefile config.status # # realclean: distclean # rm -f TAGS dist: $(DISTFILES) echo cpio-`sed -e '/version_string/!d' \ -e 's/[^0-9.]*\([0-9.]*\).*/\1/' -e q version.c` > .fname rm -rf `cat .fname` mkdir `cat .fname` -ln $(DISTFILES) `cat .fname` for file in $(DISTFILES); do \ test -r `cat .fname`/$$file || cp -p $$file `cat .fname`; \ done tar chzf `cat .fname`.tar.gz `cat .fname` rm -rf `cat .fname` .fname GZIPPROG= gzip -9v PKGDIR=`pwd`/pkgdir pkgdir: if test ! -d $(PKGDIR); then mkdir $(PKGDIR); else true; fi tgz-bin: pkgdir rm -rf $(PKGDIR)/install cns5-bin.tgz mkdir $(PKGDIR)/install $(MAKE) install DESTDIR=$(PKGDIR)/install (cd $(PKGDIR)/install && tar cf - usr/cygnus) | $(GZIPPROG) > cns5-bin.tgz rm -rf $(PKGDIR)/install # Macintosh build process... # Build all things for the Mac build, which need to be built on # Unix first. unixmac: (cd lib/krb5/error_tables; make -f Makefile.in unixmac) (cd lib/gssapi/generic; make -f Makefile.in unixmac) # Microsoft Windows build process... # config-windows:: makefile-windows @echo Making in include cd include -$(MAKE) -$(MAKEFLAGS) cd .. makefile-windows:: wconfig.exe config\pre.in config\post.in \ include\makefile.in include\krb5\makefile.in \ lib\makefile.in lib\crypto\makefile.in \ lib\crypto\crc32\makefile.in lib\crypto\des\makefile.in \ lib\crypto\sha\makefile.in \ lib\crypto\md4\makefile.in lib\crypto\md5\makefile.in \ lib\crypto\os\makefile.in lib\des425\makefile.in \ lib\gssapi\makefile.in lib\gssapi\generic\makefile.in \ lib\gssapi\krb5\makefile.in lib\gssapi\mechglue\makefile.in \ lib\krb5\makefile.in \ lib\krb5\asn.1\makefile.in lib\krb5\ccache\makefile.in \ lib\krb5\ccache\file\makefile.in \ lib\krb5\ccache\stdio\makefile.in \ lib\krb5\error_tables\makefile.in \ lib\krb5\free\makefile.in lib\krb5\keytab\makefile.in \ lib\krb5\keytab\file\makefile.in lib\krb5\krb\makefile.in \ lib\krb5\os\makefile.in lib\krb5\posix\makefile.in \ lib\krb5\rcache\makefile.in \ util\et\makefile.in util\profile\makefile.in \ windows\cns\Makefile.in windows\gss\Makefile.in \ windows\wintel\Makefile.in .\wconfig config makefile .\wconfig config include\makefile .\wconfig config include\krb5\makefile .\wconfig config lib\makefile .\wconfig config lib\crypto\makefile .\wconfig config lib\crypto\crc32\makefile .\wconfig config lib\crypto\des\makefile .\wconfig config lib\crypto\sha\makefile .\wconfig config lib\crypto\md4\makefile .\wconfig config lib\crypto\md5\makefile .\wconfig config lib\crypto\os\makefile .\wconfig config lib\des425\makefile .\wconfig config lib\gssapi\makefile .\wconfig config lib\gssapi\generic\makefile .\wconfig config lib\gssapi\mechglue\makefile .\wconfig config lib\gssapi\krb5\makefile .\wconfig config lib\kadm\makefile .\wconfig config lib\krb5\makefile .\wconfig config lib\krb5\asn.1\makefile .\wconfig config lib\krb5\ccache\makefile .\wconfig config lib\krb5\ccache\file\makefile .\wconfig config lib\krb5\ccache\stdio\makefile .\wconfig config lib\krb5\error_tables\makefile .\wconfig config lib\krb5\free\makefile .\wconfig config lib\krb5\keytab\makefile .\wconfig config lib\krb5\keytab\file\makefile .\wconfig config lib\krb5\krb\makefile .\wconfig config lib\krb5\os\makefile .\wconfig config lib\krb5\posix\makefile .\wconfig config lib\krb5\rcache\makefile .\wconfig config util\et\makefile .\wconfig config util\profile\makefile .\wconfig < windows\cns\Makefile.in > windows\cns\Makefile .\wconfig < windows\gss\Makefile.in > windows\gss\Makefile .\wconfig < windows\wintel\Makefile.in > windows\wintel\Makefile config\rm.bat wconfig.obj msvc.pdb wconfig.exe: wconfig.c SET CL=/nologo $(CC) /AL wconfig.c clean-windows:: @echo Making clean in include cd include -$(MAKE) -$(MAKEFLAGS) clean @echo Making clean in util\et cd ..\util\et -$(MAKE) -$(MAKEFLAGS) clean @echo Making clean in util\profile cd ..\profile -$(MAKE) -$(MAKEFLAGS) clean @echo Making clean in lib cd ..\..\lib -$(MAKE) -$(MAKEFLAGS) clean @echo Making clean in windows cd ..\windows -$(MAKE) -$(MAKEFLAGS) clean cd .. @echo Making clean in root config\rm.bat *.obj msvc.pdb *.err wconfig.obj wconfig.exe # # Renames DOS 8.3 filenames back to their proper, longer names. # ren2long: -sh config/ren2long # # Builds the file that distributes Kerberos sources for DOS and # Macintosh sites from the source tree on Unix. # ZIP=zip FILES= ./* \ config/* include/* include/krb5/* include/krb5/asn.1/* \ include/krb5/stock/* include/sys/* lib/* lib/crypto/* \ lib/crypto/crc32/* lib/crypto/des/* lib/crypto/sha/* lib/crypto/md4/* \ lib/crypto/md5/* lib/crypto/os/* lib/des425/* lib/gssapi/* \ lib/gssapi/generic/* lib/gssapi/krb5/* lib/gssapi/mechglue/* \ lib/kadm/* lib/krb425/* \ lib/krb5/* lib/krb5/asn.1/* lib/krb5/krb/* \ lib/krb5/ccache/* lib/krb5/ccache/file/* \ lib/krb5/ccache/stdio/* lib/krb5/error_tables/* \ lib/krb5/free/* lib/krb5/keytab/* lib/krb5/keytab/file/* \ lib/krb5/os/* lib/krb5/posix/* lib/krb5/rcache/* util/et/* \ util/profile/* WINFILES= windows/* windows/cns/* windows/wintel/* windows/gss/* MACFILES= mac/* mac/kconfig/* mac/libraries/* mac/telnet-k5-auth/* \ mac/gss-sample/* mac/SAP/* config/* include/* include/krb5/* \ include/krb5/asn.1/* include/krb5/stock/* include/sys/* \ ./patchlevel.h WINBINARYFILES=windows/cns/*.ico windows/wintel/*.ico windows/gss/*.ico CLEANUP= util/profile/profile.h util/profile/prof_err.[ch] \ lib/krb5/error_tables/asn1_err.c lib/krb5/error_tables/kdb5_err.c \ lib/krb5/error_tables/krb5_err.c lib/krb5/error_tables/kv5m_err.c \ lib/krb5/error_tables/adm_err.c \ include/asn1_err.h include/kdb5_err.h \ include/krb5_err.h include/kv5m_err.h \ include/adm_err.h include/profile.h include/krb5.h \ include/krb5/osconf.h \ lib/gssapi/generic/gssapi_err_generic.[ch] \ lib/gssapi/krb5/gssapi_err_krb5.[ch] winfile.list macfile.list \ lib/gssapi/generic/gssapi.h kerbsrc.win: kerbsrc.zip winfile.list: echo $(FILES) $(WINFILES) | tr ' ' \\012 | \ sed -f config/winexclude.sed > winfile.list MAC_SUBDIRS = lib util macfile.list: /bin/sh mac/macfiles.sh $(MAC_SUBDIRS) > macfile.list find $(MACFILES) -prune -type f -print | \ sed -f config/winexclude.sed >> macfile.list Makefile.sav: rm -f Makefile.sav mv Makefile Makefile.sav cat config/windows.in Makefile.in config/win-post.in | \ sed -e 's/^##DOS//' > Makefile kerbsrc.zip: Makefile.sav awk-windows-mac winfile.list rm -f kerbsrc.zip $(ZIP) -Dlk kerbsrc.zip `cat winfile.list` $(ZIP) -Dk kerbsrc.zip $(WINBINARYFILES) mv Makefile.sav Makefile rm -f $(CLEANUP) kerbsrc-nt.zip: Makefile.sav awk-windows-mac winfile.list rm -f kerbsrc-nt.zip $(ZIP) -Dl kerbsrc-nt.zip `cat winfile.list` $(ZIP) -D kerbsrc-nt.zip $(WINBINARYFILES) mv Makefile.sav Makefile rm -f $(CLEANUP) dos-zipfiles: Makefile.sav awk-windows-mac winfile.list rm -f kerbsrc.zip $(ZIP) -Dlk kerbsrc.zip `cat winfile.list` $(ZIP) -Dk kerbsrc.zip $(WINBINARYFILES) rm -f kerbsrc-nt.zip $(ZIP) -Dl kerbsrc-nt.zip `cat winfile.list` $(ZIP) -D kerbsrc-nt.zip $(WINBINARYFILES) mv Makefile.sav Makefile rm -f $(CLEANUP) Macfile: macfile.list Makefile.sav rm -f Macfile sed -e 's|/|:|g' -e 's/^/:/' -e '/:.:/d' -e '/:mac:/d' macfile.list > macfile.maclist grep '\.c$$' macfile.maclist > macsrcsgss grep -v ':gssapi:' macsrcsgss > macsrcsk5 echo SRCS = `cat macsrcsgss` >> Macfile echo GSSOBJS68K = `sed -e 's/$$/.68K.o/' -e 's/.*://' \ -e 's/^/:bin:68K:/' macsrcsgss` >> Macfile echo GSSOBJS68KCFM = `sed -e 's/$$/.68K.o/' -e 's/.*://' \ -e 's/^/:bin:CFM-68K:/' macsrcsgss` >> Macfile echo GSSOBJSPPC = `sed -e 's/$$/.PPC.o/' -e 's/.*://' \ -e 's/^/:bin:PPC:/' macsrcsgss` >> Macfile echo K5OBJS68K = `sed -e 's/$$/.68K.o/' -e 's/.*://' \ -e 's/^/:bin:68K:/' macsrcsk5` >> Macfile echo K5OBJS68KCFM = `sed -e 's/$$/.68K.o/' -e 's/.*://' \ -e 's/^/:bin:CFM-68K:/' macsrcsk5` >> Macfile echo K5OBJSPPC = `sed -e 's/$$/.PPC.o/' -e 's/.*://' \ -e 's/^/:bin:PPC:/' macsrcsk5` >> Macfile echo INCLUDES = `sed -n -e 's/\(.*:\)[^:]*\.h$$/-i \1/p' macfile.maclist | sort -u` >> Macfile echo "" >> Macfile tr '%/:\\' '/:\304\266'< mac/Makefile.tmpl >> Macfile mac-bin-dirs: rm -rf bin mkdir bin bin/68K bin/CFM-68K bin/PPC sh mac/mkbindirs.sh bin/68K $(MAC_SUBDIRS) sh mac/mkbindirs.sh bin/CFM-68K $(MAC_SUBDIRS) sh mac/mkbindirs.sh bin/PPC $(MAC_SUBDIRS) kerbsrc.mac.tar: awk-windows-mac macfile.list mac-bin-dirs Macfile cp mac/libraries/autoconf.h include/autoconf.h mv Macfile Makefile tar cvf kerbsrc.mac.tar Makefile include/autoconf.h bin \ `cat macfile.list` rm -f $(CLEANUP) rm -rf bin rm -f include/autoconf.h Makefile macsrc* macfile.maclist mv Makefile.sav Makefile # # Part of building the PC release has to be done on Unix. This includes # anything the requires awk. # AH = util/et/et_h.awk AC = util/et/et_c.awk INC = include/ ET = lib/krb5/error_tables/ GG = lib/gssapi/generic/ GK = lib/gssapi/krb5/ PR = util/profile/ awk-windows-mac: gawk -f $(AH) outfile=$(INC)asn1_err.h $(ET)asn1_err.et gawk -f $(AH) outfile=$(INC)kdb5_err.h $(ET)kdb5_err.et gawk -f $(AH) outfile=$(INC)krb5_err.h $(ET)krb5_err.et gawk -f $(AH) outfile=$(INC)kv5m_err.h $(ET)kv5m_err.et gawk -f $(AH) outfile=$(INC)adm_err.h $(ET)adm_err.et cat $(INC)/krb5.hin $(INC)/krb5_err.h $(INC)/kdb5_err.h \ $(INC)/kv5m_err.h $(INC)/asn1_err.h > $(INC)/krb5.h gawk -f $(AC) outfile=$(ET)asn1_err.c $(ET)asn1_err.et gawk -f $(AC) outfile=$(ET)kdb5_err.c $(ET)kdb5_err.et gawk -f $(AC) outfile=$(ET)krb5_err.c $(ET)krb5_err.et gawk -f $(AC) outfile=$(ET)kv5m_err.c $(ET)kv5m_err.et gawk -f $(AC) outfile=$(ET)adm_err.c $(ET)adm_err.et gawk -f $(AH) outfile=$(GG)gssapi_err_generic.h $(GG)gssapi_err_generic.et gawk -f $(AC) outfile=$(GG)gssapi_err_generic.c $(GG)gssapi_err_generic.et gawk -f $(AH) outfile=$(GK)gssapi_err_krb5.h $(GK)gssapi_err_krb5.et gawk -f $(AC) outfile=$(GK)gssapi_err_krb5.c $(GK)gssapi_err_krb5.et gawk -f $(AH) outfile=$(PR)prof_err.h $(PR)prof_err.et gawk -f $(AC) outfile=$(PR)prof_err.c $(PR)prof_err.et cat $(PR)/profile.hin $(PR)prof_err.h > $(PR)profile.h cp $(PR)profile.h include/profile.h cp $(INC)/krb5/stock/osconf.h $(INC)/krb5 cp $(GG)gssapi.hin $(GG)gssapi.h