90 lines
4 KiB
Plaintext
90 lines
4 KiB
Plaintext
C++ Library build procedure
|
|
|
|
--- Setup and Customization ---
|
|
|
|
Unpack the zipfile. The tree as shipped assumes the root of the source tree
|
|
will be at d:\rtl\crt, and the build tree will be at d:\rtl\bld.
|
|
|
|
Edit settools.cmd to customize for your particular setup. If you want to use
|
|
some other location for the source and build trees, edit the CRT_SRC and
|
|
CRT_BUILDDIR settings accordingly. You'll also need to change the V6TOOLS
|
|
setting to point to the root of your VC6 installation (the parent directory
|
|
of the include and lib dirs).
|
|
|
|
The remainder of this readme assumes you're using the default tree locations.
|
|
|
|
The C++ headers are found in the source tree at d:\rtl\crt\crtw32\stdhpp. The
|
|
C++ support files used to build the static libs and DLL are found at
|
|
d:\rtl\crt\crtw32\stdcpp.
|
|
|
|
There's one file renamed from your distribution. Stdcpp\throw.cpp is actually
|
|
stdcpp\stdthrow.cpp. There is already a file throw.cpp in the source tree,
|
|
and since when the CRT source is shipped all the source ends up in the same
|
|
directory, we can't allow name collisions. The other throw.cpp isn't found
|
|
in this distribution, though, since I'm only including those files necessary
|
|
to build the C++ libraries.
|
|
|
|
--- Building ---
|
|
|
|
From the source tree root, run settools.cmd to establish the build environment.
|
|
Then run cleanbld.cmd on WinNT or clns_bld.bat on Win9x to do the build. I'm
|
|
not certain if the Win9x build is working - I normally only do WinNT builds.
|
|
I have gotten the Win9x build working on my laptop, but can't remember if I
|
|
needed to tweak anything to do so (it's at home).
|
|
|
|
I generally run "cleanbld DELNODE 2>&1 | tee build.log" to do a totally clean
|
|
build by wiping out the build tree first, or "cleanbld 2>&1 | tee build.log" if
|
|
I'm just trying a rebuild. I don't think the header dependency generation
|
|
stuff in the makefile actually works, so a DELNODE build is a good idea after
|
|
any header changes.
|
|
|
|
I've including build.txt as a build log from my system, in case you run into
|
|
problems.
|
|
|
|
The build procedure is actually pretty convoluted. Because we ship source
|
|
code, the build actually copies just about everything from the source tree to
|
|
the build tree, then "cleanses" the build tree source, removing some internal
|
|
comments and #ifs.
|
|
|
|
The following files are the most interesting ones produced by the build:
|
|
|
|
Static single-thread:
|
|
D:\rtl\bld\crt\src\build\intel\libcp.lib -- release static lib
|
|
D:\rtl\bld\crt\src\build\intel\libcp.pdb -- release static lib debug info
|
|
D:\rtl\bld\crt\src\build\intel\libcpd.lib -- debug static lib
|
|
D:\rtl\bld\crt\src\build\intel\libcpd.pdb -- debug static lib debug info
|
|
Static multi-thread:
|
|
D:\rtl\bld\crt\src\build\intel\libcpmt.lib -- release static lib
|
|
D:\rtl\bld\crt\src\build\intel\libcpmt.pdb -- release static lib debug info
|
|
D:\rtl\bld\crt\src\build\intel\libcpmtd.lib -- debug static lib
|
|
D:\rtl\bld\crt\src\build\intel\libcpmtd.pdb -- debug static lib debug info
|
|
DLL:
|
|
D:\rtl\bld\crt\src\build\intel\msvcp61.dll -- release DLL
|
|
D:\rtl\bld\crt\src\build\intel\msvcprt.lib -- release DLL import lib
|
|
D:\rtl\bld\crt\src\build\intel\dll_pdb\msvcp61.pdb -- release DLL debug info
|
|
D:\rtl\bld\crt\src\build\intel\msvcp61d.dll -- debug DLL
|
|
D:\rtl\bld\crt\src\build\intel\msvcprtd.lib -- debug DLL import lib
|
|
D:\rtl\bld\crt\src\build\intel\dll_pdb\msvcp61d.pdb -- debug DLL debug info
|
|
|
|
--- Release headers ---
|
|
|
|
There's one last step in producing the build. The headers must be cleansed
|
|
to produce something appropriate for shipping in the INCLUDE directory. This
|
|
mostly means _CRTIMP2 must be changed to _CRTIMP, and some #ifs must be
|
|
deleted.
|
|
|
|
CD down to d:\rtl\crt\crtw32\tools\win32. Do "set crtdir=d:\rtl\crt\crtw32"
|
|
and run "relinc d:\rtl\relinc". This will copy the C++ headers from stdhpp
|
|
over to d:\rtl\relinc, where they will be appropriately cleansed. Normally,
|
|
these cleansed headers are then copied to d:\rtl\crt\libw32\include, where they
|
|
are checked into the master source tree.
|
|
|
|
--- ---
|
|
|
|
Let me know if you have any trouble.
|
|
|
|
...Phil
|
|
philiplu@microsoft.com
|
|
425-936-7575
|
|
|