18d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt# Makefile for Microsoft nmake to build wpa_supplicant
28d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
38d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt# This can be run in Visual Studio 2005 Command Prompt
48d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
58d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt# Note: Make sure that cl.exe is configured to include Platform SDK
68d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt# include and lib directories (vsvars32.bat)
78d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
88d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtall: wpa_supplicant.exe wpa_cli.exe wpa_passphrase.exe wpasvc.exe win_if_list.exe
98d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
108d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt# Root directory for WinPcap developer's pack
118d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt# (http://www.winpcap.org/install/bin/WpdPack_3_1.zip)
128d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtWINPCAPDIR=C:\dev\WpdPack
138d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
148d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt# Root directory for OpenSSL
158d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt# (http://www.openssl.org/source/openssl-0.9.8a.tar.gz)
168d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt# Build and installed following instructions in INSTALL.W32
178d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt# Note: If EAP-FAST is included in the build, OpenSSL needs to be patched to
188d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt# support it (openssl-tls-extensions.patch)
198d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt# Alternatively, see README-Windows.txt for information about binary
208d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt# installation package for OpenSSL.
218d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtOPENSSLDIR=C:\dev\openssl
228d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
238d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtCC = cl
248d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtOBJDIR = objs
258d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
268d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtCFLAGS = /DCONFIG_NATIVE_WINDOWS
278d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtCFLAGS = $(CFLAGS) /DCONFIG_NDIS_EVENTS_INTEGRATED
288d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtCFLAGS = $(CFLAGS) /DCONFIG_ANSI_C_EXTRA
298d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtCFLAGS = $(CFLAGS) /DCONFIG_WINPCAP
308d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtCFLAGS = $(CFLAGS) /DIEEE8021X_EAPOL
318d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtCFLAGS = $(CFLAGS) /DPKCS12_FUNCS
328d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtCFLAGS = $(CFLAGS) /DEAP_MD5
338d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtCFLAGS = $(CFLAGS) /DEAP_TLS
348d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtCFLAGS = $(CFLAGS) /DEAP_MSCHAPv2
358d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtCFLAGS = $(CFLAGS) /DEAP_PEAP
368d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtCFLAGS = $(CFLAGS) /DEAP_TTLS
378d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtCFLAGS = $(CFLAGS) /DEAP_GTC
388d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtCFLAGS = $(CFLAGS) /DEAP_OTP
398d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtCFLAGS = $(CFLAGS) /DEAP_SIM
408d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtCFLAGS = $(CFLAGS) /DEAP_LEAP
418d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtCFLAGS = $(CFLAGS) /DEAP_PSK
428d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtCFLAGS = $(CFLAGS) /DEAP_AKA
438d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#CFLAGS = $(CFLAGS) /DEAP_FAST
448d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtCFLAGS = $(CFLAGS) /DEAP_PAX
458d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtCFLAGS = $(CFLAGS) /DEAP_TNC
468d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtCFLAGS = $(CFLAGS) /DPCSC_FUNCS
478d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtCFLAGS = $(CFLAGS) /DCONFIG_CTRL_IFACE
488d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtCFLAGS = $(CFLAGS) /DCONFIG_CTRL_IFACE_NAMED_PIPE
498d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtCFLAGS = $(CFLAGS) /DCONFIG_DRIVER_NDIS
508d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtCFLAGS = $(CFLAGS) /I..\src /I..\src\utils
518d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtCFLAGS = $(CFLAGS) /I.
528d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtCFLAGS = $(CFLAGS) /DWIN32
538d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtCFLAGS = $(CFLAGS) /Fo$(OBJDIR)\\ /c
548d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtCFLAGS = $(CFLAGS) /W3
558d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
568d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#CFLAGS = $(CFLAGS) /WX
578d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
588d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt# VS 2005 complains about lot of deprecated string functions; let's ignore them
598d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt# at least for now since snprintf and strncpy can be used in a safe way
608d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtCFLAGS = $(CFLAGS) /D_CRT_SECURE_NO_DEPRECATE
618d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
628d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtOBJS = \
638d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\os_win32.obj \
648d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\eloop_win.obj \
658d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\sha1.obj \
668d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\sha1-tlsprf.obj \
678d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\sha1-pbkdf2.obj \
688d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\md5.obj \
698d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\aes-cbc.obj \
708d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\aes-ctr.obj \
718d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\aes-eax.obj \
728d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\aes-encblock.obj \
738d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\aes-omac1.obj \
748d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\aes-unwrap.obj \
758d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\aes-wrap.obj \
768d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\common.obj \
778d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\wpa_debug.obj \
788d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\wpabuf.obj \
798d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\wpa_supplicant.obj \
808d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\wpa.obj \
818d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\wpa_common.obj \
828d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\wpa_ie.obj \
838d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\preauth.obj \
848d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\pmksa_cache.obj \
858d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\eapol_supp_sm.obj \
868d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\eap.obj \
878d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\eap_common.obj \
888d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\chap.obj \
898d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\eap_methods.obj \
908d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\eap_md5.obj \
918d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\eap_tls.obj \
928d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\eap_tls_common.obj \
938d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\eap_mschapv2.obj \
948d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\mschapv2.obj \
958d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\eap_peap.obj \
968d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\eap_peap_common.obj \
978d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\eap_ttls.obj \
988d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\eap_gtc.obj \
998d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\eap_otp.obj \
1008d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\eap_leap.obj \
1018d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\eap_sim.obj \
1028d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\eap_sim_common.obj \
1038d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\eap_aka.obj \
1048d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\eap_pax.obj \
1058d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\eap_pax_common.obj \
1068d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\eap_psk.obj \
1078d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\eap_psk_common.obj \
1088d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\eap_tnc.obj \
1098d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\tncc.obj \
1108d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\base64.obj \
1118d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\ctrl_iface.obj \
1128d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\ctrl_iface_named_pipe.obj \
1138d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\driver_ndis.obj \
1148d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\driver_ndis_.obj \
1158d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\scan_helpers.obj \
1168d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\events.obj \
1178d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\blacklist.obj \
1188d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\scan.obj \
1198d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\wpas_glue.obj \
1208d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\eap_register.obj \
1218d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\config.obj \
1228d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\l2_packet_winpcap.obj \
1238d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\tls_openssl.obj \
1248d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\ms_funcs.obj \
1258d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\crypto_openssl.obj \
1268d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\fips_prf_openssl.obj \
1278d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\pcsc_funcs.obj \
1288d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\notify.obj \
1298d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\ndis_events.obj
1308d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
1318d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt# OBJS = $(OBJS) $(OBJDIR)\eap_fast.obj
1328d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
1338d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtOBJS_t = $(OBJS) \
1348d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\eapol_test.obj \
1358d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\radius.obj \
1368d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\radius_client.obj \
1378d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\config_file.obj $(OBJDIR)\base64.obj
1388d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
1398d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtOBJS_t2 = $(OBJS) \
1408d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\preauth_test.obj \
1418d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\config_file.obj $(OBJDIR)\base64.obj
1428d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
1438d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtOBJS2 = $(OBJDIR)\drivers.obj \
1448d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\config_file.obj \
1458d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJS2) $(OBJDIR)\main.obj
1468d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
1478d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtOBJS3 = $(OBJDIR)\drivers.obj \
1488d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\config_winreg.obj \
1498d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJS3) $(OBJDIR)\main_winsvc.obj
1508d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
1518d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtOBJS_c = \
1528d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\os_win32.obj \
1538d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\wpa_cli.obj \
1548d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\wpa_ctrl.obj \
1558d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\common.obj
1568d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
1578d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtOBJS_p = \
1588d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\os_win32.obj \
1598d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\common.obj \
1608d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\wpa_debug.obj \
1618d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\wpabuf.obj \
1628d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\sha1.obj \
1638d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\md5.obj \
1648d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\crypto_openssl.obj \
1658d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\sha1-pbkdf2.obj \
1668d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(OBJDIR)\wpa_passphrase.obj
1678d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
1688d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtLIBS = wbemuuid.lib libcmt.lib kernel32.lib uuid.lib ole32.lib oleaut32.lib \
1698d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	ws2_32.lib Advapi32.lib Crypt32.lib Winscard.lib \
1708d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	Packet.lib wpcap.lib \
1718d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	libeay32.lib ssleay32.lib
1728d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt# If using Win32 OpenSSL binary installation from Shining Light Productions,
1738d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt# replace the last line with this for dynamic libraries
1748d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#	libeay32MT.lib ssleay32MT.lib
1758d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt# and this for static libraries
1768d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#	libeay32MT.lib ssleay32MT.lib Gdi32.lib User32.lib
1778d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
1788d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtCFLAGS = $(CFLAGS) /I"$(WINPCAPDIR)/Include" /I"$(OPENSSLDIR)\include"
1798d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtLFLAGS = /libpath:"$(WINPCAPDIR)\Lib" /libpath:"$(OPENSSLDIR)\lib"
1808d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
1818d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtwpa_supplicant.exe: $(OBJDIR) $(OBJS) $(OBJS2)
1828d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	link.exe /out:wpa_supplicant.exe $(LFLAGS) $(OBJS) $(OBJS2) $(LIBS)
1838d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
1848d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtwpasvc.exe: $(OBJDIR) $(OBJS) $(OBJS3)
1858d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	link.exe /out:wpasvc.exe $(LFLAGS) $(OBJS) $(OBJS3) $(LIBS)
1868d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
1878d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtwpa_cli.exe: $(OBJDIR) $(OBJS_c)
1888d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	link.exe /out:wpa_cli.exe $(LFLAGS) $(OBJS_c) $(LIBS)
1898d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
1908d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtwpa_passphrase.exe: $(OBJDIR) $(OBJS_p)
1918d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	link.exe /out:wpa_passphrase.exe $(LFLAGS) $(OBJS_p) $(LIBS)
1928d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
1938d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidteapol_test.exe: $(OBJDIR) $(OBJS_t)
1948d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	link.exe /out:eapol_test.exe $(LFLAGS) $(OBJS_t) $(LIBS)
1958d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
1968d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtpreauth_test.exe: $(OBJDIR) $(OBJS_t2)
1978d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	link.exe /out:preauth_test.exe $(LFLAGS) $(OBJS_t2) $(LIBS)
1988d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
1998d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtwin_if_list.exe: $(OBJDIR) $(OBJDIR)\win_if_list.obj
2008d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	link.exe /out:win_if_list.exe $(LFLAGS) $(OBJDIR)\win_if_list.obj $(LIBS)
2018d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
2028d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
2038d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt{..\src\utils}.c{$(OBJDIR)}.obj::
2048d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(CC) $(CFLAGS) $<
2058d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
2068d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt{..\src\common}.c{$(OBJDIR)}.obj::
2078d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(CC) $(CFLAGS) $<
2088d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
2098d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt{..\src\rsn_supp}.c{$(OBJDIR)}.obj::
2108d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(CC) $(CFLAGS) $<
2118d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
2128d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt{..\src\eapol_supp}.c{$(OBJDIR)}.obj::
2138d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(CC) $(CFLAGS) $<
2148d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
2158d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt{..\src\crypto}.c{$(OBJDIR)}.obj::
2168d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(CC) $(CFLAGS) $<
2178d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
2188d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt{..\src\eap_peer}.c{$(OBJDIR)}.obj::
2198d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(CC) $(CFLAGS) $<
2208d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
2218d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt{..\src\eap_common}.c{$(OBJDIR)}.obj::
2228d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(CC) $(CFLAGS) $<
2238d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
2248d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt{..\src\drivers}.c{$(OBJDIR)}.obj::
2258d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(CC) $(CFLAGS) $<
2268d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
2278d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt{..\src\l2_packet}.c{$(OBJDIR)}.obj::
2288d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(CC) $(CFLAGS) $<
2298d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
2308d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt{.\}.c{$(OBJDIR)}.obj::
2318d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(CC) $(CFLAGS) $<
2328d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
2338d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt{.\}.cpp{$(OBJDIR)}.obj::
2348d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	$(CC) $(CFLAGS) $<
2358d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
2368d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt$(OBJDIR):
2378d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	if not exist "$(OBJDIR)" mkdir "$(OBJDIR)"
2388d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
2398d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtclean:
2408d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	erase $(OBJDIR)\*.obj wpa_supplicant.exe
241