Put back production rule for kerbsrc-nt.zip which mysteriously
[krb5.git] / src / Makefile.in
1 CFLAGS = $(CCOPTS) $(DEFS)
2
3 SRCS =  
4 HDRS = 
5
6 DISTFILES = $(SRCS) $(HDRS) COPYING COPYING.LIB ChangeLog Makefile.in
7
8 all:: all-$(WHAT)
9
10 all-unix::
11
12 all-mac::
13
14 all-: all-windows
15
16 LIBCMD = lib
17 all-windows:: makefile-windows
18         @echo Making in include
19         cd include
20         -$(MAKE) -$(MAKEFLAGS) LIBCMD=$(LIBCMD)
21         @echo Making in util\et
22         cd ..\util\et
23         -$(MAKE) -$(MAKEFLAGS) LIBCMD=$(LIBCMD)
24         @echo Making in util\profile
25         cd ..\profile
26         -$(MAKE) -$(MAKEFLAGS) LIBCMD=$(LIBCMD)
27         @echo Making in lib
28         cd ..\..\lib
29         -$(MAKE) -$(MAKEFLAGS) LIBCMD=$(LIBCMD)
30         @echo Making in windows
31         cd ..\windows
32         -$(MAKE) -$(MAKEFLAGS) LIBCMD=$(LIBCMD)
33         cd ..
34
35 world::
36         date
37         make $(MFLAGS) all
38         date
39
40 INSTALLMKDIRS = $(KRB5ROOT) $(KRB5MANROOT) $(KRB5OTHERMKDIRS) \
41                 $(ADMIN_BINDIR) $(SERVER_BINDIR) $(CLIENT_BINDIR) \
42                 $(ADMIN_MANDIR) $(SERVER_MANDIR) $(CLIENT_MANDIR) \
43                 $(FILE_MANDIR) $(KRB5_LIBDIR) $(KRB5_INCDIR) \
44                 $(KRB5_INCSUBDIRS)
45
46 install:: install-mkdirs
47
48 install-mkdirs:
49         @for i in $(INSTALLMKDIRS); do \
50                 if test -d $(DESTDIR)$$i; then :; else (set -x; mkdir $(DESTDIR)$$i); fi \
51         done
52
53 # install::
54 #       $(MAKE) $(MFLAGS) install.man
55
56 .c.o:
57         $(CC) -c $(CPPFLAGS) $(DEFS) -I$(srcdir) $(CFLAGS) $<
58
59 TAGS: $(SRCS)
60         etags $(SRCS)
61
62 clean:: clean-$(WHAT)
63
64 clean-:: clean-windows
65 clean-mac:: clean-unix
66 clean-unix::
67         $(RM) *.o core
68
69 mostlyclean: clean
70
71 distclean: clean
72         rm -f Makefile config.status
73
74 realclean: distclean
75         rm -f TAGS
76
77 dist: $(DISTFILES)
78         echo cpio-`sed -e '/version_string/!d' \
79         -e 's/[^0-9.]*\([0-9.]*\).*/\1/' -e q version.c` > .fname
80         rm -rf `cat .fname`
81         mkdir `cat .fname`
82         -ln $(DISTFILES) `cat .fname`
83         for file in $(DISTFILES); do \
84           test -r `cat .fname`/$$file || cp -p $$file `cat .fname`; \
85         done
86         tar chzf `cat .fname`.tar.gz `cat .fname`
87         rm -rf `cat .fname` .fname
88
89 # Macintosh build process...
90
91 # Build all things for the Mac build, which need to be built on
92 # Unix first.
93 unixmac:
94         (cd lib/krb5/error_tables; make -f Makefile.in unixmac)
95         (cd lib/gssapi/generic; make -f Makefile.in unixmac)
96
97
98 # Microsoft Windows build process...
99 #
100
101 config-windows:: makefile-windows
102         @echo Making in include
103         cd include
104         -$(MAKE) -$(MAKEFLAGS)
105         cd ..
106
107 makefile-windows:: wconfig.exe config\pre.in config\post.in \
108                 include\makefile.in include\krb5\makefile.in \
109                 lib\makefile.in lib\crypto\makefile.in \
110                 lib\crypto\crc32\makefile.in lib\crypto\des\makefile.in \
111                 lib\crypto\md4\makefile.in lib\crypto\md5\makefile.in \
112                 lib\crypto\os\makefile.in lib\des425\makefile.in \
113                 lib\gssapi\makefile.in lib\gssapi\generic\makefile.in \
114                 lib\gssapi\krb5\makefile.in lib\krb5\makefile.in \
115                 lib\krb5\asn.1\makefile.in lib\krb5\ccache\makefile.in \
116                 lib\krb5\ccache\file\makefile.in \
117                 lib\krb5\ccache\stdio\makefile.in \
118                 lib\krb5\error_ta\makefile.in \
119                 lib\krb5\free\makefile.in lib\krb5\keytab\makefile.in \
120                 lib\krb5\keytab\file\makefile.in lib\krb5\krb\makefile.in \
121                 lib\krb5\os\makefile.in lib\krb5\posix\makefile.in \
122                 lib\krb5\rcache\makefile.in \
123                 util\et\makefile.in util\profile\makefile.in
124         type makefile.in >makefile
125         .\wconfig config <include\makefile.in >include\makefile
126         .\wconfig config <include\krb5\makefile.in >include\krb5\makefile
127         .\wconfig config <lib\makefile.in >lib\makefile
128         .\wconfig config <lib\crypto\makefile.in >lib\crypto\makefile
129         .\wconfig config <lib\crypto\crc32\makefile.in >lib\crypto\crc32\makefile
130         .\wconfig config <lib\crypto\des\makefile.in >lib\crypto\des\makefile
131         .\wconfig config <lib\crypto\md4\makefile.in >lib\crypto\md4\makefile
132         .\wconfig config <lib\crypto\md5\makefile.in >lib\crypto\md5\makefile
133         .\wconfig config <lib\crypto\os\makefile.in >lib\crypto\os\makefile
134         .\wconfig config <lib\des425\makefile.in >lib\des425\makefile
135         .\wconfig config <lib\gssapi\makefile.in >lib\gssapi\makefile
136         .\wconfig config <lib\gssapi\generic\makefile.in >lib\gssapi\generic\makefile
137         .\wconfig config <lib\gssapi\krb5\makefile.in >lib\gssapi\krb5\makefile
138         .\wconfig config <lib\krb5\makefile.in >lib\krb5\makefile
139         .\wconfig config <lib\krb5\asn.1\makefile.in >lib\krb5\asn.1\makefile
140         .\wconfig config <lib\krb5\ccache\makefile.in >lib\krb5\ccache\makefile
141         .\wconfig config <lib\krb5\ccache\file\makefile.in >lib\krb5\ccache\file\makefile
142         .\wconfig config <lib\krb5\ccache\stdio\makefile.in >lib\krb5\ccache\stdio\makefile
143         .\wconfig config <lib\krb5\error_ta\makefile.in >lib\krb5\error_ta\makefile
144         .\wconfig config <lib\krb5\free\makefile.in >lib\krb5\free\makefile
145         .\wconfig config <lib\krb5\keytab\makefile.in >lib\krb5\keytab\makefile
146         .\wconfig config <lib\krb5\keytab\file\makefile.in >lib\krb5\keytab\file\makefile
147         .\wconfig config <lib\krb5\krb\makefile.in >lib\krb5\krb\makefile
148         .\wconfig config <lib\krb5\os\makefile.in >lib\krb5\os\makefile
149         .\wconfig config <lib\krb5\posix\makefile.in >lib\krb5\posix\makefile
150         .\wconfig config <lib\krb5\rcache\makefile.in >lib\krb5\rcache\makefile
151         .\wconfig config <util\et\makefile.in >util\et\makefile
152         .\wconfig config <util\profile\makefile.in >util\profile\makefile
153         config\rm.bat wconfig.obj msvc.pdb
154
155 wconfig.exe: wconfig.c
156         SET CL=/nologo
157         $(CC) /AL wconfig.c
158
159 clean-windows::
160         @echo Making clean in include
161         cd include
162         -$(MAKE) -$(MAKEFLAGS) clean
163         @echo Making clean in util\et
164         cd ..\util\et
165         -$(MAKE) -$(MAKEFLAGS) clean
166         @echo Making clean in util\profile
167         cd ..\profile
168         -$(MAKE) -$(MAKEFLAGS) clean
169         @echo Making clean in lib
170         cd ..\..\lib
171         -$(MAKE) -$(MAKEFLAGS) clean
172         @echo Making clean in windows
173         cd ..\windows
174         -$(MAKE) -$(MAKEFLAGS) clean
175         cd ..
176         @echo Making clean in root
177         config\rm.bat *.obj msvc.pdb *.err wconfig.obj wconfig.exe
178
179 #
180 # Renames DOS 8.3 filenames back to their proper, longer names.
181 #
182 ren2long:
183         -sh config/ren2long
184
185 #
186 # Builds the file that distributes Kerberos sources for DOS and 
187 # Macintosh sites from the source tree on Unix.
188 #
189 ZIP=zip
190 FILES= ./* \
191         config/* include/* include/krb5/* include/krb5/asn.1/* \
192         include/krb5/stock/* include/sys/* lib/* lib/crypto/* \
193         lib/crypto/crc32/* lib/crypto/des/* lib/crypto/md4/* \
194         lib/crypto/md5/* lib/crypto/os/* lib/des425/* lib/gssapi/* \
195         lib/gssapi/generic/* lib/gssapi/krb5/* lib/krb425/* \
196         lib/krb5/* lib/krb5/asn.1/* lib/krb5/krb/* \
197         lib/krb5/ccache/* lib/krb5/ccache/file/* \
198         lib/krb5/ccache/stdio/* lib/krb5/error_tables/* \
199         lib/krb5/free/* lib/krb5/keytab/* lib/krb5/keytab/file/* \
200         lib/krb5/os/* lib/krb5/posix/* lib/krb5/rcache/* util/et/* \
201         util/profile/*
202
203 WINFILES= windows/* windows/cns/* windows/wintel/* windows/gss/*
204
205 MACFILES= mac
206
207 WINBINARYFILES=windows/cns/*.ico windows/wintel/*.ico windows/gss/*.ico
208
209 WINEXCLUDE= LIB/KRB5.SAB \
210         INCLUDE/KRB5/AUTOCONF.H \
211         LIB/CRYPTO/MD4/T_MDDRIV LIB/CRYPTO/MD5/T_MDDRIV \
212         UTIL/PROFILE/TEST_PAR UTIL/PROFILE/TEST_PRO \
213         WINDOWS/CNS/*.ICO WINDOWS/WINTEL/*.ICO WINDOWS/GSS/*.ICO \
214         *.O *.A *.ZIP
215
216 MACEXCLUDE= windows 
217
218 CLEANUP= util/profile/profile.h util/profile/prof_err.[ch] \
219         lib/krb5/error_tables/asn1_err.c lib/krb5/error_tables/kdb5_err.c \
220         lib/krb5/error_tables/krb5_err.c lib/krb5/error_tables/kv5m_err.c \
221         lib/krb5/error_tables/adm_err.c \
222         include/krb5/asn1_err.h include/krb5/kdb5_err.h \
223         include/krb5/krb5_err.h include/krb5/kv5m_err.h \
224         include/krb5/adm_err.h include/profile.h \
225         lib/gssapi/generic/gssapi_err_generic.[ch] \
226         lib/gssapi/krb5/gssapi_err_krb5.[ch]
227
228 kerbsrc.win: kerbsrc.zip
229
230 kerbsrc.zip: awk-windows-mac
231         rm -f Makefile.bak
232         mv Makefile Makefile.bak
233         cp Makefile.in Makefile
234         rm -f kerbsrc.zip
235         $(ZIP) -Dlk kerbsrc.zip $(FILES) $(WINFILES) -x $(EXCLUDE) $(WINEXCLUDE)
236         $(ZIP) -Dk kerbsrc.zip $(WINBINARYFILES)
237         cp Makefile.bak Makefile
238         rm -f $(CLEANUP)
239
240 kerbsrc-nt.zip: awk-windows
241         rm -f Makefile.bak
242         mv Makefile Makefile.bak
243         cp Makefile.in Makefile
244         rm -f kerbsrc.zip
245         $(ZIP) -Dl kerbsrc-nt.zip $(ZIPFILES) -x $(ZIPLONGEXCLUDE)
246         $(ZIP) -D kerbsrc-nt.zip $(ZIPBINARYFILES)
247         cp Makefile.bak Makefile
248         rm -f $(ZIPCLEANUP)
249
250 kerbsrc.mac: awk-windows-mac
251         rm -f excludefiles 
252         /bin/ls $(MACEXCLUDE) >excludefiles
253         tar cvfX kerbsrc.tar excludefiles `find $(FILES) $(MACFILES) -prune -type f -print`
254         rm -f excludefiles
255         rm -f $(CLEANUP)
256
257 #
258 # Part of building the PC release has to be done on Unix. This includes
259 # anything the requires awk.
260 #
261 AH  = util/et/et_h.awk
262 AC  = util/et/et_c.awk
263 INC = include/krb5/
264 ET  = lib/krb5/error_tables/
265 GG  = lib/gssapi/generic/
266 GK  = lib/gssapi/krb5/
267 PR  = util/profile/
268
269 awk-windows-mac:
270         gawk -f $(AH) outfile=$(INC)asn1_err.h $(ET)asn1_err.et
271         gawk -f $(AH) outfile=$(INC)kdb5_err.h $(ET)kdb5_err.et
272         gawk -f $(AH) outfile=$(INC)krb5_err.h $(ET)krb5_err.et
273         gawk -f $(AH) outfile=$(INC)kv5m_err.h $(ET)kv5m_err.et
274         gawk -f $(AH) outfile=$(INC)adm_err.h $(ET)adm_err.et
275         gawk -f $(AC) outfile=$(ET)asn1_err.c $(ET)asn1_err.et
276         gawk -f $(AC) outfile=$(ET)kdb5_err.c $(ET)kdb5_err.et
277         gawk -f $(AC) outfile=$(ET)krb5_err.c $(ET)krb5_err.et
278         gawk -f $(AC) outfile=$(ET)kv5m_err.c $(ET)kv5m_err.et
279         gawk -f $(AC) outfile=$(ET)adm_err.c $(ET)adm_err.et
280         gawk -f $(AH) outfile=$(GG)gssapi_err_generic.h $(GG)gssapi_err_generic.et
281         gawk -f $(AC) outfile=$(GG)gssapi_err_generic.c $(GG)gssapi_err_generic.et
282         gawk -f $(AH) outfile=$(GK)gssapi_err_krb5.h $(GK)gssapi_err_krb5.et
283         gawk -f $(AC) outfile=$(GK)gssapi_err_krb5.c $(GK)gssapi_err_krb5.et
284         gawk -f $(AH) outfile=$(PR)prof_err.h $(PR)prof_err.et
285         gawk -f $(AC) outfile=$(PR)prof_err.c $(PR)prof_err.et
286         cat $(PR)/profile.hin $(PR)prof_err.h > $(PR)profile.h
287         cp $(PR)profile.h include/profile.h