1eba0eb2eSPatrick Pelletier# WATCH OUT! This makefile is a work in progress. -*- makefile -*- 2e7bf4c84SNick Mathewson# 3e7bf4c84SNick Mathewson# I'm not very knowledgeable about MSVC and nmake beyond their most basic 4e7bf4c84SNick Mathewson# aspects. If anything here looks wrong to you, please let me know. 54ca9efeaSNick Mathewson 66bde2efdSPatrick Pelletier# If OPENSSL_DIR is not set, builds without OpenSSL support. If you want 76bde2efdSPatrick Pelletier# OpenSSL support, you can set the OPENSSL_DIR variable to where you 86bde2efdSPatrick Pelletier# installed OpenSSL. This can be done in the environment: 96bde2efdSPatrick Pelletier# set OPENSSL_DIR=c:\openssl 106bde2efdSPatrick Pelletier# Or on the nmake command line: 116bde2efdSPatrick Pelletier# nmake OPENSSL_DIR=C:\openssl -f Makefile.nmake 126bde2efdSPatrick Pelletier# Or by uncommenting the following line here in the makefile... 136bde2efdSPatrick Pelletier 14eba0eb2eSPatrick Pelletier# OPENSSL_DIR=c:\openssl 15eba0eb2eSPatrick Pelletier 16eba0eb2eSPatrick Pelletier!IFDEF OPENSSL_DIR 17eba0eb2eSPatrick PelletierSSL_CFLAGS=/I$(OPENSSL_DIR)\include /DEVENT__HAVE_OPENSSL 18eba0eb2eSPatrick Pelletier!ELSE 19eba0eb2eSPatrick PelletierSSL_CFLAGS= 20eba0eb2eSPatrick Pelletier!ENDIF 21eba0eb2eSPatrick Pelletier 224ca9efeaSNick Mathewson# Needed for correctness 2324d64666SJoakim SoderbergCFLAGS=/IWIN32-Code /IWIN32-Code/nmake /Iinclude /Icompat /DHAVE_CONFIG_H /I. $(SSL_CFLAGS) 244ca9efeaSNick Mathewson 254ca9efeaSNick Mathewson# For optimization and warnings 264ca9efeaSNick MathewsonCFLAGS=$(CFLAGS) /Ox /W3 /wd4996 /nologo 274ca9efeaSNick Mathewson 284ca9efeaSNick Mathewson# XXXX have a debug mode 294ca9efeaSNick Mathewson 304ca9efeaSNick MathewsonLIBFLAGS=/nologo 314ca9efeaSNick Mathewson 324ca9efeaSNick MathewsonCORE_OBJS=event.obj buffer.obj bufferevent.obj bufferevent_sock.obj \ 334ca9efeaSNick Mathewson bufferevent_pair.obj listener.obj evmap.obj log.obj evutil.obj \ 345c7a7bcaSNick Mathewson strlcpy.obj signal.obj bufferevent_filter.obj evthread.obj \ 350ba0683bSNick Mathewson bufferevent_ratelim.obj evutil_rand.obj evutil_time.obj 364ca9efeaSNick MathewsonWIN_OBJS=win32select.obj evthread_win32.obj buffer_iocp.obj \ 374ca9efeaSNick Mathewson event_iocp.obj bufferevent_async.obj 3886f57420SNick MathewsonEXTRA_OBJS=event_tagging.obj http.obj evdns.obj evrpc.obj 394ca9efeaSNick Mathewson 40eba0eb2eSPatrick Pelletier!IFDEF OPENSSL_DIR 41eba0eb2eSPatrick PelletierSSL_OBJS=bufferevent_openssl.obj 42eba0eb2eSPatrick PelletierSSL_LIBS=libevent_openssl.lib 43eba0eb2eSPatrick Pelletier!ELSE 44eba0eb2eSPatrick PelletierSSL_OBJS= 45eba0eb2eSPatrick PelletierSSL_LIBS= 46eba0eb2eSPatrick Pelletier!ENDIF 47eba0eb2eSPatrick Pelletier 48eba0eb2eSPatrick PelletierALL_OBJS=$(CORE_OBJS) $(WIN_OBJS) $(EXTRA_OBJS) $(SSL_OBJS) 49eba0eb2eSPatrick PelletierSTATIC_LIBS=libevent_core.lib libevent_extras.lib libevent.lib $(SSL_LIBS) 504ca9efeaSNick Mathewson 51*a264da86SMark Ellzey 524ca9efeaSNick Mathewsonall: static_libs tests 534ca9efeaSNick Mathewson 544ca9efeaSNick Mathewsonstatic_libs: $(STATIC_LIBS) 554ca9efeaSNick Mathewson 564ca9efeaSNick Mathewsonlibevent_core.lib: $(CORE_OBJS) $(WIN_OBJS) 574ca9efeaSNick Mathewson lib $(LIBFLAGS) $(CORE_OBJS) $(WIN_OBJS) /out:libevent_core.lib 584ca9efeaSNick Mathewson 594ca9efeaSNick Mathewsonlibevent_extras.lib: $(EXTRA_OBJS) 604ca9efeaSNick Mathewson lib $(LIBFLAGS) $(EXTRA_OBJS) /out:libevent_extras.lib 614ca9efeaSNick Mathewson 624ca9efeaSNick Mathewsonlibevent.lib: $(CORE_OBJS) $(WIN_OBJS) $(EXTRA_OBJS) 634ca9efeaSNick Mathewson lib $(LIBFLAGS) $(CORE_OBJS) $(EXTRA_OBJS) $(WIN_OBJS) /out:libevent.lib 644ca9efeaSNick Mathewson 65eba0eb2eSPatrick Pelletierlibevent_openssl.lib: $(SSL_OBJS) 66eba0eb2eSPatrick Pelletier lib $(LIBFLAGS) $(SSL_OBJS) /out:libevent_openssl.lib 67eba0eb2eSPatrick Pelletier 684ca9efeaSNick Mathewsonclean: 694ca9efeaSNick Mathewson del $(ALL_OBJS) 704ca9efeaSNick Mathewson del $(STATIC_LIBS) 714ca9efeaSNick Mathewson cd test 724ca9efeaSNick Mathewson $(MAKE) /F Makefile.nmake clean 73eba0eb2eSPatrick Pelletier cd .. 744ca9efeaSNick Mathewson 754ca9efeaSNick Mathewsontests: 764ca9efeaSNick Mathewson cd test 77eba0eb2eSPatrick Pelletier!IFDEF OPENSSL_DIR 78eba0eb2eSPatrick Pelletier $(MAKE) OPENSSL_DIR=$(OPENSSL_DIR) /F Makefile.nmake 79eba0eb2eSPatrick Pelletier!ELSE 804ca9efeaSNick Mathewson $(MAKE) /F Makefile.nmake 81eba0eb2eSPatrick Pelletier!ENDIF 82eba0eb2eSPatrick Pelletier cd .. 83