#
# UnrealIRCd Makefile - codemastr
#
CC=cl
LINK=link
RC=rc
MT=mt

############################ USER CONFIGURATION ############################

# You are encouraged NOT to set these values here, but instead make a batch file
# which passes all these arguments to nmake, like:
# nmake -f makefile.windows LIBRESSL_INC_DIR="c:\dev\libressl" etc etc...
# Both ways will work, but if you use a batch file it's easier with
# upgrading UnrealIRCd as you won't have to edit this makefile again.

### PCRE2 ###
#PCRE2_LIB_DIR="C:\dev\pcre2\build\release"
#PCRE2_INC_DIR="C:\dev\pcre2"
#PCRE2LIB="pcre2-8.lib"

### ARGON2 ###
#ARGON2_LIB_DIR="C:\dev\argon2\vs2015\build"
#ARGON2_INC_DIR="C:\dev\argon2\include"
#ARGON2LIB="Argon2RefDll.lib"

### SODIUM ###
#SODIUM_LIB_DIR="C:\dev\unrealircd-6-libs\libsodium\......."
#SODIUM_INC_DIR="C:\dev\unrealircd-6-libs\libsodium\......."
#SODIUMLIB="libsodium.lib"

### JANSSON ###
#JANSSON_LIB_DIR="C:\dev\unrealircd-6-libs\jansson\......."
#JANSSON_INC_DIR="C:\dev\unrealircd-6-libs\jansson\......."
#JANSSONLIB="libjansson.lib"

### C-ARES ####
#CARES_LIB_DIR="C:\dev\c-ares\vc\cares\dll-release"
#CARES_INC_DIR="C:\dev\c-ares"
#CARESLIB="cares.lib"

##### REMOTE INCLUDES ####
#To enable remote include support you must have libcurl installed on your
#system and it must have ares support enabled.
#
#
#To enable remote includes uncomment the next line:
#USE_REMOTEINC=1
#
#If your libcurl library and include files are not in your compiler's
#default locations, specify the locations here:
#LIBCURL_INC_DIR="c:\dev\curl\include"
#LIBCURL_LIB_DIR="c:\dev\curl\lib"
#
#
### END REMOTE INCLUDES ##

####### SSL/TLS SUPPORT (MANDATORY) ######
#Use LibreSSL or OpenSSL. Define paths and libraries:
#LIBRESSL_INC_DIR="c:\dev\libressl\include"
#LIBRESSL_LIB_DIR="c:\dev\libressl\lib"
#SSLLIB=libcrypto-38.lib libssl-39.lib libtls-11.lib
#The version numbers of the 3 libraries in the last line change
#every libressl release. So be sure to update after any libressl upgrade.
######### END SSL/TLS ########

###### _EXTRA_ DEBUGGING #####
# We always build releases with debugging information, since otherwise
# we cannot trace the source of a crash. Plus we do not mind the extra
# performance hit caused by not enabling super-optimization, tracing
# crashes properly is more important.
# You can choose (at your own risk) to enable EVEN MORE debugging,
# note that this causes /MDd to be used instead of /MD which can make
# libraries incompatible, plus all the other side-effects such as
# requiring a different dll we do not ship (and maybe you are not even
# allowed to ship due to license agreements), etc...
# In any case, this probably should not be used, unless debugging a
# problem locally, in which case it can be useful.
#DEBUGEXTRA=1
#
#
#### END RELEASE BUILD ###

############################# END CONFIGURATION ############################

!IFDEF CARES_INC_DIR
CARES_INC=/I "$(CARES_INC_DIR)"
!ENDIF
!IFDEF CARES_LIB_DIR
CARES_LIB=/LIBPATH:"$(CARES_LIB_DIR)"
!ENDIF

!IFDEF PCRE2_INC_DIR
PCRE2_INC=/I "$(PCRE2_INC_DIR)"
!ENDIF
!IFDEF PCRE2_LIB_DIR
PCRE2_LIB=/LIBPATH:"$(PCRE2_LIB_DIR)"
!ENDIF

!IFDEF ARGON2_INC_DIR
ARGON2_INC=/I "$(ARGON2_INC_DIR)"
!ENDIF
!IFDEF ARGON2_LIB_DIR
ARGON2_LIB=/LIBPATH:"$(ARGON2_LIB_DIR)"
!ENDIF

!IFDEF SODIUM_INC_DIR
SODIUM_INC=/I "$(SODIUM_INC_DIR)"
!ENDIF
!IFDEF SODIUM_LIB_DIR
SODIUM_LIB=/LIBPATH:"$(SODIUM_LIB_DIR)"
!ENDIF

!IFDEF JANSSON_INC_DIR
JANSSON_INC=/I "$(JANSSON_INC_DIR)"
!ENDIF
!IFDEF JANSSON_LIB_DIR
JANSSON_LIB=/LIBPATH:"$(JANSSON_LIB_DIR)"
!ENDIF

!IFDEF USE_REMOTEINC
CURLCFLAGS=/D USE_LIBCURL
CURLOBJ=SRC/URL_CURL.OBJ
CURLLIB=libcurl.lib
!IFDEF LIBCURL_INC_DIR
LIBCURL_INC=/I "$(LIBCURL_INC_DIR)"
!ENDIF
!IFDEF LIBCURL_LIB_DIR
LIBCURL_LIB=/LIBPATH:"$(LIBCURL_LIB_DIR)"
!ENDIF
!ENDIF

!IFDEF LIBRESSL_INC_DIR
LIBRESSL_INC=/I "$(LIBRESSL_INC_DIR)"
!ENDIF
!IFDEF LIBRESSL_LIB_DIR
LIBRESSL_LIB=/LIBPATH:"$(LIBRESSL_LIB_DIR)"
!ENDIF

!IFDEF DEBUGEXTRA
DBGCFLAG=/MDd /Zi /Od
DBGCFLAGST=/MTd /Zi /Od
DBGLFLAG=/debug
MODDBGCFLAG=/LDd /MDd /Zi
!ELSE
DBGCFLAG=/MD /Zi
DBGCFLAGST=/MT /Zi
DBGLFLAG=/debug
MODDBGCFLAG=/LDd /MD /Zi
!ENDIF 

STDOPTIONS=$(PCRE2_INC) $(ARGON2_INC) $(SODIUM_INC) $(JANSSON_INC) $(CARES_INC) $(LIBCURL_INC) $(LIBRESSL_INC) \
 /J /I ./INCLUDE /nologo \
 $(CURLCFLAGS) /D FD_SETSIZE=16384 $(SSLCFLAGS) /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE \
 /D FAKELAG_CONFIGURABLE=1 \
 /W3 /wd4267 /wd4101 /wd4018 /wd4244 /wd4996 /WX /analyze:ruleset extras\VStudioAnalyze.ruleset
STDLIBS=$(CARES_LIB) $(CARESLIB) $(PCRE2_LIB) $(PCRE2LIB) $(ARGON2_LIB) $(ARGON2LIB) \
 $(SODIUM_LIB) $(SODIUMLIB) $(JANSSON_LIB) $(JANSSONLIB) $(LIBRESSL_LIB) $(SSLLIB) $(LIBCURL_LIB) $(CURLLIB)
CFLAGS=$(DBGCFLAG) $(STDOPTIONS) /FS /MP1 /c /Fosrc/
CFLAGSST=$(DBGCFLAGST) $(STDOPTIONS) /FS /MP1 /c /Fosrc/
LFLAGS=kernel32.lib user32.lib gdi32.lib shell32.lib ws2_32.lib advapi32.lib \
 dbghelp.lib oldnames.lib comctl32.lib comdlg32.lib $(STDLIBS) \
 /def:UnrealIRCd.def /implib:UnrealIRCd.lib \
 /nologo $(DBGLFLAG) /out:UnrealIRCd.exe
