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