In Indy 9.0, there is no IndyC60.bpk.  What do I do to get Indy to work with C++Builder 6?

Previous  Top  Next

Run FULLC6.BAT from your Indy\Source directory and that will build the C++Builder 6 binaries.


We decided to discontinue supporting the C++Builder .BPK's. We realize that using BPK's is more intuitive than using the batch files and ideally, we would have liked to include the Borland C++Builder .BPK's.  Unfortunately, there are a several issues involved and those are discussed below:


The Indy install needed to be relatively small.  Building with the .BPK's would be rather inefficient when you consider that the run-time .BPL is the same for Delphi 4 and C++Builder 4, Delphi 5 and C++Builder 5, and Delphi 6 and C++Builder 6.  Interestingly enough, C++Builder 6 has the exact same RTL library as Delphi 6 Service Pack 2.
We had to do something unusual in the Indy packages by putting a run-time unit (IdAntiFreeze) into the design-time package instead of the run-time package so the run-time package would only depend on the RTL and not the visual Component Library.  In Borland Delphi, this is not a problem if the IdAntiFreeze was included and because that unit has no design-time code in it at all.  Unfortunately, this is a problem in C++Builder because you depend upon a .HPP and .OBJ file for that unit and in C++Builder, those are not generated for design-time packages at all.  For C++Builder, we have to trick the Delphi compiler (that's included in C++Builder) into generating the .HPP and .OBJ files for IdAntiFreeze using a dummy unit named IdDummyUnit.
We never did use the IndyC*.bpk packages at all when building the Indy binaries for installations.  We were simply the Delphi .dpk's along with some special parameters that cause DCC32 to generate .OBJ and .HPP files and then making a .LIB file.  Now just so there's no misunderstanding, you can get C++Builder binaries from Delphi .dpk's and we know of two vendors that do this successfully.  The processed for building the .BPK's with MAKE is really just the same thing because MAKE is just a batch processor that calls the  Delphi compiler with the exact parameters we are using and having TLIB add the objects to the .LIB files.