All, On 6/13/14, 5:36 PM, Christopher Schultz wrote: > I've spent some time trying to script a soup-to-nuts repeatable build of > tcnative on win32. I've made some progress but I'm hitting a few snags > that perhaps some folks could help with.
I've got openssl and libapr patched and built. Now, I'm working on Mladen's instructions for building tcnative itself. Quoting from his BZ comment: > It's very simple. The biggest problem is compiling apr and openssl. > OpenSSL needs to be patched to allow /MD with static lib (something I > tried to convince openssl developers for years without luck). We have > the patch in the source dist. Then you have to put apr and openssl > include and lib files to some directory > > C:\foo\bar\include > C:\foo\bar\lib > > Then execute: > nmake -f NMAKEMakefile WITH_APR=C:\foo\bar WITH_OPENSSL=C:\foo\bar > APR_DECLARE_STATIC=1 [ENABLE_OCSP=1] > > When building APR I also modify apr.hw and set APR_HAVE_IPV6 to 1. I have patched APR appropriately and executed this command: C:\work\tomcat-native-1.1.30-src> nmake -f NMAKEMakefile "WITH_APR=%MYTEMP%\build\apr" "WITH_OPENSSL=%MYTEMP%\build\openssl-%OPENSSL_VERSION%" APR_DECLARE_STATIC=1 (MYTEMP\build\apr contains the apr build and MYTEMP\build\openssl-OPENSSL_VERSION contains the openssl build) nmake responds with the following: Microsoft (R) Program Maintenance Utility Version 10.00.30319.01 Copyright (C) Microsoft Corporation. All rights reserved. NMAKEmakefile.inc(123) : fatal error U1050: Must specify CPU environment variable (X86, X64, I64) x86 Stop. Okay, so I have to set the CPU environment variable. I didn't know that, but the build script helpfully tells me I have to, and gives me a list of recognized values. I also noticed that I hadn't installed Java (duh) and so the next build failed because jni.h could not be found. After installing Java and setting JAVA_HOME appropriately, nmake now reports: C:\work\tomcat-native-1.1.30-src> SET CPU=X86 C:\work\tomcat-native-1.1.30-src> SET JAVA_HOME="C:\Program Files\Java\jdk1.7.0_60" C:\work\tomcat-native-1.1.30-src> nmake -f NMAKEMakefile "WITH_APR=%MYTEMP%\build\apr" "WITH_OPENSSL=%MYTEMP%\build\openssl-%OPENSSL_VERSION%" APR_DECLARE_STATIC=1 Microsoft (R) Program Maintenance Utility Version 10.00.30319.01 Copyright (C) Microsoft Corporation. All rights reserved. NMAKEmakefile.inc(330) : fatal error U1023: syntax error in expression Stop. This is NMAKEmakefile.inc, starting on line 330: !IF DEFINED(JAVA_HOME) && "$(JAVA_HOME)" != "" JAVA_INCLUDES=-I "$(JAVA_HOME)\include" -I "$(JAVA_HOME)\include\win32" !ENDIF I'm not nmake expert, but I don't see any problems with the above make-script. I checked to see that things like DEFINED(), &&, and != are used in other places, and everything seems in order. Any suggestions? Thanks, -chris
signature.asc
Description: OpenPGP digital signature