# 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 Master Tomcat Native makefile. # Usage: # APR_DECLARE_STATIC=1 Use static version of the APR # ENABLE_OCSP=1 Enable OpenSSL OCSP code # DEBUG=1 Build DEBUG version of TCN # # Originally contributed by Mladen Turk # # ==================================================================== # !IF !DEFINED(APR_DECLARE_STATIC) || "$(APR_DECLARE_STATIC)" == "" PROJECT = libtcnative-1 !ELSE PROJECT = tcnative-1 !ENDIF TARGET = DLL !include !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) -DHAVE_OPENSSL_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) $(WITH_OPENSSL)\inc32 LDIRS = $(LDIRS) /libpath:"$(WITH_OPENSSL)\out32" !ENDIF LFLAGS = $(LFLAGS) /version:1.1 LFLAGS = $(LFLAGS) user32.lib psapi.lib gdi32.lib shlwapi.lib wldap32.lib ole32.lib LFLAGS = $(LFLAGS) $(APR_LIB) LFLAGS = $(LFLAGS) libeay32.lib ssleay32.lib CFLAGS = $(CFLAGS) -DZLIB_WINAPI -DNO_IDEA -DNO_RC5 -DNO_MDC2 -DOPENSSL_NO_IDEA \ -DOPENSSL_NO_RC5 -DOPENSSL_NO_MDC2 -DHAVE_OPENSSL -DHAVE_SSL_SET_STATE=1 PDBFLAGS = -Fo$(WORKDIR)\ -Fd$(WORKDIR)\$(PROJECT)-src OBJECTS = \ $(WORKDIR)\address.obj \ $(WORKDIR)\bb.obj \ $(WORKDIR)\dir.obj \ $(WORKDIR)\error.obj \ $(WORKDIR)\file.obj \ $(WORKDIR)\info.obj \ $(WORKDIR)\jnilib.obj \ $(WORKDIR)\lock.obj \ $(WORKDIR)\misc.obj \ $(WORKDIR)\mmap.obj \ $(WORKDIR)\multicast.obj \ $(WORKDIR)\network.obj \ $(WORKDIR)\os.obj \ $(WORKDIR)\poll.obj \ $(WORKDIR)\pool.obj \ $(WORKDIR)\proc.obj \ $(WORKDIR)\shm.obj \ $(WORKDIR)\ssl.obj \ $(WORKDIR)\sslcontext.obj \ $(WORKDIR)\sslinfo.obj \ $(WORKDIR)\sslnetwork.obj \ $(WORKDIR)\sslutils.obj \ $(WORKDIR)\stdlib.obj \ $(WORKDIR)\user.obj \ $(WORKDIR)\thread.obj \ $(WORKDIR)\ntpipe.obj \ $(WORKDIR)\registry.obj \ $(WORKDIR)\system.obj HEADERS = \ $(SRCDIR)\include\tcn.h \ $(SRCDIR)\include\tcn_api.h \ $(SRCDIR)\include\tcn_version.h \ $(SRCDIR)\include\ssl_private.h BUILDLIB = $(PREFIX)\lib BUILDBIN = $(WORKDIR)\$(PROJECT).dll BUILDPDB = $(WORKDIR)\$(PROJECT).pdb BUILDRES = $(WORKDIR)\$(PROJECT).res BUILDMAN = $(BUILDBIN).manifest all : $(WORKDIR) $(BUILDBIN) $(BUILDLIB) : @if not exist "$(BUILDLIB)\$(NULL)" mkdir "$(BUILDLIB)" $(WORKDIR) : @$(MAKEWORKDIR) {$(SRCDIR)\src}.c{$(WORKDIR)}.obj: $(CC) $(CFLAGS) $(INCLUDES) $(PDBFLAGS) $< {$(SRCDIR)\os\win32}.c{$(WORKDIR)}.obj: $(CC) $(CFLAGS) $(INCLUDES) $(PDBFLAGS) $< $(OBJECTS): $(HEADERS) $(BUILDRES): $(SRCDIR)\os\win32\libtcnative.rc $(HEADERS) $(RC) $(RCFLAGS) /i "$(SRCDIR)\include" /fo $(BUILDRES) $(SRCDIR)\os\win32\libtcnative.rc $(BUILDBIN): $(WORKDIR) $(OBJECTS) $(BUILDRES) $(LINK) $(LFLAGS) $(OBJECTS) $(BUILDRES) $(LIBS) $(LDIRS) /pdb:$(BUILDPDB) /out:$(BUILDBIN) IF EXIST $(BUILDMAN) \ mt -nologo -manifest $(BUILDMAN) -outputresource:$(BUILDBIN);2 clean: @$(CLEANTARGET) install: $(BUILDLIB) $(WORKDIR) $(BUILDBIN) @xcopy "$(WORKDIR)\*.lib" "$(BUILDLIB)" /Y /Q @xcopy "$(WORKDIR)\*.dll" "$(BUILDLIB)" /Y /Q