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