MODCFLAGS=$(MODDBGCFLAG) $(STDOPTIONS) /D DYNAMIC_LINKING /D MODULE_COMPILE
MODLFLAGS=/link /def:src/modules/module.def UnrealIRCd.lib ws2_32.lib $(STDLIBS)

INCLUDES=./include/struct.h ./include/config.h ./include/sys.h \
 ./include/common.h ./include/version.h ./include/h.h ./include/numeric.h \
 ./include/msg.h ./include/setup.h ./include/dynconf.h

EXP_OBJ_FILES=src/channel.obj src/send.obj src/socket.obj \
 src/conf.obj src/conf_preprocessor.obj \
 src/fdlist.obj src/dbuf.obj  \
 src/hash.obj src/parse.obj src/ircd.obj \
 src/whowas.obj \
 src/misc.obj src/match.obj src/crule.obj \
 src/debug.obj  src/support.obj src/list.obj \
 src/numeric.obj \
 src/serv.obj src/user.obj \
 src/version.obj src/ircsprintf.obj \
 src/scache.obj src/dns.obj src/modules.obj \
 src/aliases.obj src/api-event.obj src/api-usermode.obj src/auth.obj src/tls.obj \
 src/random.obj src/api-channelmode.obj src/api-moddata.obj src/mempool.obj \
 src/dispatch.obj src/api-isupport.obj src/api-command.obj \
 src/api-clicap.obj src/api-messagetag.obj src/api-history-backend.obj \
 src/api-extban.obj src/api-efunctions.obj src/crypt_blowfish.obj \
 src/operclass.obj src/updconf.obj src/crashreport.obj src/unrealdb.obj \
 src/openssl_hostname_validation.obj \
 src/utf8.obj src/log.obj $(CURLOBJ)

OBJ_FILES=$(EXP_OBJ_FILES) src/gui.obj src/service.obj src/windebug.obj src/rtf.obj \
 src/editor.obj src/win.obj 

DLL_FILES=\
 src/modules/account-notify.dll \
 src/modules/account-tag.dll \
 src/modules/addmotd.dll \
 src/modules/addomotd.dll \
 src/modules/admin.dll \
 src/modules/antimixedutf8.dll \
 src/modules/antirandom.dll \
 src/modules/authprompt.dll \
 src/modules/away.dll \
 src/modules/batch.dll \
 src/modules/blacklist.dll \
 src/modules/botmotd.dll \
 src/modules/bot-tag.dll \
 src/modules/cap.dll \
 src/modules/certfp.dll \
 src/modules/chanmodes/censor.dll \
 src/modules/chanmodes/delayjoin.dll \
 src/modules/chanmodes/floodprot.dll \
 src/modules/chanmodes/history.dll \
 src/modules/chanmodes/inviteonly.dll \
 src/modules/chanmodes/isregistered.dll \
 src/modules/chanmodes/issecure.dll \
 src/modules/chanmodes/key.dll \
 src/modules/chanmodes/limit.dll \
 src/modules/chanmodes/link.dll \
 src/modules/chanmodes/moderated.dll \
 src/modules/chanmodes/nocolor.dll \
 src/modules/chanmodes/noctcp.dll \
 src/modules/chanmodes/noexternalmsgs.dll \
 src/modules/chanmodes/noinvite.dll \
 src/modules/chanmodes/nokick.dll \
 src/modules/chanmodes/noknock.dll \
 src/modules/chanmodes/nonickchange.dll \
 src/modules/chanmodes/nonotice.dll \
 src/modules/chanmodes/operonly.dll \
 src/modules/chanmodes/permanent.dll \
 src/modules/chanmodes/private.dll \
 src/modules/chanmodes/regonly.dll \
 src/modules/chanmodes/regonlyspeak.dll \
 src/modules/chanmodes/secret.dll \
 src/modules/chanmodes/secureonly.dll \
 src/modules/chanmodes/stripcolor.dll \
 src/modules/chanmodes/topiclimit.dll \
 src/modules/channeldb.dll \
 src/modules/charsys.dll \
 src/modules/chathistory.dll \
 src/modules/chghost.dll \
 src/modules/chgident.dll \
 src/modules/chgname.dll \
 src/modules/clienttagdeny.dll \
 src/modules/close.dll \
 src/modules/connect.dll \
 src/modules/connthrottle.dll \
 src/modules/cycle.dll \
 src/modules/dccallow.dll \
 src/modules/dccdeny.dll \
 src/modules/echo-message.dll \
 src/modules/eos.dll \
 src/modules/extbans/account.dll \
 src/modules/extbans/certfp.dll \
 src/modules/extbans/country.dll \
 src/modules/extbans/inchannel.dll \
 src/modules/extbans/join.dll \
 src/modules/extbans/msgbypass.dll \
 src/modules/extbans/nickchange.dll \
 src/modules/extbans/operclass.dll \
 src/modules/extbans/partmsg.dll \
 src/modules/extbans/quiet.dll \
 src/modules/extbans/realname.dll \
 src/modules/extbans/securitygroup.dll \
 src/modules/extbans/textban.dll \
 src/modules/extbans/timedban.dll \
 src/modules/extended-monitor.dll \
 src/modules/geoip_base.dll \
 src/modules/geoip_csv.dll \
 src/modules/globops.dll \
 src/modules/help.dll \
 src/modules/hideserver.dll \
 src/modules/history_backend_mem.dll \
 src/modules/history_backend_null.dll \
 src/modules/history.dll \
 src/modules/ident_lookup.dll \
 src/modules/invite.dll \
 src/modules/ircops.dll \
 src/modules/ison.dll \
 src/modules/join.dll \
 src/modules/jointhrottle.dll \
 src/modules/json-log-tag.dll \
 src/modules/jumpserver.dll \
 src/modules/kick.dll \
 src/modules/kill.dll \
 src/modules/knock.dll \
 src/modules/labeled-response.dll \
 src/modules/lag.dll \
 src/modules/links.dll \
 src/modules/link-security.dll \
 src/modules/list.dll \
 src/modules/locops.dll \
 src/modules/lusers.dll \
 src/modules/map.dll \
 src/modules/md.dll \
 src/modules/message.dll \
 src/modules/message-ids.dll \
 src/modules/message-tags.dll \
 src/modules/metadata.dll \
 src/modules/mkpasswd.dll \
 src/modules/mode.dll \
 src/modules/monitor.dll \
 src/modules/motd.dll \
 src/modules/names.dll \
 src/modules/netinfo.dll \
 src/modules/nick.dll \
 src/modules/nocodes.dll \
 src/modules/oldcloak.dll \
 src/modules/oper.dll \
 src/modules/opermotd.dll \
 src/modules/part.dll \
 src/modules/pass.dll \
 src/modules/pingpong.dll \
 src/modules/plaintext-policy.dll \
 src/modules/protoctl.dll \
 src/modules/quit.dll \
 src/modules/reply-tag.dll \
 src/modules/reputation.dll \
 src/modules/require-module.dll \
 src/modules/restrict-commands.dll \
 src/modules/rmtkl.dll \
 src/modules/rules.dll \
 src/modules/sajoin.dll \
 src/modules/samode.dll \
 src/modules/sapart.dll \
 src/modules/sasl.dll \
 src/modules/sdesc.dll \
 src/modules/sendsno.dll \
 src/modules/sendumode.dll \
 src/modules/server.dll \
 src/modules/server-time.dll \
 src/modules/sethost.dll \
 src/modules/setident.dll \
 src/modules/setname.dll \
 src/modules/silence.dll \
 src/modules/sinfo.dll \
 src/modules/sjoin.dll \
 src/modules/slog.dll \
 src/modules/snomasks/dccreject.dll \
 src/modules/sqline.dll \
 src/modules/squit.dll \
 src/modules/staff.dll \
 src/modules/starttls.dll \
 src/modules/stats.dll \
 src/modules/sts.dll \
 src/modules/svsjoin.dll \
 src/modules/svskill.dll \
 src/modules/svslusers.dll \
 src/modules/svsmode.dll \
 src/modules/svsmotd.dll \
 src/modules/svsnick.dll \
 src/modules/svsnline.dll \
 src/modules/svsnolag.dll \
 src/modules/svsnoop.dll \
 src/modules/svspart.dll \
 src/modules/svssilence.dll \
 src/modules/svssno.dll \
 src/modules/svswatch.dll \
 src/modules/swhois.dll \
 src/modules/targetfloodprot.dll \
 src/modules/time.dll \
 src/modules/tkl.dll \
 src/modules/tkldb.dll \
 src/modules/tls_antidos.dll \
 src/modules/tls_cipher.dll \
 src/modules/topic.dll \
 src/modules/trace.dll \
 src/modules/tsctl.dll \
 src/modules/typing-indicator.dll \
 src/modules/umode2.dll \
 src/modules/unreal_server_compat.dll \
 src/modules/unsqline.dll \
 src/modules/user.dll \
 src/modules/userhost.dll \
 src/modules/userhost-tag.dll \
 src/modules/userip.dll \
 src/modules/userip-tag.dll \
 src/modules/usermodes/bot.dll \
 src/modules/usermodes/censor.dll \
 src/modules/usermodes/noctcp.dll \
 src/modules/usermodes/nokick.dll \
 src/modules/usermodes/privacy.dll \
 src/modules/usermodes/privdeaf.dll \
 src/modules/usermodes/regonlymsg.dll \
 src/modules/usermodes/secureonlymsg.dll \
 src/modules/usermodes/servicebot.dll \
 src/modules/usermodes/showwhois.dll \
 src/modules/vhost.dll \
 src/modules/wallops.dll \
 src/modules/watch-backend.dll \
 src/modules/watch.dll \
 src/modules/webirc.dll \
 src/modules/webredir.dll \
 src/modules/websocket.dll \
 src/modules/whois.dll \
 src/modules/who_old.dll \
 src/modules/whowas.dll \
 src/modules/whox.dll


