|
제 답변은 아니지만.....
Are you talking about BCB6 or BCB5? I was all ready to describe how to do this in
BCB6 based on my experiences with BCB5. Then I thought, "hey wait, I better actually
try this in BCB6 before spew forth a bunch of worthless drivel." After trying it, I
recommend that you give up on this idea, at least with BCB6. I ran into a number of
problems rebuilding the RTL in BCB6. Specifically, the makefile refers to a tool
called timenow.exe that Borland didn't ship with BCB6. That I can work around. A
bigger problem is that win32.mak refers to a directory called rw201 that simply
doesn't exist on my system. At this point, I gave up.
It does not appear that you can rebuild the RTL source in BCB6 because the
directories are not configured correctly. Heck, we may not have all of the RTL
source. This is a bummer.
The directions below will work with BCB5. $(BCB) refers to the cbuilder5 installation
directory. These directions assume that you installed the RTL source when you
installed BCB. If you didn't, you will need to copy over the source manually.
1- From the command prompt go to the $(BCB)\source\rtl directory
2- Create a batch file called config.bat. In it, create a DEBUG environment variable
and set it to 1. Also, set the path in accordance with the directions in the README
file
> type config.bat
set DEBUG=1
set PATH=%PATH%;c:\cbuilder5\SOURCE\RTL\TOOLS
3- Execute config.bat
4- At this point, make sure that the BCB5 bin directory appears on the path before
the BCB6 bin directory. You don't want to compile the BCB5 RTL with the BCB6
compiler.
5- Execute build.bat
6- Make a backup copy of everything in the $(BCB)\lib and $(BCB)\lib\psdk
directories.
7- Copy everything from $(BCB)\source\rtl\lib to $(BCB)\lib. Include all
subdirectories. BeyondCompare is a good tool for this step.
8- Launch BCB and make a new application. Hit F7. BCB should prompt you to find where
c0nt.asm is. This prompt will appear very frequently as you debug the RTL source. I
suggest that you check 'Add directory to Debug Source Path' on this dialog.
Stepping into the Initialize and Finalize routines happens from _init_exit_proc in
$(BCB)\source\rtl\source\startup\initexit.c, around line 184 on the line that says
ip->Func(). If you have linked with the debug version of the VCL, you should be able
to step from initexit.c into the initialize block of systems.pas, forms.pas, etc. The
auto-generated initialize blocks for CPP files don't have any source. You have to
step through them in assembly. You will see that they don't do much (other then
fiddle with a special memory location at the end of the BSS memory section for the
unit).
Harold Howe [TeamB]
과객 님이 쓰신 글 :
: 빌더의 /Source/Rtl 디렉토리에 보면.. 런타임 라이브러리를 리빌드 할 수 있는
: makefile이 있습니다. 그리고 그 안의 내용을 보면...
:
: @$(RTLROOT)\tools\timenow.exe DATETIME_STRING > $(RTLROOT)\include\rtlinc\timenow.h
:
: 다음과 같은 구문이 나오는데, RTLROOT/tools/ 디렉토리에는 timenow.exe가 들어있지 않네요?
: 급하게 런타임 라이브러리를 리빌드해야할 일이 생겼는데... 빠진 파일들이 있는거 같습니다.
:
: 혹시 빌더 6.0 엔터프라이즈 갖고있는 분들... 특히 timenow.exe가 디렉토리에 포함되어있는
: 분들... /Source/ 디렉토리의 파일들만 전부 압축해서(서브 디렉토리 포함해서) 메일로
: 보내주시면 고맙겠습니다.
:
:
|