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