ALL: CONF UNREALSVC.EXE UnrealIRCd.exe MODULES 

CLEAN:
	-@del /Q /S *.dll *.exe *.obj *.pdb *.res *.lib  *.exp *.ilk src\version.c >NUL

UNREALSVC.EXE: SRC/UNREALSVC.OBJ SRC/WINDOWS/UNREALSVC.RES
	$(LINK) $(DBGLFLAGST) advapi32.lib src/unrealsvc.obj src/windows/unrealsvc.res

CONF:
	-@copy include\windows\setup.h include\setup.h >NUL
	$(CC) src/windows/config.c
	-@config.exe

UnrealIRCd.exe: $(OBJ_FILES) src/windows/win.res
        $(LINK) $(LFLAGS) $(OBJ_FILES) src/windows/win.res /MAP
	-@erase src\windows\win.res
	$(MT) -manifest src\windows\UnrealIRCd.exe.manifest -outputresource:UnrealIRCd.exe;1
!IFNDEF DEBUGEXTRA
 @echo Standard version built 
!ELSE
 @echo Extra-Debug version built ... 
!ENDIF

#Source files

src/version.obj: src/version.c
        $(CC) $(CFLAGS) src/version.c

src/parse.obj: src/parse.c $(INCLUDES)
        $(CC) $(CFLAGS) src/parse.c

src/socket.obj: src/socket.c $(INCLUDES)
        $(CC) $(CFLAGS) src/socket.c

src/dbuf.obj: src/dbuf.c $(INCLUDES) ./include/dbuf.h
        $(CC) $(CFLAGS) src/dbuf.c

src/ircsprintf.obj: src/ircsprintf.c $(INCLUDES)
	$(CC) $(CFLAGS) src/ircsprintf.c

src/fdlist.obj: src/fdlist.c $(INCLUDES)
        $(CC) $(CFLAGS) src/fdlist.c

src/dynconf.obj: src/dynconf.c $(INCLUDES) ./include/dbuf.h \
                ./include/channel.h ./include/whowas.h
        $(CC) $(CFLAGS) src/dynconf.c

src/send.obj: src/send.c $(INCLUDES)
        $(CC) $(CFLAGS) src/send.c

src/match.obj: src/match.c $(INCLUDES)
        $(CC) $(CFLAGS) src/match.c

src/support.obj: src/support.c $(INCLUDES)
        $(CC) $(CFLAGS) src/support.c

src/channel.obj: src/channel.c $(INCLUDES) ./include/channel.h
        $(CC) $(CFLAGS) src/channel.c

src/class.obj: src/class.c $(INCLUDES) ./include/class.h
        $(CC) $(CFLAGS) src/class.c

src/ircd.obj: src/ircd.c $(INCLUDES)
        $(CC) $(CFLAGS) src/ircd.c

src/list.obj: src/list.c $(INCLUDES)
        $(CC) $(CFLAGS) src/list.c

src/dns.obj: src/dns.c $(INCLUDES)
        $(CC) $(CFLAGS) src/dns.c

src/conf.obj: src/conf.c $(INCLUDES)
        $(CC) $(CFLAGS) src/conf.c

src/conf_preprocessor.obj: src/conf_preprocessor.c $(INCLUDES)
        $(CC) $(CFLAGS) src/conf_preprocessor.c

src/debug.obj: src/debug.c $(INCLUDES)
        $(CC) $(CFLAGS) src/debug.c

src/numeric.obj: src/numeric.c $(INCLUDES)
        $(CC) $(CFLAGS) src/numeric.c

src/misc.obj: src/misc.c $(INCLUDES) ./include/dbuf.h
        $(CC) $(CFLAGS) src/misc.c

src/scache.obj: src/scache.c $(INCLUDES) ./include/dbuf.h
        $(CC) $(CFLAGS) src/scache.c

src/socks.obj: src/socks.c $(INCLUDES)
        $(CC) $(CFLAGS) src/socks.c

src/aliases.obj: src/aliases.c $(INCLUDES)
	  $(CC) $(CFLAGS) src/aliases.c

src/user.obj: src/user.c $(INCLUDES) ./include/dbuf.h \
                ./include/channel.h ./include/whowas.h
        $(CC) $(CFLAGS) src/user.c

src/serv.obj: src/serv.c $(INCLUDES) ./include/dbuf.h ./include/whowas.h
        $(CC) $(CFLAGS) src/serv.c

src/whowas.obj: src/whowas.c $(INCLUDES) ./include/dbuf.h ./include/whowas.h
        $(CC) $(CFLAGS) src/whowas.c

src/hash.obj: src/hash.c $(INCLUDES)
        $(CC) $(CFLAGS) src/hash.c

src/crule.obj: src/crule.c $(INCLUDES)
        $(CC) $(CFLAGS) src/crule.c

src/gui.obj: src/windows/gui.c $(INCLUDES) ./include/resource.h
        $(CC) $(CFLAGS) src/windows/gui.c

src/rtf.obj: src/windows/rtf.c $(INCLUDES) ./src/windows/win.h
	$(CC) $(CFLAGS) src/windows/rtf.c

src/editor.obj: src/windows/editor.c $(INCLUDES) ./include/resource.h ./src/windows/win.h
        $(CC) $(CFLAGS) src/windows/editor.c

src/service.obj: src/windows/service.c $(INCLUDES)
	$(CC) $(CFLAGS) src/windows/service.c

src/windebug.obj: src/windows/windebug.c $(INCLUDES)
	$(CC) $(CFLAGS) src/windows/windebug.c

src/win.obj: src/windows/win.c $(INCLUDES)
	$(CC) $(CFLAGS) src/windows/win.c

