1 # Makefile for Microsoft nmake to build wpa_supplicant
3 # This can be run in Visual Studio 2005 Command Prompt
5 # Note: Make sure that cl.exe is configured to include Platform SDK
6 # include and lib directories (vsvars32.bat)
8 all: wpa_supplicant.exe wpa_cli.exe wpa_passphrase.exe wpasvc.exe win_if_list.exe
10 # Root directory for WinPcap developer's pack
11 # (http://www.winpcap.org/install/bin/WpdPack_3_1.zip)
12 WINPCAPDIR
=C
:\dev\WpdPack
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
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
56 #CFLAGS = $(CFLAGS) /WX
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
63 $(OBJDIR
)\os_win32.obj \
64 $(OBJDIR
)\eloop_win.obj \
66 $(OBJDIR
)\sha1-tlsprf.obj \
67 $(OBJDIR
)\sha1-pbkdf2.obj \
69 $(OBJDIR
)\aes
-cbc.obj \
70 $(OBJDIR
)\aes
-ctr.obj \
71 $(OBJDIR
)\aes
-eax.obj \
72 $(OBJDIR
)\aes
-encblock.obj \
73 $(OBJDIR
)\aes
-omac
1.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 \
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 \
87 $(OBJDIR
)\eap_common.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 \
110 $(OBJDIR
)\base
64.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 \
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
131 # OBJS = $(OBJS) $(OBJDIR)\eap_fast.obj
134 $(OBJDIR
)\eapol_test.obj \
135 $(OBJDIR
)\radius.obj \
136 $(OBJDIR
)\radius_client.obj \
137 $(OBJDIR
)\config_file.obj
$(OBJDIR
)\base
64.obj
140 $(OBJDIR
)\preauth_test.obj \
141 $(OBJDIR
)\config_file.obj
$(OBJDIR
)\base
64.obj
143 OBJS2
= $(OBJDIR
)\drivers.obj \
144 $(OBJDIR
)\config_file.obj \
145 $(OBJS2
) $(OBJDIR
)\main.obj
147 OBJS3
= $(OBJDIR
)\drivers.obj \
148 $(OBJDIR
)\config_winreg.obj \
149 $(OBJS3
) $(OBJDIR
)\main_winsvc.obj
152 $(OBJDIR
)\os_win32.obj \
153 $(OBJDIR
)\wpa_cli.obj \
154 $(OBJDIR
)\wpa_ctrl.obj \
158 $(OBJDIR
)\os_win32.obj \
159 $(OBJDIR
)\common.obj \
160 $(OBJDIR
)\wpa_debug.obj \
161 $(OBJDIR
)\wpabuf.obj \
164 $(OBJDIR
)\crypto_openssl.obj \
165 $(OBJDIR
)\sha1-pbkdf2.obj \
166 $(OBJDIR
)\wpa_passphrase.obj
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
178 CFLAGS
= $(CFLAGS
) /I
"$(WINPCAPDIR)/Include" /I
"$(OPENSSLDIR)\include"
179 LFLAGS
= /libpath
:"$(WINPCAPDIR)\Lib" /libpath
:"$(OPENSSLDIR)\lib"
181 wpa_supplicant.exe
: $(OBJDIR
) $(OBJS
) $(OBJS2
)
182 link.exe
/out
:wpa_supplicant.exe
$(LFLAGS
) $(OBJS
) $(OBJS2
) $(LIBS
)
184 wpasvc.exe
: $(OBJDIR
) $(OBJS
) $(OBJS3
)
185 link.exe
/out
:wpasvc.exe
$(LFLAGS
) $(OBJS
) $(OBJS3
) $(LIBS
)
187 wpa_cli.exe
: $(OBJDIR
) $(OBJS_c
)
188 link.exe
/out
:wpa_cli.exe
$(LFLAGS
) $(OBJS_c
) $(LIBS
)
190 wpa_passphrase.exe
: $(OBJDIR
) $(OBJS_p
)
191 link.exe
/out
:wpa_passphrase.exe
$(LFLAGS
) $(OBJS_p
) $(LIBS
)
193 eapol_test.exe
: $(OBJDIR
) $(OBJS_t
)
194 link.exe
/out
:eapol_test.exe
$(LFLAGS
) $(OBJS_t
) $(LIBS
)
196 preauth_test.exe
: $(OBJDIR
) $(OBJS_t2
)
197 link.exe
/out
:preauth_test.exe
$(LFLAGS
) $(OBJS_t2
) $(LIBS
)
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
)
203 {..\src\utils
}.c
{$(OBJDIR
)}.obj
::
206 {..\src\common
}.c
{$(OBJDIR
)}.obj
::
209 {..\src
\rsn_supp
}.c
{$(OBJDIR
)}.obj
::
212 {..\src\eapol_supp
}.c
{$(OBJDIR
)}.obj
::
215 {..\src\crypto
}.c
{$(OBJDIR
)}.obj
::
218 {..\src\eap_peer
}.c
{$(OBJDIR
)}.obj
::
221 {..\src\eap_common
}.c
{$(OBJDIR
)}.obj
::
224 {..\src\drivers
}.c
{$(OBJDIR
)}.obj
::
227 {..\src\l2_packet
}.c
{$(OBJDIR
)}.obj
::
230 {.\
}.c
{$(OBJDIR
)}.obj
::
233 {.\
}.
cpp{$(OBJDIR
)}.obj
::
237 if not exist
"$(OBJDIR)" mkdir
"$(OBJDIR)"
240 erase
$(OBJDIR
)\
*.obj wpa_supplicant.exe