title: How to compile libevent2 on Windows?
body: <p>I am trying to compile <a href="http://downloads.sourceforge.net/project/levent/libevent/libevent-2.0/libevent-2.0.16-stable.tar.gz?r=http://sourceforge.net/projects/levent/&amp;ts=1327539149&amp;use_mirror=aarnet" rel="nofollow">this libevent2 package</a> to Windows, but currently I can't because the configure script is a shell script (/bin/sh; can't be run in Windows). </p>
  
  <p>Is there any way I can compile it or obtain a pre-compiled package? I currently have MinGW, CMake and MS C++ installed.</p>
  
  <p><strong>EDIT:</strong> I have managed to compile libevent2 using <em>nmake Makefile.nmake</em> but it hasn't produced any Windows binaries/libraries. Only .lib. </p>
  
  <p>The makefile is as follows - </p>
  
  <pre><code># WATCH OUT!  This makefile is a work in progress.  It is probably missing
  # tons of important things.  DO NOT RELY ON IT TO BUILD A GOOD LIBEVENT.
  
  # Needed for correctness
  CFLAGS=/IWIN32-Code /Iinclude /Icompat /DWIN32 /DHAVE_CONFIG_H /I.
  
  # For optimization and warnings
  CFLAGS=$(CFLAGS) /Ox /W3 /wd4996 /nologo
  
  # XXXX have a debug mode
  
  LIBFLAGS=/nologo
  
  CORE_OBJS=event.obj buffer.obj bufferevent.obj bufferevent_sock.obj \
      bufferevent_pair.obj listener.obj evmap.obj log.obj evutil.obj \
      strlcpy.obj signal.obj bufferevent_filter.obj evthread.obj \
      bufferevent_ratelim.obj evutil_rand.obj
  WIN_OBJS=win32select.obj evthread_win32.obj buffer_iocp.obj \
      event_iocp.obj bufferevent_async.obj
  EXTRA_OBJS=event_tagging.obj http.obj evdns.obj evrpc.obj
  
  ALL_OBJS=$(CORE_OBJS) $(WIN_OBJS) $(EXTRA_OBJS)
  STATIC_LIBS=libevent_core.lib libevent_extras.lib libevent.lib
  
  
  all: static_libs tests
  
  static_libs: $(STATIC_LIBS)
  
  libevent_core.lib: $(CORE_OBJS) $(WIN_OBJS)
      lib $(LIBFLAGS) $(CORE_OBJS) $(WIN_OBJS) /out:libevent_core.lib 
  
  libevent_extras.lib: $(EXTRA_OBJS)
      lib $(LIBFLAGS) $(EXTRA_OBJS) /out:libevent_extras.lib
  
  libevent.lib: $(CORE_OBJS) $(WIN_OBJS) $(EXTRA_OBJS)
      lib $(LIBFLAGS) $(CORE_OBJS) $(EXTRA_OBJS) $(WIN_OBJS) /out:libevent.lib
  
  clean:
      del $(ALL_OBJS)
      del $(STATIC_LIBS)
      cd test
      $(MAKE) /F Makefile.nmake clean
  
  tests:
      cd test
      $(MAKE) /F Makefile.nmake
  </code></pre>