I'm afraid several changes were made that were not directly related to the
problem I was having at all, even if they may have added greater robustness
to the build process.
(BTW, I always did NMAKE from within the win subdirectory that contains the
makefile.msc so that was definitely not part of my problem.)
In trying to narrow down the problem, I tried compiling openssl by itself,
outside of fossil.
(https://www.openssl.org/source/openssl-1.0.1i.tar.gz)
I followed their README.W32 steps, i.e.:
path c:\perl\bin;%path%
(I have to do this because I don't care to have PERL's path permanently
installed)
perl Configure VC-WIN32 --prefix=\temp
ms\do_ms.bat
nmake -f ms\ntdll.mak
and I still got that same error (about link.obj missing).
So, the problem seems to be contained entirely within the openssl library
build process, and not within FOSSIL makefiles.
So, it has to be something in the compiler configuration. And I think I got
it but without knowing why, however. It's in the vc_xp.bat that runs in
addition to vcvarsall.bat
file when setting up the MSVC paths etc.
vc_xp.bat is needed to add compatibility for WinXP targeting in the produced
EXE/DLLs which by default is lacking in my version of MSVC. Without it, the
produced EXEs will not run on XP machines. So, I tend to use it all the
time.
vc_cp.bat contents:
@set INCLUDE=%ProgramFiles(x86)%\Microsoft
SDKs\Windows\7.1A\Include;%INCLUDE%
@set PATH=%ProgramFiles(x86)%\Microsoft SDKs\Windows\7.1A\Bin;%PATH%
@set LIB=%ProgramFiles(x86)%\Microsoft SDKs\Windows\7.1A\Lib;%LIB%
@set CL=/D_USING_V110_SDK71_;%CL%
@set LINK=/SUBSYSTEM:CONSOLE,5.01 %LINK%
From this whole thing, the problem is the final line (with either 5.01 for
32-bit, or 5.02 for 64-bit systems). When removed, openssl compiles
correctly, and so does fossil with SSL support.
This extra configuration (which requires the installation of some extra SDK
from MS) comes from Microsoft's knowledge base, and assumed correct. It
never caused me any problems in compiling a variety of other applications,
including SQLite, and Fossil (but when built without SSL support.)
Apparently, however, it creates some incompatibility with the building of
the openssl library.
This also explains why you couldn't reproduce the problem.
Thanks for all your work.
-----Original Message-----
From: Joe Mistachkin
Sent: Monday, September 29, 2014 6:39 PM
To: 'Fossil SCM user's discussion'
Subject: Re: [fossil-users] Compilation with SSL option fails on Win7
Stephan Beal wrote:
Pure speculation: is it a side-effect of the missing pushd, causing it not
to
be able to (A) change dirs and (B) find the file(s) it expects in those
dirs
(because (A) failed)?
Great catch. The MSVC makefile is designed to be used from the directory it
is
contained in. This should now be more strongly enforced, here:
https://www.fossil-scm.org/index.html/info/86de8cbeb5
--
Joe Mistachkin
_______________________________________________
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
_______________________________________________
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users