src/unrealsvc.obj: src/windows/unrealsvc.c $(INCLUDES)
	$(CC) $(CFLAGSST) src/windows/unrealsvc.c

src/modules.obj: src/modules.c $(INCLUDES)
	$(CC) $(CFLAGS) src/modules.c

src/api-event.obj: src/api-event.c $(INCLUDES)
	$(CC) $(CFLAGS) src/api-event.c

src/api-usermode.obj: src/api-usermode.c $(INCLUDES)
	$(CC) $(CFLAGS) src/api-usermode.c

src/auth.obj: src/auth.c $(INCLUDES)
	$(CC) $(CFLAGS) src/auth.c

src/random.obj: src/random.c $(INCLUDES)
	$(CC) $(CFLAGS) src/random.c

src/api-channelmode.obj: src/api-channelmode.c $(INCLUDES)
	$(CC) $(CFLAGS) src/api-channelmode.c

src/api-moddata.obj: src/api-moddata.c $(INCLUDES)
	$(CC) $(CFLAGS) src/api-moddata.c

src/mempool.obj: src/mempool.c $(INCLUDES)
	$(CC) $(CFLAGS) src/mempool.c

src/dispatch.obj: src/dispatch.c $(INCLUDES)
	$(CC) $(CFLAGS) src/dispatch.c

src/url_curl.obj: src/url_curl.c $(INCLUDES)
	$(CC) $(CFLAGS) src/url_curl.c

src/api-extban.obj: src/api-extban.c $(INCLUDES)
	$(CC) $(CFLAGS) src/api-extban.c

src/api-efunctions.obj: src/api-efunctions.c $(INCLUDES)
	$(CC) $(CFLAGS) src/api-efunctions.c

src/api-isupport.obj: src/api-isupport.c $(INCLUDES)
	$(CC) $(CFLAGS) src/api-isupport.c

src/api-command.obj: src/api-command.c $(INCLUDES)
	$(CC) $(CFLAGS) src/api-command.c

src/api-clicap.obj: src/api-clicap.c $(INCLUDES)
	$(CC) $(CFLAGS) src/api-clicap.c

src/api-messagetag.obj: src/api-messagetag.c $(INCLUDES)
	$(CC) $(CFLAGS) src/api-messagetag.c

src/api-history-backend.obj: src/api-history-backend.c $(INCLUDES)
	$(CC) $(CFLAGS) src/api-history-backend.c

src/tls.obj: src/tls.c $(INCLUDES)
	$(CC) $(CFLAGS) src/tls.c

src/crypt_blowfish.obj: src/crypt_blowfish.c $(INCLUDES)
	$(CC) $(CFLAGS) src/crypt_blowfish.c

src/operclass.obj: src/operclass.c $(INCLUDES) ./include/dbuf.h
        $(CC) $(CFLAGS) src/operclass.c

src/updconf.obj: src/updconf.c $(INCLUDES) ./include/dbuf.h
        $(CC) $(CFLAGS) src/updconf.c

src/crashreport.obj: src/crashreport.c $(INCLUDES) ./include/dbuf.h
        $(CC) $(CFLAGS) src/crashreport.c

src/unrealdb.obj: src/unrealdb.c $(INCLUDES) ./include/dbuf.h
        $(CC) $(CFLAGS) src/unrealdb.c

src/utf8.obj: src/utf8.c $(INCLUDES) ./include/dbuf.h
        $(CC) $(CFLAGS) src/utf8.c

src/openssl_hostname_validation.obj: src/openssl_hostname_validation.c $(INCLUDES) ./include/dbuf.h
        $(CC) $(CFLAGS) src/openssl_hostname_validation.c

src/log.obj: src/log.c $(INCLUDES) ./include/dbuf.h
        $(CC) $(CFLAGS) src/log.c

src/windows/win.res: src/windows/wingui.rc
        $(RC) /l 0x409 /fosrc/windows/win.res /i ./include /i ./src \
              /d NDEBUG src/windows/wingui.rc

src/windows/unrealsvc.res: src/windows/unrealsvc.rc
        $(RC) /l 0x409 /fosrc/windows/unrealsvc.res /i ./include /i ./src \
              /d NDEBUG src/windows/unrealsvc.rc

################# Modules #################

CUSTOMMODULE: src/modules/third/$(MODULEFILE).c
	$(CC) $(MODCFLAGS) src/modules/third/$(MODULEFILE).c /Fesrc/modules/third/ /Fosrc/modules/third/ $(MODLFLAGS) \
	      /OUT:src/modules/third/$(MODULEFILE).dll $(EXLIBS)

SYMBOLFILE: 
	$(CC) src/windows/def-clean.c
	dlltool --output-def UnrealIRCd.def.in --export-all-symbols $(EXP_OBJ_FILES)
	def-clean UnrealIRCd.def.in UnrealIRCd.def

MODULES: $(DLL_FILES)

src/modules/account-notify.dll: src/modules/account-notify.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/account-notify.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/account-notify.pdb $(MODLFLAGS)

src/modules/account-tag.dll: src/modules/account-tag.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/account-tag.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/account-tag.pdb $(MODLFLAGS)

src/modules/addmotd.dll: src/modules/addmotd.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/addmotd.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/addmotd.pdb $(MODLFLAGS)

src/modules/addomotd.dll: src/modules/addomotd.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/addomotd.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/addomotd.pdb $(MODLFLAGS)

src/modules/admin.dll: src/modules/admin.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/admin.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/admin.pdb $(MODLFLAGS)

src/modules/antimixedutf8.dll: src/modules/antimixedutf8.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/antimixedutf8.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/antimixedutf8.pdb $(MODLFLAGS)

src/modules/antirandom.dll: src/modules/antirandom.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/antirandom.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/antirandom.pdb $(MODLFLAGS)

src/modules/authprompt.dll: src/modules/authprompt.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/authprompt.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/authprompt.pdb $(MODLFLAGS)

src/modules/away.dll: src/modules/away.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/away.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/away.pdb $(MODLFLAGS)

src/modules/batch.dll: src/modules/batch.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/batch.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/batch.pdb $(MODLFLAGS)

src/modules/blacklist.dll: src/modules/blacklist.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/blacklist.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/blacklist.pdb $(MODLFLAGS)

src/modules/botmotd.dll: src/modules/botmotd.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/botmotd.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/botmotd.pdb $(MODLFLAGS)

src/modules/bot-tag.dll: src/modules/bot-tag.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/bot-tag.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/bot-tag.pdb $(MODLFLAGS)

src/modules/cap.dll: src/modules/cap.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/cap.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/cap.pdb $(MODLFLAGS)

src/modules/certfp.dll: src/modules/certfp.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/certfp.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/certfp.pdb $(MODLFLAGS)

src/modules/chanmodes/censor.dll: src/modules/chanmodes/censor.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/chanmodes/censor.c /Fesrc/modules/chanmodes/ /Fosrc/modules/chanmodes/ /Fdsrc/modules/chanmodes/censor.pdb $(MODLFLAGS)

src/modules/chanmodes/delayjoin.dll: src/modules/chanmodes/delayjoin.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/chanmodes/delayjoin.c /Fesrc/modules/chanmodes/ /Fosrc/modules/chanmodes/ /Fdsrc/modules/chanmodes/delayjoin.pdb $(MODLFLAGS)

src/modules/chanmodes/floodprot.dll: src/modules/chanmodes/floodprot.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/chanmodes/floodprot.c /Fesrc/modules/chanmodes/ /Fosrc/modules/chanmodes/ /Fdsrc/modules/chanmodes/floodprot.pdb $(MODLFLAGS)

src/modules/chanmodes/history.dll: src/modules/chanmodes/history.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/chanmodes/history.c /Fesrc/modules/chanmodes/ /Fosrc/modules/chanmodes/ /Fdsrc/modules/chanmodes/history.pdb $(MODLFLAGS)

