| # 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)" |