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