
# Copyright 2001-2015 The Apache Software Foundation or its licensors, as
# applicable.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# ====================================================================
#
# NMAKEmakefile   security module makefile.
#
# Originally contributed by Mladen Turk <mturk redhat.com>
#
# ====================================================================
#

TARGET=DLL
PROJECT = mod_security2-jws3
LIBAPR  = libapr-1.lib
LIBAPU  = libaprutil-1.lib
LIBHTTPD= libhttpd.lib
LIBPCRE = libpcre.lib
LIBXML2 = libxml2.lib
LIBLUA  = liblua51.lib

!IF !DEFINED(SRCDIR) || "$(SRCDIR)" == ""
SRCDIR = .\apache2
!ENDIF

!include <xbuild.inc>


LDIRS = /libpath:"$(EXTLIBPATH)"
LIBS  = $(LIBS) iphlpapi.lib $(LIBAPR) $(LIBAPU) $(LIBHTTPD) $(LIBPCRE) $(LIBXML2) $(LIBLUA)
INCLUDES = -I. -I$(SRCDIR) -I$(EXTINCPATH) -I$(EXTINCPATH)\httpd -I$(EXTINCPATH)\libxml2

PDBFLAGS = -Fo$(WORKDIR)\ -Fd$(WORKDIR)\$(PROJECT)-src
CFLAGS = $(CFLAGS) /wd4244 /wd4018 -Dinline=APR_INLINE -DWITH_LUA

BUILDLIB = $(PREFIX)\$(_LIB)\httpd\modules
BUILDOUT = $(WORKDIR)\$(PROJECT).so
BUILDPDB = $(WORKDIR)\$(PROJECT).pdb
BUILDRES = $(WORKDIR)\$(PROJECT).res
BUILDMFT = $(BUILDOUT).manifest

OBJECTS = \
	$(WORKDIR)\mod_security2.obj \
	$(WORKDIR)\apache2_config.obj \
	$(WORKDIR)\apache2_io.obj \
	$(WORKDIR)\apache2_util.obj \
	$(WORKDIR)\re.obj \
	$(WORKDIR)\re_operators.obj \
	$(WORKDIR)\re_actions.obj \
	$(WORKDIR)\re_tfns.obj \
	$(WORKDIR)\re_variables.obj \
	$(WORKDIR)\msc_logging.obj \
	$(WORKDIR)\msc_xml.obj \
	$(WORKDIR)\msc_multipart.obj \
	$(WORKDIR)\modsecurity.obj \
	$(WORKDIR)\msc_parsers.obj \
	$(WORKDIR)\msc_util.obj \
	$(WORKDIR)\msc_pcre.obj \
	$(WORKDIR)\persist_dbm.obj \
	$(WORKDIR)\msc_reqbody.obj \
	$(WORKDIR)\msc_geo.obj \
	$(WORKDIR)\msc_gsb.obj \
	$(WORKDIR)\msc_crypt.obj \
	$(WORKDIR)\msc_tree.obj \
	$(WORKDIR)\msc_unicode.obj \
	$(WORKDIR)\acmp.obj \
	$(WORKDIR)\msc_lua.obj \
	$(WORKDIR)\msc_release.obj \
	$(WORKDIR)\msc_status_engine.obj \
	$(WORKDIR)\msc_json.obj \
	$(WORKDIR)\libinjection_html5.obj \
	$(WORKDIR)\libinjection_sqli.obj \
	$(WORKDIR)\libinjection_xss.obj


all : $(WORKDIR) $(BUILDOUT)
	@echo Building mod_security ...

$(BUILDLIB) :
	@if not exist "$(BUILDLIB)\$(NULL)" mkdir "$(BUILDLIB)"

$(WORKDIR) :
	@$(MAKEWORKDIR)

{$(SRCDIR)}.c{$(WORKDIR)}.obj:
	$(CC) $(CFLAGS) $(INCLUDES) $(PDBFLAGS) $<

{$(SRCDIR)\libinjection}.c{$(WORKDIR)}.obj:
	$(CC) $(CFLAGS) $(INCLUDES) $(PDBFLAGS) $<

$(BUILDOUT): $(OBJECTS)
	$(LINK) $(LFLAGS) $(OBJECTS) $(LIBS) $(LDIRS) /pdb:$(BUILDPDB) /out:$(BUILDOUT)
	IF EXIST $(BUILDMFT) \
		mt -nologo -manifest $(BUILDMFT) -outputresource:$(BUILDOUT);2

install: all $(BUILDLIB)
	@xcopy "$(WORKDIR)\*.so" "$(BUILDLIB)" /I /Y /Q
