mesh: Write close reason from Mesh Peering Close to debug log
[mech_eap.git] / wpa_supplicant / nmake.mak
1 # Makefile for Microsoft nmake to build wpa_supplicant
2
3 # This can be run in Visual Studio 2005 Command Prompt
4
5 # Note: Make sure that cl.exe is configured to include Platform SDK
6 # include and lib directories (vsvars32.bat)
7
8 all: wpa_supplicant.exe wpa_cli.exe wpa_passphrase.exe wpasvc.exe win_if_list.exe
9
10 # Root directory for WinPcap developer's pack
11 # (http://www.winpcap.org/install/bin/WpdPack_3_1.zip)
12 WINPCAPDIR=C:\dev\WpdPack
13
14 # Root directory for OpenSSL
15 # (http://www.openssl.org/source/openssl-0.9.8a.tar.gz)
16 # Build and installed following instructions in INSTALL.W32
17 # Note: If EAP-FAST is included in the build, OpenSSL needs to be patched to
18 # support it (openssl-tls-extensions.patch)
19 # Alternatively, see README-Windows.txt for information about binary
20 # installation package for OpenSSL.
21 OPENSSLDIR=C:\dev\openssl
22
23 CC = cl
24 OBJDIR = objs
25
26 CFLAGS = /DCONFIG_NATIVE_WINDOWS
27 CFLAGS = $(CFLAGS) /DCONFIG_NDIS_EVENTS_INTEGRATED
28 CFLAGS = $(CFLAGS) /DCONFIG_ANSI_C_EXTRA
29 CFLAGS = $(CFLAGS) /DCONFIG_WINPCAP
30 CFLAGS = $(CFLAGS) /DIEEE8021X_EAPOL
31 CFLAGS = $(CFLAGS) /DPKCS12_FUNCS
32 CFLAGS = $(CFLAGS) /DEAP_MD5
33 CFLAGS = $(CFLAGS) /DEAP_TLS
34 CFLAGS = $(CFLAGS) /DEAP_MSCHAPv2
35 CFLAGS = $(CFLAGS) /DEAP_PEAP
36 CFLAGS = $(CFLAGS) /DEAP_TTLS
37 CFLAGS = $(CFLAGS) /DEAP_GTC
38 CFLAGS = $(CFLAGS) /DEAP_OTP
39 CFLAGS = $(CFLAGS) /DEAP_SIM
40 CFLAGS = $(CFLAGS) /DEAP_LEAP
41 CFLAGS = $(CFLAGS) /DEAP_PSK
42 CFLAGS = $(CFLAGS) /DEAP_AKA
43 #CFLAGS = $(CFLAGS) /DEAP_FAST
44 CFLAGS = $(CFLAGS) /DEAP_PAX
45 CFLAGS = $(CFLAGS) /DEAP_TNC
46 CFLAGS = $(CFLAGS) /DPCSC_FUNCS
47 CFLAGS = $(CFLAGS) /DCONFIG_CTRL_IFACE
48 CFLAGS = $(CFLAGS) /DCONFIG_CTRL_IFACE_NAMED_PIPE
49 CFLAGS = $(CFLAGS) /DCONFIG_DRIVER_NDIS
50 CFLAGS = $(CFLAGS) /I..\src /I..\src\utils
51 CFLAGS = $(CFLAGS) /I.
52 CFLAGS = $(CFLAGS) /DWIN32
53 CFLAGS = $(CFLAGS) /Fo$(OBJDIR)\\ /c
54 CFLAGS = $(CFLAGS) /W3
55
56 #CFLAGS = $(CFLAGS) /WX
57
58 # VS 2005 complains about lot of deprecated string functions; let's ignore them
59 # at least for now since snprintf and strncpy can be used in a safe way
60 CFLAGS = $(CFLAGS) /D_CRT_SECURE_NO_DEPRECATE
61
62 OBJS = \
63         $(OBJDIR)\os_win32.obj \
64         $(OBJDIR)\eloop_win.obj \
65         $(OBJDIR)\sha1.obj \
66         $(OBJDIR)\sha1-tlsprf.obj \
67         $(OBJDIR)\sha1-pbkdf2.obj \
68         $(OBJDIR)\md5.obj \
69         $(OBJDIR)\aes-cbc.obj \
70         $(OBJDIR)\aes-ctr.obj \
71         $(OBJDIR)\aes-eax.obj \
72         $(OBJDIR)\aes-encblock.obj \
73         $(OBJDIR)\aes-omac1.obj \
74         $(OBJDIR)\aes-unwrap.obj \
75         $(OBJDIR)\aes-wrap.obj \
76         $(OBJDIR)\common.obj \
77         $(OBJDIR)\wpa_debug.obj \
78         $(OBJDIR)\wpabuf.obj \
79         $(OBJDIR)\wpa_supplicant.obj \
80         $(OBJDIR)\wpa.obj \
81         $(OBJDIR)\wpa_common.obj \
82         $(OBJDIR)\wpa_ie.obj \
83         $(OBJDIR)\preauth.obj \
84         $(OBJDIR)\pmksa_cache.obj \
85         $(OBJDIR)\eapol_supp_sm.obj \
86         $(OBJDIR)\eap.obj \
87         $(OBJDIR)\eap_common.obj \
88         $(OBJDIR)\chap.obj \
89         $(OBJDIR)\eap_methods.obj \
90         $(OBJDIR)\eap_md5.obj \
91         $(OBJDIR)\eap_tls.obj \
92         $(OBJDIR)\eap_tls_common.obj \
93         $(OBJDIR)\eap_mschapv2.obj \
94         $(OBJDIR)\mschapv2.obj \
95         $(OBJDIR)\eap_peap.obj \
96         $(OBJDIR)\eap_peap_common.obj \
97         $(OBJDIR)\eap_ttls.obj \
98         $(OBJDIR)\eap_gtc.obj \
99         $(OBJDIR)\eap_otp.obj \
100         $(OBJDIR)\eap_leap.obj \
101         $(OBJDIR)\eap_sim.obj \
102         $(OBJDIR)\eap_sim_common.obj \
103         $(OBJDIR)\eap_aka.obj \
104         $(OBJDIR)\eap_pax.obj \
105         $(OBJDIR)\eap_pax_common.obj \
106         $(OBJDIR)\eap_psk.obj \
107         $(OBJDIR)\eap_psk_common.obj \
108         $(OBJDIR)\eap_tnc.obj \
109         $(OBJDIR)\tncc.obj \
110         $(OBJDIR)\base64.obj \
111         $(OBJDIR)\ctrl_iface.obj \
112         $(OBJDIR)\ctrl_iface_named_pipe.obj \
113         $(OBJDIR)\driver_ndis.obj \
114         $(OBJDIR)\driver_ndis_.obj \
115         $(OBJDIR)\scan_helpers.obj \
116         $(OBJDIR)\events.obj \
117         $(OBJDIR)\blacklist.obj \
118         $(OBJDIR)\scan.obj \
119         $(OBJDIR)\wpas_glue.obj \
120         $(OBJDIR)\eap_register.obj \
121         $(OBJDIR)\config.obj \
122         $(OBJDIR)\l2_packet_winpcap.obj \
123         $(OBJDIR)\tls_openssl.obj \
124         $(OBJDIR)\ms_funcs.obj \
125         $(OBJDIR)\crypto_openssl.obj \
126         $(OBJDIR)\fips_prf_openssl.obj \
127         $(OBJDIR)\pcsc_funcs.obj \
128         $(OBJDIR)\notify.obj \
129         $(OBJDIR)\ndis_events.obj
130
131 # OBJS = $(OBJS) $(OBJDIR)\eap_fast.obj
132
133 OBJS_t = $(OBJS) \
134         $(OBJDIR)\eapol_test.obj \
135         $(OBJDIR)\radius.obj \
136         $(OBJDIR)\radius_client.obj \
137         $(OBJDIR)\config_file.obj $(OBJDIR)\base64.obj
138
139 OBJS_t2 = $(OBJS) \
140         $(OBJDIR)\preauth_test.obj \
141         $(OBJDIR)\config_file.obj $(OBJDIR)\base64.obj
142
143 OBJS2 = $(OBJDIR)\drivers.obj \
144         $(OBJDIR)\config_file.obj \
145         $(OBJS2) $(OBJDIR)\main.obj
146
147 OBJS3 = $(OBJDIR)\drivers.obj \
148         $(OBJDIR)\config_winreg.obj \
149         $(OBJS3) $(OBJDIR)\main_winsvc.obj
150
151 OBJS_c = \
152         $(OBJDIR)\os_win32.obj \
153         $(OBJDIR)\wpa_cli.obj \
154         $(OBJDIR)\wpa_ctrl.obj \
155         $(OBJDIR)\common.obj
156
157 OBJS_p = \
158         $(OBJDIR)\os_win32.obj \
159         $(OBJDIR)\common.obj \
160         $(OBJDIR)\wpa_debug.obj \
161         $(OBJDIR)\wpabuf.obj \
162         $(OBJDIR)\sha1.obj \
163         $(OBJDIR)\md5.obj \
164         $(OBJDIR)\crypto_openssl.obj \
165         $(OBJDIR)\sha1-pbkdf2.obj \
166         $(OBJDIR)\wpa_passphrase.obj
167
168 LIBS = wbemuuid.lib libcmt.lib kernel32.lib uuid.lib ole32.lib oleaut32.lib \
169         ws2_32.lib Advapi32.lib Crypt32.lib Winscard.lib \
170         Packet.lib wpcap.lib \
171         libeay32.lib ssleay32.lib
172 # If using Win32 OpenSSL binary installation from Shining Light Productions,
173 # replace the last line with this for dynamic libraries
174 #       libeay32MT.lib ssleay32MT.lib
175 # and this for static libraries
176 #       libeay32MT.lib ssleay32MT.lib Gdi32.lib User32.lib
177
178 CFLAGS = $(CFLAGS) /I"$(WINPCAPDIR)/Include" /I"$(OPENSSLDIR)\include"
179 LFLAGS = /libpath:"$(WINPCAPDIR)\Lib" /libpath:"$(OPENSSLDIR)\lib"
180
181 wpa_supplicant.exe: $(OBJDIR) $(OBJS) $(OBJS2)
182         link.exe /out:wpa_supplicant.exe $(LFLAGS) $(OBJS) $(OBJS2) $(LIBS)
183
184 wpasvc.exe: $(OBJDIR) $(OBJS) $(OBJS3)
185         link.exe /out:wpasvc.exe $(LFLAGS) $(OBJS) $(OBJS3) $(LIBS)
186
187 wpa_cli.exe: $(OBJDIR) $(OBJS_c)
188         link.exe /out:wpa_cli.exe $(LFLAGS) $(OBJS_c) $(LIBS)
189
190 wpa_passphrase.exe: $(OBJDIR) $(OBJS_p)
191         link.exe /out:wpa_passphrase.exe $(LFLAGS) $(OBJS_p) $(LIBS)
192
193 eapol_test.exe: $(OBJDIR) $(OBJS_t)
194         link.exe /out:eapol_test.exe $(LFLAGS) $(OBJS_t) $(LIBS)
195
196 preauth_test.exe: $(OBJDIR) $(OBJS_t2)
197         link.exe /out:preauth_test.exe $(LFLAGS) $(OBJS_t2) $(LIBS)
198
199 win_if_list.exe: $(OBJDIR) $(OBJDIR)\win_if_list.obj
200         link.exe /out:win_if_list.exe $(LFLAGS) $(OBJDIR)\win_if_list.obj $(LIBS)
201
202
203 {..\src\utils}.c{$(OBJDIR)}.obj::
204         $(CC) $(CFLAGS) $<
205
206 {..\src\common}.c{$(OBJDIR)}.obj::
207         $(CC) $(CFLAGS) $<
208
209 {..\src\rsn_supp}.c{$(OBJDIR)}.obj::
210         $(CC) $(CFLAGS) $<
211
212 {..\src\eapol_supp}.c{$(OBJDIR)}.obj::
213         $(CC) $(CFLAGS) $<
214
215 {..\src\crypto}.c{$(OBJDIR)}.obj::
216         $(CC) $(CFLAGS) $<
217
218 {..\src\eap_peer}.c{$(OBJDIR)}.obj::
219         $(CC) $(CFLAGS) $<
220
221 {..\src\eap_common}.c{$(OBJDIR)}.obj::
222         $(CC) $(CFLAGS) $<
223
224 {..\src\drivers}.c{$(OBJDIR)}.obj::
225         $(CC) $(CFLAGS) $<
226
227 {..\src\l2_packet}.c{$(OBJDIR)}.obj::
228         $(CC) $(CFLAGS) $<
229
230 {.\}.c{$(OBJDIR)}.obj::
231         $(CC) $(CFLAGS) $<
232
233 {.\}.cpp{$(OBJDIR)}.obj::
234         $(CC) $(CFLAGS) $<
235
236 $(OBJDIR):
237         if not exist "$(OBJDIR)" mkdir "$(OBJDIR)"
238
239 clean:
240         erase $(OBJDIR)\*.obj wpa_supplicant.exe