On 08/08/2023 13:27, mt...@apache.org wrote:
This is an automated email from the ASF dual-hosted git repository.
mturk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tomcat-native.git
The following commit(s) were added to refs/heads/main by this push:
new 12666aa60 Remove unused libraries and add support for 'Hybrid CRT'
technique.
This all looks interesting. What does this mean for the build environment?
Do we still need to build with your CMSC bundle?
Can we now build with Visual Stdio (which version / versions?) and not
introduce any dependencies on additional runtimes that are not present
on a default, clean OS install?
Which Windows OSes will this target?
Sorry for the barrage of questions but C compilation is still largely a
mystery to me.
Mark
12666aa60 is described below
commit 12666aa60e62f926423bf6c0305891a7b2ff2365
Author: Mladen Turk <mt...@apache.org>
AuthorDate: Tue Aug 8 14:27:13 2023 +0200
Remove unused libraries and add support for 'Hybrid CRT' technique.
---
native/NMAKEmakefile | 54 ++++++++++++++++++++--------------------------------
1 file changed, 21 insertions(+), 33 deletions(-)
diff --git a/native/NMAKEmakefile b/native/NMAKEmakefile
index 224d1352a..51653caf5 100644
--- a/native/NMAKEmakefile
+++ b/native/NMAKEmakefile
@@ -18,9 +18,10 @@
# NMAKEmakefile Tomcat Native makefile.
# Usage:
# APR_DECLARE_STATIC=1 Use static version of the APR
-# ENABLE_OCSP=1 Enable OpenSSL OCSP code
+# ENABLE_OCSP=1 Enable OpenSSL OCSP code
# OPENSSL_NEW_LIBS=1 Use new OpenSSL lib file names
-# DEBUG=1 Build DEBUG version of TCN
+# DEBUG=1 Build DEBUG version of TCN
+# STATIC_CRT=Hybrid Build using the 'Hybrid CRT' technique
#
# Originally contributed by Mladen Turk <mturk redhat.com>
#
@@ -69,16 +70,16 @@ INCLUDES = $(INCLUDES) -I$(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) /version:2.0
+LIBS = $(LIBS) user32.lib gdi32.lib $(APR_LIB)
!IF DEFINED(WITH_FIPS)
-LFLAGS = $(LFLAGS) libeayfips32.lib libeaycompat32.lib ssleay32.lib
/NODEFAULTLIB:LIBCMT
+LIBS = $(LIBS) libeayfips32.lib libeaycompat32.lib ssleay32.lib
+LFLAGS = $(LFLAGS) /NODEFAULTLIB:LIBCMT
!ELSE
!IF DEFINED(OPENSSL_NEW_LIBS)
-LFLAGS = $(LFLAGS) libssl.lib libcrypto.lib crypt32.lib
+LIBS = $(LIBS) libssl.lib libcrypto.lib crypt32.lib
!ELSE
-LFLAGS = $(LFLAGS) libeay32.lib ssleay32.lib
+LIBS = $(LIBS) libeay32.lib ssleay32.lib
!ENDIF
!ENDIF
@@ -86,7 +87,7 @@ 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)-src
+PDBFLAGS = -Fo$(WORKDIR)\ -Fd$(WORKDIR)\$(PROJECT)
OBJECTS = \
$(WORKDIR)\bb.obj \
$(WORKDIR)\error.obj \
@@ -96,7 +97,8 @@ OBJECTS = \
$(WORKDIR)\sslcontext.obj \
$(WORKDIR)\sslconf.obj \
$(WORKDIR)\sslutils.obj \
- $(WORKDIR)\system.obj
+ $(WORKDIR)\system.obj
+
!IF DEFINED(WITH_FIPS)
OBJECTS = $(OBJECTS) srclib\openssl\tmp32\fips_premain.obj
!ENDIF
@@ -108,24 +110,14 @@ LINK_WRAPPER = perl $(FIPSDIR)\bin\fipslink.pl
LINK_WRAPPER = $(LINK)
!ENDIF
-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) :
+$(WORKDIR):
@$(MAKEWORKDIR)
{$(SRCDIR)\src}.c{$(WORKDIR)}.obj:
@@ -134,27 +126,23 @@ $(WORKDIR) :
{$(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
+$(BUILDRES): $(SRCDIR)\os\win32\libtcnative.rc
+ $(RC) $(RCFLAGS) /i "$(SRCDIR)\include" /fo $(BUILDRES) $**
-$(BUILDBIN): $(WORKDIR) $(OBJECTS) $(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 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) $(OBJECTS) $(BUILDRES) $(LIBS) $(LDIRS)
/pdb:$(BUILDPDB) $(FIPS_OPTS) /out:$(BUILDBIN)
- IF EXIST $(BUILDMAN) \
- mt -nologo -manifest $(BUILDMAN) -outputresource:$(BUILDBIN);2
+ $(LINK_WRAPPER) $(LFLAGS) $(LDIRS) $** $(LIBS) /pdb:$(BUILDPDB) $(FIPS_OPTS)
/out:$(BUILDBIN)
clean:
@$(CLEANTARGET)
-install: $(BUILDLIB) $(WORKDIR) $(BUILDBIN)
- @xcopy "$(WORKDIR)\*.lib" "$(BUILDLIB)" /Y /Q
- @xcopy "$(WORKDIR)\*.dll" "$(BUILDLIB)" /Y /Q
+install: all
+ @xcopy /I /Y /Q "$(WORKDIR)\*.lib" "$(BUILDLIB)"
+ @xcopy /I /Y /Q "$(WORKDIR)\*.dll" "$(BUILDLIB)"
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org