Get native Win32 mode working (at least in a basic state).
[srvx.git] / Makefile.win32
1 # For an out-of-tree build, set VPATH appropriately:
2 VPATH=.
3 # (You will also have to manually create the 'rx' and 'src'
4 # directories if they do not already exist.)
5 # For a cross-compilation, set CC appropriately:
6 # CC=i586-mingw32msvc-cc
7 CPPFLAGS=-I$(VPATH) -Isrc
8 CFLAGS=-mno-cygwin -W -Wall -O2
9 EXE_EXT=.exe
10 LIBS=-lws2_32
11
12 #MODULES=
13 MODULES=helpserv memoserv qserver snoop sockcheck
14 PROTOCOL=p10
15 ifeq ($(PROTOCOL),p10)
16   CFLAGS += -DWITH_PROTOCOL_P10
17 else
18   CFLAGS += -DWITH_PROTOCOL_BAHAMUT
19 endif
20
21 RX_OBJS = \
22         rx/rx.o \
23         rx/rxanal.o \
24         rx/rxbasic.o \
25         rx/rxbitset.o \
26         rx/rxcset.o \
27         rx/rxgnucomp.o \
28         rx/rxhash.o \
29         rx/rxnfa.o \
30         rx/rxnode.o \
31         rx/rxposix.o \
32         rx/rxsimp.o \
33         rx/rxspencer.o \
34         rx/rxstr.o \
35         rx/rxsuper.o \
36         rx/rxunfa.o
37
38 SRVX_OBJS = \
39         src/chanserv.o \
40         src/compat.o \
41         src/conf.o \
42         src/dict-splay.o \
43         src/gline.o \
44         src/global.o \
45         src/hash.o \
46         src/heap.o \
47         src/helpfile.o \
48         src/ioset-win32.o \
49         src/ioset.o \
50         src/log.o \
51         src/main-win32.o \
52         src/md5.o \
53         src/modcmd.o \
54         src/modules.o \
55         src/nickserv.o \
56         src/opserv.o \
57         src/policer.o \
58         src/proto-$(PROTOCOL).o \
59         src/recdb.o \
60         src/saxdb.o \
61         src/mail-smtp.o \
62         src/timeq.o \
63         src/tools.o \
64         $(addsuffix .o,$(addprefix src/mod-,$(MODULES)))
65
66 srvx$(EXE_EXT): src/config.h src/modules-list.h $(RX_OBJS) $(SRVX_OBJS)
67         $(CC) -o $@ $(RX_OBJS) $(SRVX_OBJS) $(LIBS)
68 src/config.h: $(VPATH)/src/config.h.win32
69         cp $< $@
70 src/modules-list.h:
71         rm -f $@ ; \
72         for module in $(MODULES) ; do \
73                 echo "WITH_MODULE($$module)" >> $@ ; \
74         done
75 clean:
76         rm -f src/config.h src/modules-list.h */*.o */*.exe