# Copyright 2001-2007 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   ssl module makefile.
#
# Originally contributed by Mladen Turk <mturk redhat.com>
#
# ====================================================================
#

TARGET=DLL
PROJECT = mod_ssl

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

!include <NMAKEbuild.inc>
!include <NMAKEhttpd.inc>

CFLAGS = $(CFLAGS) -DZLIB_WINAPI -DOPENSSL_NO_IDEA \
	-DOPENSSL_NO_RC5 -DOPENSSL_NO_MDC2 -DOPENSSL_NO_SRP -DOPENSSL_NO_KRB5 \
	-DOPENSSL_NO_JPAKE -DOPENSSL_NO_EC2M -DHAVE_OPENSSL -DHAVE_SSL_SET_STATE \
	-DHAVE_OPENSSL_ENGINE_H -DHAVE_ENGINE_INIT -DHAVE_ENGINE_LOAD_BUILTIN_ENGINES -DSSL_DECLARE_EXPORT

LFLAGS = $(LFLAGS) user32.lib psapi.lib gdi32.lib shlwapi.lib wldap32.lib ole32.lib $(LIBAPR) $(LIBAPU) $(LIBHTTPD) $(LIBCRYPTO) $(LIBSSL)
LDIRS  = /libpath:"$(BUILDLIB)" /libpath:"$(EXTLIBPATH)"
INCLUDES = -I$(SRCDIR) -I$(BUILDINC) -I$(EXTINCPATH) -I..\generators -I..\md -I$(EXTINCPATH)\apr-1
PDBFLAGS = -Fo$(WORKDIR)\ -Fd$(WORKDIR)\$(PROJECT)-src

BUILDBIN = $(WORKDIR)\$(PROJECT).so
BUILDPDB = $(WORKDIR)\$(PROJECT).pdb 
BUILDRES = $(WORKDIR)\$(PROJECT).res
BUILDMFT = $(BUILDBIN).manifest

RCFLAGS =  $(RCFLAGS) /d BIN_NAME="$(PROJECT).so" /d LONG_NAME="ssl_module for Apache"

OBJECTS = \
	$(WORKDIR)\ssl_engine_config.obj \
	$(WORKDIR)\ssl_engine_init.obj \
	$(WORKDIR)\ssl_engine_io.obj \
	$(WORKDIR)\ssl_engine_kernel.obj \
	$(WORKDIR)\ssl_engine_log.obj \
	$(WORKDIR)\ssl_engine_mutex.obj \
	$(WORKDIR)\ssl_engine_ocsp.obj \
	$(WORKDIR)\ssl_engine_pphrase.obj \
	$(WORKDIR)\ssl_engine_rand.obj \
	$(WORKDIR)\ssl_engine_vars.obj \
	$(WORKDIR)\ssl_scache.obj \
	$(WORKDIR)\ssl_util.obj \
	$(WORKDIR)\ssl_util_ocsp.obj \
	$(WORKDIR)\ssl_util_ssl.obj \
	$(WORKDIR)\ssl_util_stapling.obj \
	$(WORKDIR)\mod_ssl.obj

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

$(BUILDRES): ..\..\build\win32\httpd.rc
	$(RC) $(RCFLAGS) /i "$(BUILDINC)" /fo $(BUILDRES) ..\..\build\win32\httpd.rc

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

install: $(BUILDBIN)
