Home | History | Annotate | Download | only in libevent
      1 # WATCH OUT!  This makefile is a work in progress.             -*- makefile -*-
      2 #
      3 # I'm not very knowledgeable about MSVC and nmake beyond their most basic
      4 # aspects.  If anything here looks wrong to you, please let me know.
      5 
      6 # If OPENSSL_DIR is not set, builds without OpenSSL support.  If you want
      7 # OpenSSL support, you can set the OPENSSL_DIR variable to where you
      8 # installed OpenSSL.  This can be done in the environment:
      9 #   set OPENSSL_DIR=c:\openssl
     10 # Or on the nmake command line:
     11 #   nmake OPENSSL_DIR=C:\openssl -f Makefile.nmake
     12 # Or by uncommenting the following line here in the makefile...
     13 
     14 # OPENSSL_DIR=c:\openssl
     15 
     16 !IFDEF OPENSSL_DIR
     17 SSL_CFLAGS=/I$(OPENSSL_DIR)\include /DEVENT__HAVE_OPENSSL
     18 !ELSE
     19 SSL_CFLAGS=
     20 !ENDIF
     21 
     22 # Needed for correctness
     23 CFLAGS=/IWIN32-Code /IWIN32-Code/nmake /Iinclude /Icompat /DHAVE_CONFIG_H /I. $(SSL_CFLAGS)
     24 
     25 # For optimization and warnings
     26 CFLAGS=$(CFLAGS) /Ox /W3 /wd4996 /nologo
     27 
     28 # XXXX have a debug mode
     29 
     30 LIBFLAGS=/nologo
     31 
     32 CORE_OBJS=event.obj buffer.obj bufferevent.obj bufferevent_sock.obj \
     33 	bufferevent_pair.obj listener.obj evmap.obj log.obj evutil.obj \
     34 	strlcpy.obj signal.obj bufferevent_filter.obj evthread.obj \
     35 	bufferevent_ratelim.obj evutil_rand.obj evutil_time.obj
     36 WIN_OBJS=win32select.obj evthread_win32.obj buffer_iocp.obj \
     37 	event_iocp.obj bufferevent_async.obj
     38 EXTRA_OBJS=event_tagging.obj http.obj evdns.obj evrpc.obj
     39 
     40 !IFDEF OPENSSL_DIR
     41 SSL_OBJS=bufferevent_openssl.obj
     42 SSL_LIBS=libevent_openssl.lib
     43 !ELSE
     44 SSL_OBJS=
     45 SSL_LIBS=
     46 !ENDIF
     47 
     48 ALL_OBJS=$(CORE_OBJS) $(WIN_OBJS) $(EXTRA_OBJS) $(SSL_OBJS)
     49 STATIC_LIBS=libevent_core.lib libevent_extras.lib libevent.lib $(SSL_LIBS)
     50 
     51 
     52 all: static_libs tests
     53 
     54 static_libs: $(STATIC_LIBS)
     55 
     56 libevent_core.lib: $(CORE_OBJS) $(WIN_OBJS)
     57 	lib $(LIBFLAGS) $(CORE_OBJS) $(WIN_OBJS) /out:libevent_core.lib 
     58 
     59 libevent_extras.lib: $(EXTRA_OBJS)
     60 	lib $(LIBFLAGS) $(EXTRA_OBJS) /out:libevent_extras.lib
     61 
     62 libevent.lib: $(CORE_OBJS) $(WIN_OBJS) $(EXTRA_OBJS)
     63 	lib $(LIBFLAGS) $(CORE_OBJS) $(EXTRA_OBJS) $(WIN_OBJS) /out:libevent.lib
     64 
     65 libevent_openssl.lib: $(SSL_OBJS)
     66 	lib $(LIBFLAGS) $(SSL_OBJS) /out:libevent_openssl.lib
     67 
     68 clean:
     69 	del $(ALL_OBJS)
     70 	del $(STATIC_LIBS)
     71 	cd test
     72 	$(MAKE) /F Makefile.nmake clean
     73 	cd ..
     74 
     75 tests:
     76 	cd test
     77 !IFDEF OPENSSL_DIR
     78 	$(MAKE) OPENSSL_DIR=$(OPENSSL_DIR) /F Makefile.nmake
     79 !ELSE
     80 	$(MAKE) /F Makefile.nmake
     81 !ENDIF
     82 	cd ..
     83