src/modules/chanmodes/inviteonly.dll: src/modules/chanmodes/inviteonly.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/chanmodes/inviteonly.c /Fesrc/modules/chanmodes/ /Fosrc/modules/chanmodes/ /Fdsrc/modules/chanmodes/inviteonly.pdb $(MODLFLAGS)

src/modules/chanmodes/isregistered.dll: src/modules/chanmodes/isregistered.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/chanmodes/isregistered.c /Fesrc/modules/chanmodes/ /Fosrc/modules/chanmodes/ /Fdsrc/modules/chanmodes/isregistered.pdb $(MODLFLAGS)

src/modules/chanmodes/issecure.dll: src/modules/chanmodes/issecure.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/chanmodes/issecure.c /Fesrc/modules/chanmodes/ /Fosrc/modules/chanmodes/ /Fdsrc/modules/chanmodes/issecure.pdb $(MODLFLAGS)

src/modules/chanmodes/key.dll: src/modules/chanmodes/key.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/chanmodes/key.c /Fesrc/modules/chanmodes/ /Fosrc/modules/chanmodes/ /Fdsrc/modules/chanmodes/key.pdb $(MODLFLAGS)

src/modules/chanmodes/limit.dll: src/modules/chanmodes/limit.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/chanmodes/limit.c /Fesrc/modules/chanmodes/ /Fosrc/modules/chanmodes/ /Fdsrc/modules/chanmodes/limit.pdb $(MODLFLAGS)

src/modules/chanmodes/link.dll: src/modules/chanmodes/link.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/chanmodes/link.c /Fesrc/modules/chanmodes/ /Fosrc/modules/chanmodes/ /Fdsrc/modules/chanmodes/link.pdb $(MODLFLAGS)

src/modules/chanmodes/moderated.dll: src/modules/chanmodes/moderated.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/chanmodes/moderated.c /Fesrc/modules/chanmodes/ /Fosrc/modules/chanmodes/ /Fdsrc/modules/chanmodes/moderated.pdb $(MODLFLAGS)

src/modules/chanmodes/nocolor.dll: src/modules/chanmodes/nocolor.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/chanmodes/nocolor.c /Fesrc/modules/chanmodes/ /Fosrc/modules/chanmodes/ /Fdsrc/modules/chanmodes/nocolor.pdb $(MODLFLAGS)

src/modules/chanmodes/noctcp.dll: src/modules/chanmodes/noctcp.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/chanmodes/noctcp.c /Fesrc/modules/chanmodes/ /Fosrc/modules/chanmodes/ /Fdsrc/modules/chanmodes/noctcp.pdb $(MODLFLAGS)

src/modules/chanmodes/noexternalmsgs.dll: src/modules/chanmodes/noexternalmsgs.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/chanmodes/noexternalmsgs.c /Fesrc/modules/chanmodes/ /Fosrc/modules/chanmodes/ /Fdsrc/modules/chanmodes/noexternalmsgs.pdb $(MODLFLAGS)

src/modules/chanmodes/noinvite.dll: src/modules/chanmodes/noinvite.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/chanmodes/noinvite.c /Fesrc/modules/chanmodes/ /Fosrc/modules/chanmodes/ /Fdsrc/modules/chanmodes/noinvite.pdb $(MODLFLAGS)

src/modules/chanmodes/nokick.dll: src/modules/chanmodes/nokick.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/chanmodes/nokick.c /Fesrc/modules/chanmodes/ /Fosrc/modules/chanmodes/ /Fdsrc/modules/chanmodes/nokick.pdb $(MODLFLAGS)

src/modules/chanmodes/noknock.dll: src/modules/chanmodes/noknock.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/chanmodes/noknock.c /Fesrc/modules/chanmodes/ /Fosrc/modules/chanmodes/ /Fdsrc/modules/chanmodes/noknock.pdb $(MODLFLAGS)

src/modules/chanmodes/nonickchange.dll: src/modules/chanmodes/nonickchange.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/chanmodes/nonickchange.c /Fesrc/modules/chanmodes/ /Fosrc/modules/chanmodes/ /Fdsrc/modules/chanmodes/nonickchange.pdb $(MODLFLAGS)

src/modules/chanmodes/nonotice.dll: src/modules/chanmodes/nonotice.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/chanmodes/nonotice.c /Fesrc/modules/chanmodes/ /Fosrc/modules/chanmodes/ /Fdsrc/modules/chanmodes/nonotice.pdb $(MODLFLAGS)

src/modules/chanmodes/operonly.dll: src/modules/chanmodes/operonly.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/chanmodes/operonly.c /Fesrc/modules/chanmodes/ /Fosrc/modules/chanmodes/ /Fdsrc/modules/chanmodes/operonly.pdb $(MODLFLAGS)

src/modules/chanmodes/permanent.dll: src/modules/chanmodes/permanent.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/chanmodes/permanent.c /Fesrc/modules/chanmodes/ /Fosrc/modules/chanmodes/ /Fdsrc/modules/chanmodes/permanent.pdb $(MODLFLAGS)

src/modules/chanmodes/private.dll: src/modules/chanmodes/private.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/chanmodes/private.c /Fesrc/modules/chanmodes/ /Fosrc/modules/chanmodes/ /Fdsrc/modules/chanmodes/private.pdb $(MODLFLAGS)

src/modules/chanmodes/regonly.dll: src/modules/chanmodes/regonly.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/chanmodes/regonly.c /Fesrc/modules/chanmodes/ /Fosrc/modules/chanmodes/ /Fdsrc/modules/chanmodes/regonly.pdb $(MODLFLAGS)

src/modules/chanmodes/regonlyspeak.dll: src/modules/chanmodes/regonlyspeak.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/chanmodes/regonlyspeak.c /Fesrc/modules/chanmodes/ /Fosrc/modules/chanmodes/ /Fdsrc/modules/chanmodes/regonlyspeak.pdb $(MODLFLAGS)

src/modules/chanmodes/secret.dll: src/modules/chanmodes/secret.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/chanmodes/secret.c /Fesrc/modules/chanmodes/ /Fosrc/modules/chanmodes/ /Fdsrc/modules/chanmodes/secret.pdb $(MODLFLAGS)

src/modules/chanmodes/secureonly.dll: src/modules/chanmodes/secureonly.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/chanmodes/secureonly.c /Fesrc/modules/chanmodes/ /Fosrc/modules/chanmodes/ /Fdsrc/modules/chanmodes/secureonly.pdb $(MODLFLAGS)

src/modules/chanmodes/stripcolor.dll: src/modules/chanmodes/stripcolor.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/chanmodes/stripcolor.c /Fesrc/modules/chanmodes/ /Fosrc/modules/chanmodes/ /Fdsrc/modules/chanmodes/stripcolor.pdb $(MODLFLAGS)

src/modules/chanmodes/topiclimit.dll: src/modules/chanmodes/topiclimit.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/chanmodes/topiclimit.c /Fesrc/modules/chanmodes/ /Fosrc/modules/chanmodes/ /Fdsrc/modules/chanmodes/topiclimit.pdb $(MODLFLAGS)

src/modules/channeldb.dll: src/modules/channeldb.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/channeldb.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/channeldb.pdb $(MODLFLAGS)

src/modules/charsys.dll: src/modules/charsys.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/charsys.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/charsys.pdb $(MODLFLAGS)

src/modules/chathistory.dll: src/modules/chathistory.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/chathistory.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/chathistory.pdb $(MODLFLAGS)

src/modules/chghost.dll: src/modules/chghost.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/chghost.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/chghost.pdb $(MODLFLAGS)

src/modules/chgident.dll: src/modules/chgident.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/chgident.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/chgident.pdb $(MODLFLAGS)

