huangcm
2025-09-01 53d8e046ac1bf2ebe94f671983e3d3be059df91a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# 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 ..