mirror of
https://github.com/owasp-modsecurity/ModSecurity.git
synced 2025-08-13 13:26:01 +03:00
This definition is currently used in two different circumstances: Report with accuracy that the server is an IIS (status call), and also show the amount of loaded remote rules on the windows logs. Different from Apache which loads the rules twice, IIS just do it once.
94 lines
2.8 KiB
Makefile
94 lines
2.8 KiB
Makefile
###########################################################################
|
|
#
|
|
# Usage: NMAKE -f Makefile.win APACHE={httpd installion dir} PCRE={pcre dir} LIBXML2={LibXML2 dir} [ LUA={Lua dir} ]
|
|
#
|
|
!IF "$(APACHE)" == "" || "$(PCRE)" == "" || "$(LIBXML2)" == "" || "$(CURL)" == ""
|
|
!ERROR NMAKE arguments: APACHE=dir PCRE=dir LIBXML2=dir CURL=dir are required to build mod_security2 for Windows
|
|
!ENDIF
|
|
|
|
# Linking libraries
|
|
LIBS = $(APACHE)\lib\libhttpd.lib \
|
|
$(APACHE)\lib\libapr-1.lib \
|
|
$(APACHE)\lib\libaprutil-1.lib \
|
|
$(PCRE)\pcre.lib \
|
|
$(CURL)\libcurl.lib \
|
|
$(LIBXML2)\win32\bin.msvc\libxml2.lib \
|
|
Ws2_32.lib \
|
|
"iphlpapi.lib"
|
|
|
|
###########################################################################
|
|
###########################################################################
|
|
|
|
|
|
!IF "$(IIS_BUILD)" == "yes"
|
|
DEFS=$(DEFS) -DVERSION_IIS
|
|
!ENDIF
|
|
|
|
CC = CL
|
|
|
|
MT = mt
|
|
|
|
DEFS = /nologo /O2 /LD /W3 /wd4244 /wd4018 -DWIN32 -DWINNT -Dinline=APR_INLINE -D$(VERSION)
|
|
|
|
DLL = mod_security2.so
|
|
|
|
INCLUDES = -I. -I.. \
|
|
-I$(CURL)\include -I$(CURL) \
|
|
-I$(PCRE)\include -I$(PCRE) \
|
|
-I$(LIBXML2)\include \
|
|
-I$(APACHE)\include
|
|
|
|
# Enables support for SecRemoteRules and external resources.
|
|
DEFS=$(DEFS) -DWITH_CURL -DWITH_REMOTE_RULES
|
|
|
|
# Lua is optional
|
|
!IF "$(LUA)" != ""
|
|
LIBS = $(LIBS) $(LUA)\lua5.1.lib
|
|
DEFS=$(DEFS) -DWITH_LUA
|
|
INCLUDES = $(INCLUDES) -I$(LUA)\include -I$(LUA) \
|
|
!ENDIF
|
|
|
|
# Yajl/Json is optional
|
|
!IF "$(YAJL)" != ""
|
|
LIBS = $(LIBS) $(YAJL)\lib\yajl.lib
|
|
DEFS=$(DEFS) -DWITH_YAJL
|
|
INCLUDES = $(INCLUDES) -I$(YAJL)\include -I$(YAJL) \
|
|
!ENDIF
|
|
|
|
CFLAGS= -MD $(INCLUDES) $(DEFS)
|
|
|
|
LDFLAGS =
|
|
|
|
OBJS = mod_security2.obj apache2_config.obj apache2_io.obj apache2_util.obj \
|
|
re.obj re_operators.obj re_actions.obj re_tfns.obj re_variables.obj \
|
|
msc_logging.obj msc_xml.obj msc_multipart.obj modsecurity.obj \
|
|
msc_parsers.obj msc_util.obj msc_pcre.obj persist_dbm.obj \
|
|
msc_reqbody.obj msc_geo.obj msc_gsb.obj msc_crypt.obj msc_tree.obj msc_unicode.obj acmp.obj msc_lua.obj \
|
|
msc_release.obj \
|
|
msc_status_engine.obj \
|
|
msc_remote_rules.obj \
|
|
msc_json.obj \
|
|
libinjection/libinjection_html5.obj \
|
|
libinjection/libinjection_sqli.obj \
|
|
libinjection/libinjection_xss.obj
|
|
|
|
all: $(DLL)
|
|
|
|
dll: $(DLL)
|
|
|
|
.c.obj:
|
|
$(CC) $(CFLAGS) -c $< -Fo$@
|
|
|
|
.cpp.obj:
|
|
$(CC) $(CFLAGS) -c $< -Fo$@
|
|
|
|
$(DLL): $(OBJS)
|
|
$(CC) $(CFLAGS) $(LDFLAGS) -LD $(OBJS) -Fe$(DLL) $(LIBS) /link
|
|
IF EXIST $(DLL).manifest $(MT) -manifest $(DLL).manifest -outputresource:$(DLL);2
|
|
|
|
install: $(DLL)
|
|
copy /Y $(DLL) $(APACHE)\modules
|
|
|
|
clean:
|
|
del $(OBJS) $(DLL) *.dll *.lib *.pdb *.idb *.ilk *.exp *.res *.rc *.bin *.manifest
|