blob: 011cbb06a8720f6932a6665d5f943bace539f2e4 [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You 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 Tomcat Native makefile.
# Usage:
# APR_DECLARE_STATIC=1 Use static version of the APR
# ENABLE_OCSP=1 Enable OpenSSL OCSP code
# OPENSSL_NEW_LIBS=1 Use new OpenSSL lib file names
# DEBUG=1 Build DEBUG version of TCN
# STATIC_CRT=Hybrid Build using the 'Hybrid CRT' technique
#
# Originally contributed by Mladen Turk <mturk redhat.com>
#
# ====================================================================
#
!IF !DEFINED(APR_DECLARE_STATIC) || "$(APR_DECLARE_STATIC)" == ""
PROJECT = libtcnative-2
!ELSE
PROJECT = tcnative-2
!ENDIF
TARGET = DLL
!include <NMAKEmakefile.inc>
!IF !DEFINED(APR_DECLARE_STATIC) || "$(APR_DECLARE_STATIC)" == ""
APR_LIB = libapr-1.lib
!ELSE
CFLAGS = $(CFLAGS) -DAPR_DECLARE_STATIC
APR_LIB = apr-1.lib
!ENDIF
!IF !DEFINED(ENABLE_OCSP)
CFLAGS = $(CFLAGS) -DOPENSSL_NO_OCSP
!ENDIF
!IF !DEFINED(SRCDIR) || "$(SRCDIR)" == ""
SRCDIR = .
!ENDIF
INCLUDES = -I$(SRCDIR)\include $(JAVA_INCLUDES)
!IFNDEF WITH_APR
WITH_APR = $(SRCDIR)\srclib\apr
LDIRS = /libpath:"$(WITH_APR)\$(WORKDIR)"
!ELSE
LDIRS = /libpath:"$(WITH_APR)\lib"
!ENDIF
INCLUDES = $(INCLUDES) -I$(WITH_APR)\include -I$(WITH_APR)\include\arch\win32
!IF DEFINED(WITH_OPENSSL)
INCLUDES = $(INCLUDES) -I$(WITH_OPENSSL)\include
LDIRS = $(LDIRS) /libpath:"$(WITH_OPENSSL)\lib"
!ELSE
WITH_OPENSSL = $(SRCDIR)\srclib\openssl
INCLUDES = $(INCLUDES) -I$(WITH_OPENSSL)\inc32
LDIRS = $(LDIRS) /libpath:"$(WITH_OPENSSL)\out32"
!ENDIF
LFLAGS = $(LFLAGS) /version:2.0
LIBS = $(LIBS) user32.lib gdi32.lib $(APR_LIB)
!IF DEFINED(WITH_FIPS)
LIBS = $(LIBS) libeayfips32.lib libeaycompat32.lib ssleay32.lib
LFLAGS = $(LFLAGS) /NODEFAULTLIB:LIBCMT
!ELSE
!IF DEFINED(OPENSSL_NEW_LIBS)
LIBS = $(LIBS) libssl.lib libcrypto.lib crypt32.lib
!ELSE
LIBS = $(LIBS) libeay32.lib ssleay32.lib
!ENDIF
!ENDIF
CFLAGS = $(CFLAGS) -DZLIB_WINAPI -DNO_IDEA -DNO_RC5 -DNO_MDC2 -DOPENSSL_NO_IDEA \
-DOPENSSL_NO_RC5 -DOPENSSL_NO_MDC2 -DHAVE_SSL_SET_STATE=1
PDBFLAGS = -Fo$(WORKDIR)\ -Fd$(WORKDIR)\$(PROJECT)
OBJECTS = \
$(WORKDIR)\bb.obj \
$(WORKDIR)\error.obj \
$(WORKDIR)\jnilib.obj \
$(WORKDIR)\pool.obj \
$(WORKDIR)\ssl.obj \
$(WORKDIR)\sslcontext.obj \
$(WORKDIR)\sslconf.obj \
$(WORKDIR)\sslutils.obj \
$(WORKDIR)\system.obj
!IF DEFINED(WITH_FIPS)
OBJECTS = $(OBJECTS) srclib\openssl\tmp32\fips_premain.obj
!ENDIF
!IF DEFINED(WITH_FIPS)
FIPS_OPTS = /map
LINK_WRAPPER = perl $(FIPSDIR)\bin\fipslink.pl
!ELSE
LINK_WRAPPER = $(LINK)
!ENDIF
BUILDLIB = $(PREFIX)\lib
BUILDBIN = $(WORKDIR)\$(PROJECT).dll
BUILDPDB = $(WORKDIR)\$(PROJECT).pdb
BUILDRES = $(WORKDIR)\$(PROJECT).res
all : $(WORKDIR) $(BUILDBIN)
$(WORKDIR):
@$(MAKEWORKDIR)
{$(SRCDIR)\src}.c{$(WORKDIR)}.obj:
$(CC) $(CFLAGS) $(INCLUDES) $(PDBFLAGS) $<
{$(SRCDIR)\os\win32}.c{$(WORKDIR)}.obj:
$(CC) $(CFLAGS) $(INCLUDES) $(PDBFLAGS) $<
$(BUILDRES): $(SRCDIR)\os\win32\libtcnative.rc
$(RC) $(RCFLAGS) /i "$(SRCDIR)\include" /fo $(BUILDRES) $**
$(BUILDBIN): $(OBJECTS) $(BUILDRES)
SET FIPSLINK=perl $(FIPSDIR)\bin\fipslink.pl
SET FIPS_LINK=$(LINK)
SET FIPS_CC=$(CC)
SET FIPS_CC_ARGS=/Fosrclib\openssl\tmp32\fips_premain.obj /MD -c
SET PREMAIN_DSO_EXE=srclib\openssl\out32\fips_premain_dso.exe
SET FIPS_TARGET=$(BUILDBIN)
SET FIPS_SHA1_EXE=$(FIPSDIR)\bin\fips_standalone_sha1.exe
SET FIPSLIB_D=$(FIPSDIR)\lib
$(LINK_WRAPPER) $(LFLAGS) $(LDIRS) $** $(LIBS) /pdb:$(BUILDPDB) $(FIPS_OPTS) /out:$(BUILDBIN)
clean:
@$(CLEANTARGET)
install: all
@xcopy /I /Y /Q "$(WORKDIR)\*.lib" "$(BUILDLIB)"
@xcopy /I /Y /Q "$(WORKDIR)\*.dll" "$(BUILDLIB)"