First pass at native Win32 support (does not compile).
[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
10 #MODULES=
11 MODULES=helpserv memoserv qserver snoop sockcheck
12 PROTOCOL=p10
13 ifeq ($(PROTOCOL),p10)
14   CFLAGS += -DWITH_PROTOCOL_P10
15 else
16   CFLAGS += -DWITH_PROTOCOL_BAHAMUT
17 endif
18
19 RX_OBJS = \
20         rx/rx.o \
21         rx/rxanal.o \
22         rx/rxbasic.o \
23         rx/rxbitset.o \
24         rx/rxcset.o \
25         rx/rxgnucomp.o \
26         rx/rxhash.o \
27         rx/rxnfa.o \
28         rx/rxnode.o \
29         rx/rxposix.o \
30         rx/rxsimp.o \
31         rx/rxspencer.o \
32         rx/rxstr.o \
33         rx/rxsuper.o \
34         rx/rxunfa.o
35
36 SRVX_OBJS = \
37         src/chanserv.o \
38         src/compat.o \
39         src/conf.o \
40         src/dict-splay.o \
41         src/gline.o \
42         src/hash.o \
43         src/heap.o \
44         src/helpfile.o \
45         src/ioset-win32.o \
46         src/ioset.o \
47         src/log.o \
48         src/main.o \
49         src/md5.o \
50         src/modcmd.o \
51         src/modules.o \
52         src/nickserv.o \
53         src/opserv.o \
54         src/policer.o \
55         src/proto-$(PROTOCOL).o \
56         src/recdb.o \
57         src/saxdb.o \
58         src/sendmail.o \
59         src/timeq.o \
60         src/tools.o \
61         $(addsuffix .o,$(addprefix src/mod-,$(MODULES)))
62
63 srvx: src/config.h src/modules-list.h $(RX_OBJS) $(SRVX_OBJS)
64 src/config.h: $(VPATH)/src/config.h.win32
65         cp $< $@
66 src/modules-list.h:
67         rm -f $@; \
68         for module in $(MODULES) ; do \
69                 echo "WITH_MODULE($$module)" >> $@ ; \
70         done
71 clean:
72         rm -f src/config.h src/modules-list.h */*.o */*.exe