| # WATCH OUT! This makefile is a work in progress. -*- makefile -*- |
| # |
| # I'm not very knowledgeable about MSVC and nmake beyond their most basic |
| # aspects. If anything here looks wrong to you, please let me know. |
| |
| # If OPENSSL_DIR is not set, builds without OpenSSL support. If you want |
| # OpenSSL support, you can set the OPENSSL_DIR variable to where you |
| # installed OpenSSL. This can be done in the environment: |
| # set OPENSSL_DIR=c:\openssl |
| # Or on the nmake command line: |
| # nmake OPENSSL_DIR=C:\openssl -f Makefile.nmake |
| # Or by uncommenting the following line here in the makefile... |
| |
| # OPENSSL_DIR=c:\openssl |
| |
| !IFDEF OPENSSL_DIR |
| SSL_CFLAGS=/I$(OPENSSL_DIR)\include /DEVENT__HAVE_OPENSSL |
| !ELSE |
| SSL_CFLAGS= |
| !ENDIF |
| |
| # Needed for correctness |
| CFLAGS=/IWIN32-Code /IWIN32-Code/nmake /Iinclude /Icompat /DHAVE_CONFIG_H /I. $(SSL_CFLAGS) |
| |
| # 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 evutil_time.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 |
| |
| !IFDEF OPENSSL_DIR |
| SSL_OBJS=bufferevent_openssl.obj |
| SSL_LIBS=libevent_openssl.lib |
| !ELSE |
| SSL_OBJS= |
| SSL_LIBS= |
| !ENDIF |
| |
| ALL_OBJS=$(CORE_OBJS) $(WIN_OBJS) $(EXTRA_OBJS) $(SSL_OBJS) |
| STATIC_LIBS=libevent_core.lib libevent_extras.lib libevent.lib $(SSL_LIBS) |
| |
| |
| 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 |
| |
| libevent_openssl.lib: $(SSL_OBJS) |
| lib $(LIBFLAGS) $(SSL_OBJS) /out:libevent_openssl.lib |
| |
| clean: |
| del $(ALL_OBJS) |
| del $(STATIC_LIBS) |
| cd test |
| $(MAKE) /F Makefile.nmake clean |
| cd .. |
| |
| tests: |
| cd test |
| !IFDEF OPENSSL_DIR |
| $(MAKE) OPENSSL_DIR=$(OPENSSL_DIR) /F Makefile.nmake |
| !ELSE |
| $(MAKE) /F Makefile.nmake |
| !ENDIF |
| cd .. |