src/modules/chgname.dll: src/modules/chgname.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/chgname.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/chgname.pdb $(MODLFLAGS)

src/modules/clienttagdeny.dll: src/modules/clienttagdeny.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/clienttagdeny.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/clienttagdeny.pdb $(MODLFLAGS)

src/modules/close.dll: src/modules/close.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/close.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/close.pdb $(MODLFLAGS)

src/modules/connect.dll: src/modules/connect.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/connect.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/connect.pdb $(MODLFLAGS)

src/modules/connthrottle.dll: src/modules/connthrottle.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/connthrottle.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/connthrottle.pdb $(MODLFLAGS)

src/modules/cycle.dll: src/modules/cycle.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/cycle.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/cycle.pdb $(MODLFLAGS)

src/modules/dccallow.dll: src/modules/dccallow.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/dccallow.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/dccallow.pdb $(MODLFLAGS)

src/modules/dccdeny.dll: src/modules/dccdeny.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/dccdeny.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/dccdeny.pdb $(MODLFLAGS)

src/modules/echo-message.dll: src/modules/echo-message.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/echo-message.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/echo-message.pdb $(MODLFLAGS)

src/modules/eos.dll: src/modules/eos.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/eos.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/eos.pdb $(MODLFLAGS)

src/modules/extbans/account.dll: src/modules/extbans/account.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/extbans/account.c /Fesrc/modules/extbans/ /Fosrc/modules/extbans/ /Fdsrc/modules/extbans/account.pdb $(MODLFLAGS)

src/modules/extbans/certfp.dll: src/modules/extbans/certfp.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/extbans/certfp.c /Fesrc/modules/extbans/ /Fosrc/modules/extbans/ /Fdsrc/modules/extbans/certfp.pdb $(MODLFLAGS)

src/modules/extbans/country.dll: src/modules/extbans/country.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/extbans/country.c /Fesrc/modules/extbans/ /Fosrc/modules/extbans/ /Fdsrc/modules/extbans/country.pdb $(MODLFLAGS)

src/modules/extbans/inchannel.dll: src/modules/extbans/inchannel.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/extbans/inchannel.c /Fesrc/modules/extbans/ /Fosrc/modules/extbans/ /Fdsrc/modules/extbans/inchannel.pdb $(MODLFLAGS)

src/modules/extbans/join.dll: src/modules/extbans/join.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/extbans/join.c /Fesrc/modules/extbans/ /Fosrc/modules/extbans/ /Fdsrc/modules/extbans/join.pdb $(MODLFLAGS)

src/modules/extbans/msgbypass.dll: src/modules/extbans/msgbypass.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/extbans/msgbypass.c /Fesrc/modules/extbans/ /Fosrc/modules/extbans/ /Fdsrc/modules/extbans/msgbypass.pdb $(MODLFLAGS)

src/modules/extbans/nickchange.dll: src/modules/extbans/nickchange.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/extbans/nickchange.c /Fesrc/modules/extbans/ /Fosrc/modules/extbans/ /Fdsrc/modules/extbans/nickchange.pdb $(MODLFLAGS)

src/modules/extbans/operclass.dll: src/modules/extbans/operclass.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/extbans/operclass.c /Fesrc/modules/extbans/ /Fosrc/modules/extbans/ /Fdsrc/modules/extbans/operclass.pdb $(MODLFLAGS)

src/modules/extbans/partmsg.dll: src/modules/extbans/partmsg.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/extbans/partmsg.c /Fesrc/modules/extbans/ /Fosrc/modules/extbans/ /Fdsrc/modules/extbans/partmsg.pdb $(MODLFLAGS)

src/modules/extbans/quiet.dll: src/modules/extbans/quiet.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/extbans/quiet.c /Fesrc/modules/extbans/ /Fosrc/modules/extbans/ /Fdsrc/modules/extbans/quiet.pdb $(MODLFLAGS)

src/modules/extbans/realname.dll: src/modules/extbans/realname.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/extbans/realname.c /Fesrc/modules/extbans/ /Fosrc/modules/extbans/ /Fdsrc/modules/extbans/realname.pdb $(MODLFLAGS)

src/modules/extbans/securitygroup.dll: src/modules/extbans/securitygroup.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/extbans/securitygroup.c /Fesrc/modules/extbans/ /Fosrc/modules/extbans/ /Fdsrc/modules/extbans/securitygroup.pdb $(MODLFLAGS)

src/modules/extbans/textban.dll: src/modules/extbans/textban.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/extbans/textban.c /Fesrc/modules/extbans/ /Fosrc/modules/extbans/ /Fdsrc/modules/extbans/textban.pdb $(MODLFLAGS)

src/modules/extbans/timedban.dll: src/modules/extbans/timedban.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/extbans/timedban.c /Fesrc/modules/extbans/ /Fosrc/modules/extbans/ /Fdsrc/modules/extbans/timedban.pdb $(MODLFLAGS)

src/modules/extended-monitor.dll: src/modules/extended-monitor.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/extended-monitor.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/extended-monitor.pdb $(MODLFLAGS)

src/modules/geoip_base.dll: src/modules/geoip_base.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/geoip_base.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/geoip_base.pdb $(MODLFLAGS)

src/modules/geoip_classic.dll: src/modules/geoip_classic.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/geoip_classic.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/geoip_classic.pdb $(MODLFLAGS)

src/modules/geoip_csv.dll: src/modules/geoip_csv.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/geoip_csv.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/geoip_csv.pdb $(MODLFLAGS)

src/modules/geoip_maxmind.dll: src/modules/geoip_maxmind.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/geoip_maxmind.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/geoip_maxmind.pdb $(MODLFLAGS)

src/modules/globops.dll: src/modules/globops.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/globops.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/globops.pdb $(MODLFLAGS)

src/modules/help.dll: src/modules/help.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/help.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/help.pdb $(MODLFLAGS)

src/modules/hideserver.dll: src/modules/hideserver.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/hideserver.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/hideserver.pdb $(MODLFLAGS)

src/modules/history_backend_mem.dll: src/modules/history_backend_mem.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/history_backend_mem.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/history_backend_mem.pdb $(MODLFLAGS)

src/modules/history_backend_null.dll: src/modules/history_backend_null.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/history_backend_null.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/history_backend_null.pdb $(MODLFLAGS)

src/modules/history.dll: src/modules/history.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/history.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/history.pdb $(MODLFLAGS)

src/modules/ident_lookup.dll: src/modules/ident_lookup.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/ident_lookup.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/ident_lookup.pdb $(MODLFLAGS)

src/modules/invite.dll: src/modules/invite.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/invite.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/invite.pdb $(MODLFLAGS)

src/modules/ircops.dll: src/modules/ircops.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/ircops.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/ircops.pdb $(MODLFLAGS)

src/modules/ison.dll: src/modules/ison.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/ison.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/ison.pdb $(MODLFLAGS)

src/modules/join.dll: src/modules/join.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/join.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/join.pdb $(MODLFLAGS)

src/modules/jointhrottle.dll: src/modules/jointhrottle.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/jointhrottle.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/jointhrottle.pdb $(MODLFLAGS)

src/modules/json-log-tag.dll: src/modules/json-log-tag.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/json-log-tag.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/json-log-tag.pdb $(MODLFLAGS)

src/modules/jumpserver.dll: src/modules/jumpserver.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/jumpserver.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/jumpserver.pdb $(MODLFLAGS)

src/modules/kick.dll: src/modules/kick.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/kick.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/kick.pdb $(MODLFLAGS)

src/modules/kill.dll: src/modules/kill.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/kill.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/kill.pdb $(MODLFLAGS)

src/modules/knock.dll: src/modules/knock.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/knock.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/knock.pdb $(MODLFLAGS)

