xref: /libevent-2.1.12/Makefile.nmake (revision a264da86)
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