src/modules/labeled-response.dll: src/modules/labeled-response.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/labeled-response.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/labeled-response.pdb $(MODLFLAGS)

src/modules/lag.dll: src/modules/lag.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/lag.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/lag.pdb $(MODLFLAGS)

src/modules/links.dll: src/modules/links.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/links.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/links.pdb $(MODLFLAGS)

src/modules/link-security.dll: src/modules/link-security.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/link-security.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/link-security.pdb $(MODLFLAGS)

src/modules/list.dll: src/modules/list.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/list.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/list.pdb $(MODLFLAGS)

src/modules/locops.dll: src/modules/locops.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/locops.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/locops.pdb $(MODLFLAGS)

src/modules/lusers.dll: src/modules/lusers.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/lusers.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/lusers.pdb $(MODLFLAGS)

src/modules/map.dll: src/modules/map.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/map.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/map.pdb $(MODLFLAGS)

src/modules/md.dll: src/modules/md.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/md.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/md.pdb $(MODLFLAGS)

src/modules/message.dll: src/modules/message.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/message.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/message.pdb $(MODLFLAGS)

src/modules/message-ids.dll: src/modules/message-ids.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/message-ids.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/message-ids.pdb $(MODLFLAGS)

src/modules/message-tags.dll: src/modules/message-tags.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/message-tags.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/message-tags.pdb $(MODLFLAGS)

src/modules/metadata.dll: src/modules/metadata.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/metadata.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/metadata.pdb $(MODLFLAGS)

src/modules/mkpasswd.dll: src/modules/mkpasswd.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/mkpasswd.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/mkpasswd.pdb $(MODLFLAGS)

src/modules/mode.dll: src/modules/mode.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/mode.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/mode.pdb $(MODLFLAGS)

src/modules/monitor.dll: src/modules/monitor.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/monitor.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/monitor.pdb $(MODLFLAGS)

src/modules/motd.dll: src/modules/motd.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/motd.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/motd.pdb $(MODLFLAGS)

src/modules/names.dll: src/modules/names.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/names.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/names.pdb $(MODLFLAGS)

src/modules/netinfo.dll: src/modules/netinfo.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/netinfo.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/netinfo.pdb $(MODLFLAGS)

src/modules/nick.dll: src/modules/nick.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/nick.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/nick.pdb $(MODLFLAGS)

src/modules/nocodes.dll: src/modules/nocodes.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/nocodes.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/nocodes.pdb $(MODLFLAGS)

src/modules/oldcloak.dll: src/modules/oldcloak.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/oldcloak.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/oldcloak.pdb $(MODLFLAGS)

src/modules/oper.dll: src/modules/oper.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/oper.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/oper.pdb $(MODLFLAGS)

src/modules/opermotd.dll: src/modules/opermotd.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/opermotd.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/opermotd.pdb $(MODLFLAGS)

src/modules/part.dll: src/modules/part.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/part.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/part.pdb $(MODLFLAGS)

src/modules/pass.dll: src/modules/pass.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/pass.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/pass.pdb $(MODLFLAGS)

src/modules/pingpong.dll: src/modules/pingpong.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/pingpong.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/pingpong.pdb $(MODLFLAGS)

src/modules/plaintext-policy.dll: src/modules/plaintext-policy.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/plaintext-policy.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/plaintext-policy.pdb $(MODLFLAGS)

src/modules/protoctl.dll: src/modules/protoctl.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/protoctl.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/protoctl.pdb $(MODLFLAGS)

src/modules/quit.dll: src/modules/quit.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/quit.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/quit.pdb $(MODLFLAGS)

src/modules/reply-tag.dll: src/modules/reply-tag.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/reply-tag.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/reply-tag.pdb $(MODLFLAGS)

src/modules/reputation.dll: src/modules/reputation.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/reputation.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/reputation.pdb $(MODLFLAGS)

src/modules/require-module.dll: src/modules/require-module.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/require-module.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/require-module.pdb $(MODLFLAGS)

src/modules/restrict-commands.dll: src/modules/restrict-commands.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/restrict-commands.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/restrict-commands.pdb $(MODLFLAGS)

src/modules/rmtkl.dll: src/modules/rmtkl.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/rmtkl.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/rmtkl.pdb $(MODLFLAGS)

src/modules/rules.dll: src/modules/rules.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/rules.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/rules.pdb $(MODLFLAGS)

src/modules/sajoin.dll: src/modules/sajoin.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/sajoin.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/sajoin.pdb $(MODLFLAGS)

src/modules/samode.dll: src/modules/samode.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/samode.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/samode.pdb $(MODLFLAGS)

src/modules/sapart.dll: src/modules/sapart.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/sapart.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/sapart.pdb $(MODLFLAGS)

src/modules/sasl.dll: src/modules/sasl.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/sasl.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/sasl.pdb $(MODLFLAGS)

src/modules/sdesc.dll: src/modules/sdesc.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/sdesc.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/sdesc.pdb $(MODLFLAGS)

src/modules/sendsno.dll: src/modules/sendsno.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/sendsno.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/sendsno.pdb $(MODLFLAGS)

src/modules/sendumode.dll: src/modules/sendumode.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/sendumode.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/sendumode.pdb $(MODLFLAGS)

src/modules/server.dll: src/modules/server.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/server.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/server.pdb $(MODLFLAGS)

src/modules/server-time.dll: src/modules/server-time.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/server-time.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/server-time.pdb $(MODLFLAGS)

src/modules/sethost.dll: src/modules/sethost.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/sethost.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/sethost.pdb $(MODLFLAGS)

src/modules/setident.dll: src/modules/setident.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/setident.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/setident.pdb $(MODLFLAGS)

src/modules/setname.dll: src/modules/setname.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/setname.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/setname.pdb $(MODLFLAGS)

src/modules/silence.dll: src/modules/silence.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/silence.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/silence.pdb $(MODLFLAGS)

src/modules/sinfo.dll: src/modules/sinfo.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/sinfo.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/sinfo.pdb $(MODLFLAGS)

src/modules/sjoin.dll: src/modules/sjoin.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/sjoin.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/sjoin.pdb $(MODLFLAGS)

src/modules/slog.dll: src/modules/slog.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/slog.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/slog.pdb $(MODLFLAGS)

src/modules/snomasks/dccreject.dll: src/modules/snomasks/dccreject.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/snomasks/dccreject.c /Fesrc/modules/snomasks/ /Fosrc/modules/snomasks/ /Fdsrc/modules/snomasks/dccreject.pdb $(MODLFLAGS)

src/modules/sqline.dll: src/modules/sqline.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/sqline.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/sqline.pdb $(MODLFLAGS)

src/modules/squit.dll: src/modules/squit.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/squit.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/squit.pdb $(MODLFLAGS)

src/modules/staff.dll: src/modules/staff.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/staff.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/staff.pdb $(MODLFLAGS)

src/modules/starttls.dll: src/modules/starttls.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/starttls.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/starttls.pdb $(MODLFLAGS)

src/modules/stats.dll: src/modules/stats.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/stats.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/stats.pdb $(MODLFLAGS)

src/modules/sts.dll: src/modules/sts.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/sts.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/sts.pdb $(MODLFLAGS)

src/modules/svsjoin.dll: src/modules/svsjoin.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/svsjoin.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/svsjoin.pdb $(MODLFLAGS)

src/modules/svskill.dll: src/modules/svskill.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/svskill.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/svskill.pdb $(MODLFLAGS)

src/modules/svslusers.dll: src/modules/svslusers.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/svslusers.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/svslusers.pdb $(MODLFLAGS)

src/modules/svsmode.dll: src/modules/svsmode.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/svsmode.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/svsmode.pdb $(MODLFLAGS)

src/modules/svsmotd.dll: src/modules/svsmotd.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/svsmotd.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/svsmotd.pdb $(MODLFLAGS)

src/modules/svsnick.dll: src/modules/svsnick.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/svsnick.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/svsnick.pdb $(MODLFLAGS)

src/modules/svsnline.dll: src/modules/svsnline.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/svsnline.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/svsnline.pdb $(MODLFLAGS)

src/modules/svsnolag.dll: src/modules/svsnolag.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/svsnolag.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/svsnolag.pdb $(MODLFLAGS)

src/modules/svsnoop.dll: src/modules/svsnoop.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/svsnoop.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/svsnoop.pdb $(MODLFLAGS)

src/modules/svspart.dll: src/modules/svspart.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/svspart.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/svspart.pdb $(MODLFLAGS)

src/modules/svssilence.dll: src/modules/svssilence.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/svssilence.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/svssilence.pdb $(MODLFLAGS)

src/modules/svssno.dll: src/modules/svssno.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/svssno.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/svssno.pdb $(MODLFLAGS)

src/modules/svswatch.dll: src/modules/svswatch.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/svswatch.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/svswatch.pdb $(MODLFLAGS)

src/modules/swhois.dll: src/modules/swhois.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/swhois.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/swhois.pdb $(MODLFLAGS)

src/modules/targetfloodprot.dll: src/modules/targetfloodprot.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/targetfloodprot.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/targetfloodprot.pdb $(MODLFLAGS)

src/modules/time.dll: src/modules/time.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/time.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/time.pdb $(MODLFLAGS)

src/modules/tkl.dll: src/modules/tkl.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/tkl.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/tkl.pdb $(MODLFLAGS)

src/modules/tkldb.dll: src/modules/tkldb.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/tkldb.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/tkldb.pdb $(MODLFLAGS)

src/modules/tls_antidos.dll: src/modules/tls_antidos.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/tls_antidos.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/tls_antidos.pdb $(MODLFLAGS)

src/modules/tls_cipher.dll: src/modules/tls_cipher.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/tls_cipher.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/tls_cipher.pdb $(MODLFLAGS)

src/modules/topic.dll: src/modules/topic.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/topic.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/topic.pdb $(MODLFLAGS)

src/modules/trace.dll: src/modules/trace.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/trace.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/trace.pdb $(MODLFLAGS)

src/modules/tsctl.dll: src/modules/tsctl.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/tsctl.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/tsctl.pdb $(MODLFLAGS)

src/modules/typing-indicator.dll: src/modules/typing-indicator.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/typing-indicator.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/typing-indicator.pdb $(MODLFLAGS)

src/modules/umode2.dll: src/modules/umode2.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/umode2.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/umode2.pdb $(MODLFLAGS)

src/modules/unreal_server_compat.dll: src/modules/unreal_server_compat.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/unreal_server_compat.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/unreal_server_compat.pdb $(MODLFLAGS)

src/modules/unsqline.dll: src/modules/unsqline.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/unsqline.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/unsqline.pdb $(MODLFLAGS)

src/modules/user.dll: src/modules/user.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/user.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/user.pdb $(MODLFLAGS)

src/modules/userhost.dll: src/modules/userhost.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/userhost.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/userhost.pdb $(MODLFLAGS)

src/modules/userhost-tag.dll: src/modules/userhost-tag.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/userhost-tag.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/userhost-tag.pdb $(MODLFLAGS)

src/modules/userip.dll: src/modules/userip.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/userip.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/userip.pdb $(MODLFLAGS)

src/modules/userip-tag.dll: src/modules/userip-tag.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/userip-tag.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/userip-tag.pdb $(MODLFLAGS)

src/modules/usermodes/bot.dll: src/modules/usermodes/bot.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/usermodes/bot.c /Fesrc/modules/usermodes/ /Fosrc/modules/usermodes/ /Fdsrc/modules/usermodes/bot.pdb $(MODLFLAGS)

src/modules/usermodes/censor.dll: src/modules/usermodes/censor.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/usermodes/censor.c /Fesrc/modules/usermodes/ /Fosrc/modules/usermodes/ /Fdsrc/modules/usermodes/censor.pdb $(MODLFLAGS)

src/modules/usermodes/noctcp.dll: src/modules/usermodes/noctcp.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/usermodes/noctcp.c /Fesrc/modules/usermodes/ /Fosrc/modules/usermodes/ /Fdsrc/modules/usermodes/noctcp.pdb $(MODLFLAGS)

src/modules/usermodes/nokick.dll: src/modules/usermodes/nokick.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/usermodes/nokick.c /Fesrc/modules/usermodes/ /Fosrc/modules/usermodes/ /Fdsrc/modules/usermodes/nokick.pdb $(MODLFLAGS)

src/modules/usermodes/privacy.dll: src/modules/usermodes/privacy.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/usermodes/privacy.c /Fesrc/modules/usermodes/ /Fosrc/modules/usermodes/ /Fdsrc/modules/usermodes/privacy.pdb $(MODLFLAGS)

src/modules/usermodes/privdeaf.dll: src/modules/usermodes/privdeaf.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/usermodes/privdeaf.c /Fesrc/modules/usermodes/ /Fosrc/modules/usermodes/ /Fdsrc/modules/usermodes/privdeaf.pdb $(MODLFLAGS)

src/modules/usermodes/regonlymsg.dll: src/modules/usermodes/regonlymsg.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/usermodes/regonlymsg.c /Fesrc/modules/usermodes/ /Fosrc/modules/usermodes/ /Fdsrc/modules/usermodes/regonlymsg.pdb $(MODLFLAGS)

src/modules/usermodes/secureonlymsg.dll: src/modules/usermodes/secureonlymsg.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/usermodes/secureonlymsg.c /Fesrc/modules/usermodes/ /Fosrc/modules/usermodes/ /Fdsrc/modules/usermodes/secureonlymsg.pdb $(MODLFLAGS)

src/modules/usermodes/servicebot.dll: src/modules/usermodes/servicebot.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/usermodes/servicebot.c /Fesrc/modules/usermodes/ /Fosrc/modules/usermodes/ /Fdsrc/modules/usermodes/servicebot.pdb $(MODLFLAGS)

src/modules/usermodes/showwhois.dll: src/modules/usermodes/showwhois.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/usermodes/showwhois.c /Fesrc/modules/usermodes/ /Fosrc/modules/usermodes/ /Fdsrc/modules/usermodes/showwhois.pdb $(MODLFLAGS)

src/modules/vhost.dll: src/modules/vhost.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/vhost.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/vhost.pdb $(MODLFLAGS)

src/modules/wallops.dll: src/modules/wallops.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/wallops.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/wallops.pdb $(MODLFLAGS)

src/modules/watch-backend.dll: src/modules/watch-backend.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/watch-backend.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/watch-backend.pdb $(MODLFLAGS)

src/modules/watch.dll: src/modules/watch.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/watch.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/watch.pdb $(MODLFLAGS)

src/modules/webirc.dll: src/modules/webirc.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/webirc.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/webirc.pdb $(MODLFLAGS)

src/modules/webredir.dll: src/modules/webredir.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/webredir.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/webredir.pdb $(MODLFLAGS)

src/modules/websocket.dll: src/modules/websocket.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/websocket.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/websocket.pdb $(MODLFLAGS)

src/modules/whois.dll: src/modules/whois.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/whois.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/whois.pdb $(MODLFLAGS)

src/modules/who_old.dll: src/modules/who_old.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/who_old.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/who_old.pdb $(MODLFLAGS)

src/modules/whowas.dll: src/modules/whowas.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/whowas.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/whowas.pdb $(MODLFLAGS)

src/modules/whox.dll: src/modules/whox.c $(INCLUDES)
	$(CC) $(MODCFLAGS) src/modules/whox.c /Fesrc/modules/ /Fosrc/modules/ /Fdsrc/modules/whox.pdb $(MODLFLAGS)

